From 3fe82a7a9c7394fa5a373a5350e715d6c04861b6 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 6 Jul 2026 21:03:22 +0000 Subject: [PATCH 1/6] refactor: rebuild mintlify-codegen on the Metalsmith + @seamapi/smith + hbs pattern MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Port the Mintlify codegen from ad-hoc string-building scripts onto the repo's established codegen architecture (codegen/smith.ts): - mintlify-codegen/smith.ts: Metalsmith entry point — @metalsmith/metadata over the shared codegen/data YAML, @seamapi/smith's blueprint() plugin (replacing the hand-rolled load-data.ts), then plugins for spec enrichment (openapi), page creation (reference), docs.json nav surgery (docs-json), Handlebars rendering (@metalsmith/layouts), and link canonicalization (postprocess). - All MDX rendering moves to layouts/*.hbs + partials with pure layout-context builders in lib/layout/ (object-page, events-page, errors-page). Duplicated helpers (formatType x2, sampleValue x3, indent x2, readFileOrNull x2, title derivation x2) are consolidated under lib/. - Object pages are now fully generated — the indexOf/regex splicing into hand-written api/**/object.mdx is gone. Page frontmatter comes from the new Zod-validated mintlify-codegen/data/object-pages.yaml (the codegen/data/paths.yaml pattern). - The api/ tree is wholly pipeline-owned: smith.ts pre-cleans mintlify-docs/api/** (like codegen/smith.ts pre-cleans docs/api-reference), static pages (index, installation, ...) and the 16 authored object pages move to mintlify-codegen/source/ and flow through the build; stale generated pages can no longer linger. - Endpoint pages keep the enriched openapi.json + x-codeSamples approach rendered natively by Mintlify; transform-spec.ts survives unchanged as a lib module. - generate:mintlify now runs tsx mintlify-codegen/smith.ts; generate.yml step names call out each codegen entry point; automerge.yml watches mintlify-docs/api/** now that the whole folder is generated. Output parity: regenerated output is byte-identical to the old pipeline except one whitespace normalization (api/workspaces/object.mdx had a stray double blank line after its frontmatter). Verified by snapshot diff of api/**, openapi.json, and docs.json across both pipelines, plus a double-run idempotency check. Reproduced inconsistencies flagged with TODOs for follow-up (kept to avoid output changes in this refactor): - record-format properties render type="object" on object pages but type="Object" on events/errors pages (lib/format-type.ts). - nested property children indent 6 spaces on events pages vs 4 on object pages (layouts/partials/event-property.hbs). - the 16 handwritten object pages (notably /locks and /thermostats, which duplicate drifted blueprint property data) should converge onto blueprint sourcing with group filtering (data/object-pages.yaml). Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01P1YTCN8DidaFWzvLYyge3N --- .github/workflows/automerge.yml | 1 + .github/workflows/generate.yml | 4 +- .prettierignore | 3 +- mintlify-codegen/data/object-pages.yaml | 140 + mintlify-codegen/errors.ts | 722 ---- mintlify-codegen/events.ts | 383 -- mintlify-codegen/generate.ts | 414 -- mintlify-codegen/layouts/errors.hbs | 53 + mintlify-codegen/layouts/events.hbs | 29 + mintlify-codegen/layouts/object.hbs | 45 + .../layouts/partials/error-shape-property.hbs | 9 + .../layouts/partials/event-property.hbs | 27 + .../layouts/partials/frontmatter.hbs | 4 + .../layouts/partials/object-property.hbs | 24 + .../{ => lib}/canonicalize-links.ts | 0 mintlify-codegen/lib/config.ts | 53 + .../{update-nav.ts => lib/docs-json.ts} | 89 +- mintlify-codegen/lib/format-type.ts | 75 + mintlify-codegen/lib/handlebars-helpers.ts | 13 + mintlify-codegen/lib/index.ts | 13 + mintlify-codegen/lib/ingest.ts | 18 + mintlify-codegen/lib/layout/errors-page.ts | 437 ++ mintlify-codegen/lib/layout/events-page.ts | 139 + mintlify-codegen/lib/layout/object-page.ts | 168 + .../{load-data.ts => lib/missing-samples.ts} | 91 +- mintlify-codegen/lib/object-page-metadata.ts | 28 + mintlify-codegen/lib/openapi.ts | 64 + mintlify-codegen/lib/postprocess.ts | 54 + mintlify-codegen/lib/reference.ts | 323 ++ mintlify-codegen/lib/report.ts | 24 + mintlify-codegen/lib/sample-value.ts | 95 + mintlify-codegen/lib/text.ts | 41 + mintlify-codegen/{ => lib}/transform-spec.ts | 12 +- mintlify-codegen/property-fields.ts | 91 - mintlify-codegen/smith.ts | 84 + .../api/access_codes/simulate/object.mdx | 10 + .../api/access_grants/unmanaged/object.mdx | 18 + .../api/access_methods/unmanaged/object.mdx | 14 + .../api/acs/encoders/simulate/object.mdx | 22 + mintlify-codegen/source/api/acs/object.mdx | 90 + .../source/api/action_attempts/object.mdx | 90 + .../source/api/authentication.mdx | 188 + .../connected_accounts/simulate/object.mdx | 10 + .../source/api/devices/simulate/object.mdx | 41 + mintlify-codegen/source/api/index.mdx | 143 + mintlify-codegen/source/api/installation.mdx | 60 + mintlify-codegen/source/api/locks/object.mdx | 2865 +++++++++++++ .../source/api/locks/simulate/object.mdx | 14 + .../source/api/mcp-installation.mdx | 98 + .../source/api/noise_sensors/object.mdx | 21 + .../api/noise_sensors/simulate/object.mdx | 10 + mintlify-codegen/source/api/pagination.mdx | 1133 +++++ .../source/api/phones/simulate/object.mdx | 10 + .../source/api/rate-limits-and-guardrails.mdx | 63 + .../source/api/thermostats/object.mdx | 3635 +++++++++++++++++ .../api/thermostats/simulate/object.mdx | 14 + .../api/user_identities/unmanaged/object.mdx | 18 + mintlify-docs/api/workspaces/object.mdx | 1 - package.json | 2 +- 59 files changed, 10588 insertions(+), 1752 deletions(-) create mode 100644 mintlify-codegen/data/object-pages.yaml delete mode 100644 mintlify-codegen/errors.ts delete mode 100644 mintlify-codegen/events.ts delete mode 100644 mintlify-codegen/generate.ts create mode 100644 mintlify-codegen/layouts/errors.hbs create mode 100644 mintlify-codegen/layouts/events.hbs create mode 100644 mintlify-codegen/layouts/object.hbs create mode 100644 mintlify-codegen/layouts/partials/error-shape-property.hbs create mode 100644 mintlify-codegen/layouts/partials/event-property.hbs create mode 100644 mintlify-codegen/layouts/partials/frontmatter.hbs create mode 100644 mintlify-codegen/layouts/partials/object-property.hbs rename mintlify-codegen/{ => lib}/canonicalize-links.ts (100%) create mode 100644 mintlify-codegen/lib/config.ts rename mintlify-codegen/{update-nav.ts => lib/docs-json.ts} (88%) create mode 100644 mintlify-codegen/lib/format-type.ts create mode 100644 mintlify-codegen/lib/handlebars-helpers.ts create mode 100644 mintlify-codegen/lib/index.ts create mode 100644 mintlify-codegen/lib/ingest.ts create mode 100644 mintlify-codegen/lib/layout/errors-page.ts create mode 100644 mintlify-codegen/lib/layout/events-page.ts create mode 100644 mintlify-codegen/lib/layout/object-page.ts rename mintlify-codegen/{load-data.ts => lib/missing-samples.ts} (52%) create mode 100644 mintlify-codegen/lib/object-page-metadata.ts create mode 100644 mintlify-codegen/lib/openapi.ts create mode 100644 mintlify-codegen/lib/postprocess.ts create mode 100644 mintlify-codegen/lib/reference.ts create mode 100644 mintlify-codegen/lib/report.ts create mode 100644 mintlify-codegen/lib/sample-value.ts create mode 100644 mintlify-codegen/lib/text.ts rename mintlify-codegen/{ => lib}/transform-spec.ts (98%) delete mode 100644 mintlify-codegen/property-fields.ts create mode 100644 mintlify-codegen/smith.ts create mode 100644 mintlify-codegen/source/api/access_codes/simulate/object.mdx create mode 100644 mintlify-codegen/source/api/access_grants/unmanaged/object.mdx create mode 100644 mintlify-codegen/source/api/access_methods/unmanaged/object.mdx create mode 100644 mintlify-codegen/source/api/acs/encoders/simulate/object.mdx create mode 100644 mintlify-codegen/source/api/acs/object.mdx create mode 100644 mintlify-codegen/source/api/action_attempts/object.mdx create mode 100644 mintlify-codegen/source/api/authentication.mdx create mode 100644 mintlify-codegen/source/api/connected_accounts/simulate/object.mdx create mode 100644 mintlify-codegen/source/api/devices/simulate/object.mdx create mode 100644 mintlify-codegen/source/api/index.mdx create mode 100644 mintlify-codegen/source/api/installation.mdx create mode 100644 mintlify-codegen/source/api/locks/object.mdx create mode 100644 mintlify-codegen/source/api/locks/simulate/object.mdx create mode 100644 mintlify-codegen/source/api/mcp-installation.mdx create mode 100644 mintlify-codegen/source/api/noise_sensors/object.mdx create mode 100644 mintlify-codegen/source/api/noise_sensors/simulate/object.mdx create mode 100644 mintlify-codegen/source/api/pagination.mdx create mode 100644 mintlify-codegen/source/api/phones/simulate/object.mdx create mode 100644 mintlify-codegen/source/api/rate-limits-and-guardrails.mdx create mode 100644 mintlify-codegen/source/api/thermostats/object.mdx create mode 100644 mintlify-codegen/source/api/thermostats/simulate/object.mdx create mode 100644 mintlify-codegen/source/api/user_identities/unmanaged/object.mdx diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index c2e60888c..7b483ac92 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -31,6 +31,7 @@ jobs: with: files: | docs/api-reference/** + mintlify-docs/api/** mintlify-docs/openapi.json mintlify-docs/docs.json mintlify-docs/mobile-sdks/** diff --git a/.github/workflows/generate.yml b/.github/workflows/generate.yml index 7e7d8897b..e4824588e 100644 --- a/.github/workflows/generate.yml +++ b/.github/workflows/generate.yml @@ -55,14 +55,14 @@ jobs: run: gem install syntax_tree -v 6.2.0 - name: Normalize package-lock.json run: npm install - - name: Generate docs + - name: Generate GitBook API reference (codegen/smith.ts) uses: nick-fields/retry@v3 with: max_attempts: 3 retry_wait_seconds: 1 timeout_minutes: 2 command: npm run generate - - name: Generate Mintlify docs + - name: Generate Mintlify API reference (mintlify-codegen/smith.ts) uses: nick-fields/retry@v3 with: max_attempts: 3 diff --git a/.prettierignore b/.prettierignore index ca0eefdbb..cd4293982 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,6 +8,7 @@ # Prettier docs mintlify-docs +mintlify-codegen/source seam-sdk-playground gitbook-plugin *.hbs @@ -214,7 +215,7 @@ $RECYCLE.BIN/ .LSOverride # Icon must end with two \r -Icon +Icon # Thumbnails ._* diff --git a/mintlify-codegen/data/object-pages.yaml b/mintlify-codegen/data/object-pages.yaml new file mode 100644 index 000000000..72516d97a --- /dev/null +++ b/mintlify-codegen/data/object-pages.yaml @@ -0,0 +1,140 @@ +# Object-page metadata for the Mintlify API reference, keyed by API route path. +# Validated by mintlify-codegen/lib/object-page-metadata.ts. +# +# Every route with an object page has an entry: +# - title: the page's frontmatter title. Also the source of the noun used in +# generated events/errors page titles ("The Device Object" -> "Device"). +# - description: the page's frontmatter description (generated pages only). +# - handwritten: true marks routes whose object page is authored content in +# mintlify-codegen/source/api/ rather than generated from the blueprint. +# TODO: converge these pages (especially /locks and /thermostats, which +# duplicate blueprint property data that has since drifted) onto blueprint +# sourcing with include/exclude group filtering like codegen/data/paths.yaml, +# then drop their handwritten flags. +# +'/access_codes': + title: 'The Access Code Object' + description: 'Learn how the access_code object represents a smart lock PIN code you can customize, track, and program across hundreds of supported keypad and pinpad locks.' +'/access_codes/simulate': + title: 'Access Code Simulations' + handwritten: true +'/access_codes/unmanaged': + title: 'Unmanaged Access Codes' + description: 'Learn how the unmanaged_access_code object represents an existing smart lock PIN code that Seam tracks but does not manage until you convert it.' +'/access_grants': + title: 'The Access Grant Object' + description: 'Learn how the access_grant object grants a user identity access to spaces, entrances, and devices through mobile keys, plastic cards, and PIN codes.' +'/access_grants/unmanaged': + title: 'Unmanaged' + handwritten: true +'/access_methods': + title: 'The Access Method Object' + description: 'Learn how the access_method object describes the modes of access for an Access Grant, such as PIN codes, plastic cards, and mobile keys.' +'/access_methods/unmanaged': + title: 'Unmanaged' + handwritten: true +'/acs/access_groups': + title: 'The Access Group Object' + description: 'Learn how the acs_access_group object defines the entrances a set of access system users can reach and, in some systems, their access schedule.' +'/acs/credentials': + title: 'The Credential Object' + description: 'Learn how the acs_credential object represents the means—such as key cards, mobile keys, or PIN codes—by which an access system user gains entry.' +'/acs/encoders': + title: 'The Encoder Object' + description: 'Learn how the acs_encoder object represents a hardware device that encodes credential data onto physical key cards within an access control system.' +'/acs/encoders/simulate': + title: 'Encoder Simulations' + handwritten: true +'/acs/entrances': + title: 'The Entrance Object' + description: 'Learn how the acs_entrance object represents a secured door, gate, or zone within an access control system, and how to list its credentials.' +'/acs': + title: 'Access Control Systems' + handwritten: true +'/acs/systems': + title: 'The ACS System Object' + description: 'Learn how the acs_system object represents an access control system in which you create users and credentials to grant them access at entrances.' +'/acs/users': + title: 'The ACS User Object' + description: 'Learn how the acs_user object represents an individual—such as an employee or resident—who holds one or more credentials in an access control system.' +'/action_attempts': + title: 'The Action Attempt Object' + handwritten: true +'/client_sessions': + title: 'The Client Session Object' + description: 'Learn how the client_session object restricts your users to their own devices using a custom user_identifier_key that scopes Seam API results.' +'/connect_webviews': + title: 'The Connect Webview Object' + description: 'Learn how the connect_webview object embeds a client-side flow that walks your users through linking their device or system accounts to Seam.' +'/connected_accounts': + title: 'The Connected Account Object' + description: 'Learn how the connected_account object represents an external third-party account your user has authorized Seam to access, such as an August account.' +'/connected_accounts/simulate': + title: 'Simulate' + handwritten: true +'/customers': + title: 'The Customer Object' + description: 'Learn how the customer_portal object provides a hosted, customizable interface for managing device access that you can share or embed in your product.' +'/devices': + title: 'The Device Object' + description: 'Learn how the device object represents a smart lock, thermostat, sensor, or other device connected to Seam, including its properties and events.' +'/devices/simulate': + title: 'Device Simulations' + handwritten: true +'/devices/unmanaged': + title: 'Unmanaged Devices' + description: 'Learn how the unmanaged_device object exposes a limited set of properties and events for a device you cannot control until you convert it to managed.' +'/events': + title: 'The Event Object' + description: 'Learn how the event object represents an occurrence in your workspace, such as a device action or status change, that you can list and react to.' +'/instant_keys': + title: 'The Instant Key Object' + description: 'Learn how the instant_key object lets you issue a Bluetooth mobile key with one API call and share it by link, text, or email—no app install required.' +'/locks': + title: 'The Lock Object' + handwritten: true +'/locks/simulate': + title: 'Lock Simulations' + handwritten: true +'/noise_sensors/noise_thresholds': + title: 'Noise Thresholds' + description: 'Learn how the noise_threshold object sets the limits of noise tolerated at a property, customizable for each hour of the day on a noise sensor.' +'/noise_sensors': + title: 'The Noise Sensor Object' + handwritten: true +'/noise_sensors/simulate': + title: 'Noise Sensor Simulations' + handwritten: true +'/phones': + title: 'The Phone Object' + description: 'Learn how the phone object represents an app user mobile phone that holds mobile credentials, including its properties and lifecycle events.' +'/phones/simulate': + title: 'Phone Simulations' + handwritten: true +'/spaces': + title: 'The Space Object' + description: 'Learn how the space object groups devices and entrances together so you can assign access to an entire space and grant access more efficiently.' +'/thermostats/daily_programs': + title: 'Daily Programs' + description: 'Learn how the thermostat_daily_program object defines periods that each apply a climate preset at a starting time to automate a thermostat day.' +'/thermostats': + title: 'The Thermostat Object' + handwritten: true +'/thermostats/schedules': + title: 'Thermostat Schedules' + description: 'Learn how the thermostat_schedule object activates a climate preset on a thermostat at a starting time and deactivates it at a specified ending time.' +'/thermostats/simulate': + title: 'Thermostat Simulations' + handwritten: true +'/user_identities': + title: 'The User Identity Object' + description: 'Learn how the user_identity object links a person to their application user account so you can manage their mobile credentials and access in Seam.' +'/user_identities/unmanaged': + title: 'Unmanaged' + handwritten: true +'/webhooks': + title: 'The Webhook Object' + description: 'Learn how the webhook object lets you receive event notifications at an endpoint URL you specify, for the set of event types you choose to subscribe to.' +'/workspaces': + title: 'The Workspace Object' + description: 'Learn how the workspace object represents an isolated Seam environment that holds your devices, connected accounts, and resources, with sandbox support.' diff --git a/mintlify-codegen/errors.ts b/mintlify-codegen/errors.ts deleted file mode 100644 index 442ad4b0c..000000000 --- a/mintlify-codegen/errors.ts +++ /dev/null @@ -1,722 +0,0 @@ -/* eslint-disable no-console */ -import { readFile, writeFile } from 'node:fs/promises' -import { join } from 'node:path' - -import type { Blueprint, DiscriminatedListProperty } from '@seamapi/blueprint' - -import { formatType, indent, sampleValue } from './property-fields.js' - -/** - * Generate error and warning documentation for the API reference. - * - * Errors and warnings are enumerated states Seam reports on a resource (e.g. - * `device.errors[].error_code = "device_offline"`), each with a human-readable - * description. The blueprint models them as `discriminated_object` list - * properties on the resource, but the OpenAPI spec can only express the generic - * `errors`/`warnings` array shape — so the enumerated codes and their meanings - * were dropped when the API reference moved to OpenAPI-generated pages (the same - * gap events had before they were restored; see events.ts). - * - * This module restores them from `blueprint.resources[].properties` on every - * `npm run generate:mintlify`, producing one combined `errors.mdx` page per - * resource with an `## Errors` and an `## Warnings` section. Each section opens - * with the object shape (an example payload plus a properties accordion) and - * then lists every code with its meaning. A standalone page (rather than a - * section on the object page) renders full width and matches the layout the - * events pages use. - * - * `update-nav.ts` wires the generated pages into the sidebar after their object - * (and events) page. Link canonicalization (Phase G) runs afterward so - * `docs.seam.co` links in descriptions become canonical relative paths. - */ - -type Resource = Blueprint['resources'][number] -type Property = Resource['properties'][number] - -interface CodeEntry { - code: string - description: string -} - -interface CodeGroup { - // Group heading (e.g. "Locks"); null for the ungrouped variants. - name: string | null - entries: CodeEntry[] - // Set on inherited-error groups: the parent resource the errors come from and - // a link to its own errors page. Drives the explanatory callout. - inheritedFrom?: { - noun: string - href?: string - } -} - -function isDiscriminatedListProperty( - prop: Property | undefined, -): prop is Property & DiscriminatedListProperty { - return ( - prop != null && - 'itemFormat' in prop && - prop.itemFormat === 'discriminated_object' - ) -} - -/** - * Read the enumerated code (the discriminator enum's single value) from a - * variant's properties, e.g. `error_code = "device_offline"`. - */ -function variantCode( - variant: DiscriminatedListProperty['variants'][number], - discriminator: string, -): string | null { - const prop = variant.properties.find( - (p) => p.name === discriminator && p.format === 'enum', - ) as { values?: Array<{ name: string }> } | undefined - return prop?.values?.[0]?.name ?? null -} - -/** Map a list of variants to sorted code entries, dropping any without a - * discriminator code. */ -function variantsToEntries( - variants: DiscriminatedListProperty['variants'], - discriminator: string, -): CodeEntry[] { - return variants - .map((v) => { - const code = variantCode(v, discriminator) - return code == null - ? null - : { code, description: (v.description ?? '').trim() } - }) - .filter((e): e is CodeEntry => e != null) - .sort((a, b) => a.code.localeCompare(b.code)) -} - -/** - * Group a resource's `errors` or `warnings` property into ordered code groups: - * the ungrouped variants first (no heading), then each named variant group in - * blueprint order. Entries within a group are sorted by code. Returns an empty - * array when the property is absent or has no documented variants. - */ -function groupCodes(prop: Property | undefined): CodeGroup[] { - if (!isDiscriminatedListProperty(prop)) return [] - - const entriesFor = (key: string | null): CodeEntry[] => - variantsToEntries( - prop.variants.filter((v) => v.variantGroupKey === key), - prop.discriminator, - ) - - const groups: CodeGroup[] = [{ name: null, entries: entriesFor(null) }] - for (const group of prop.variantGroups) { - groups.push({ - name: group.name, - entries: entriesFor(group.variantGroupKey), - }) - } - return groups.filter((g) => g.entries.length > 0) -} - -// Resources whose inherited error groups are restricted to an allowlist of -// variant groups (in addition to the always-included ungrouped variants). An -// error's `variant.resourceType` names the resource it belongs to, so a resource -// inherits the errors whose type differs from its own (e.g. an access code -// inherits its lock's device errors). On the access code pages, only -// lock-related inherited errors are relevant; broader device categories like -// thermostats or noise sensors are not. -const INHERITED_ERROR_GROUP_ALLOWLIST: Record = { - access_code: ['locks'], - unmanaged_access_code: ['locks'], -} - -/** Convert a resource type (`connected_account`) into a display noun - * (`Connected Account`) for an inherited-error group heading. */ -function resourceTypeNoun(resourceType: string): string { - return resourceType - .split('_') - .map((w) => w.charAt(0).toUpperCase() + w.slice(1)) - .join(' ') -} - -/** - * Group a resource's `errors` property following the inheritance model: first - * the errors that belong to the resource itself (whose `variant.resourceType` - * matches), grouped by variant group exactly like `groupCodes`; then, for each - * parent resource whose errors this resource inherits (variants with a different - * `resourceType`), a single flat group per parent — variant groups are ignored, - * and the group is headed by the parent's noun. Inherited groups are ordered by - * parent resource type. When `inheritedGroupAllowlist` is set, inherited errors - * are limited to the ungrouped variants plus the listed variant groups. - */ -function groupErrorCodes( - prop: Property | undefined, - resourceType: string, - inheritedGroupAllowlist?: string[], - errorsHrefByResourceType?: Record, -): CodeGroup[] { - if (!isDiscriminatedListProperty(prop)) return [] - - // Unmanaged resources carry their managed counterpart's resource type on - // their variants (`unmanaged_access_code` errors are tagged `access_code`), so - // strip the `unmanaged_` prefix to identify the resource's own errors. A - // variant with no resource type is treated as the resource's own. - const ownResourceType = resourceType.replace(/^unmanaged_/, '') - const isOwn = ( - variant: DiscriminatedListProperty['variants'][number], - ): boolean => - variant.resourceType == null || variant.resourceType === ownResourceType - - // Errors matching the resource's own type, grouped by variant group. - const ownGroups = groupCodes({ - ...prop, - variants: prop.variants.filter(isOwn), - }) - - // Errors inherited from parent resources, one flat group per parent resource. - const parentResourceTypes = [ - ...new Set( - prop.variants - .map((v) => v.resourceType) - .filter((t): t is string => t != null && t !== ownResourceType), - ), - ].sort() - - const isAllowedGroup = (variantGroupKey: string | null): boolean => - inheritedGroupAllowlist == null || - variantGroupKey == null || - inheritedGroupAllowlist.includes(variantGroupKey) - - const inheritedGroups: CodeGroup[] = parentResourceTypes - .map((parentResourceType): CodeGroup => { - const variants = prop.variants.filter( - (v) => - v.resourceType === parentResourceType && - isAllowedGroup(v.variantGroupKey), - ) - const href = errorsHrefByResourceType?.[parentResourceType] - return { - name: resourceTypeNoun(parentResourceType), - entries: variantsToEntries(variants, prop.discriminator), - inheritedFrom: { - noun: resourceTypeNoun(parentResourceType), - ...(href == null ? {} : { href }), - }, - } - }) - .filter((g) => g.entries.length > 0) - - return [...ownGroups, ...inheritedGroups] -} - -/** - * Order an object's properties for display: the discriminator first, then - * `message` and `created_at`, then everything else alphabetically. Keeps the - * example payload and properties list readable and consistent across pages. - */ -function orderProperties(props: Property[], discriminator: string): Property[] { - const priority = [discriminator, 'message', 'created_at'] - const rank = (name: string): number => { - const i = priority.indexOf(name) - return i === -1 ? priority.length : i - } - return [...props].sort( - (a, b) => rank(a.name) - rank(b.name) || a.name.localeCompare(b.name), - ) -} - -/** - * The union of properties across a discriminated list's variants, deduplicated - * by name (first occurrence wins). Variants share a core shape (`error_code` or - * `warning_code`, `message`, `created_at`) plus a few variant-specific flags, so - * the union documents every field a reader might encounter. - */ -function unionProperties(prop: DiscriminatedListProperty): Property[] { - const byName = new Map() - for (const variant of prop.variants) { - for (const p of variant.properties) { - if (!byName.has(p.name)) byName.set(p.name, p) - } - } - return orderProperties([...byName.values()], prop.discriminator) -} - -/** Strip Markdown link and inline-code syntax so a description reads as the - * plain-text string an API `message` field would actually contain - * (`[access grant](https://…)` -> `access grant`). */ -function toPlainText(md: string): string { - return md - .replace(/\[([^\]]+)\]\([^)]*\)/g, '$1') - .replace(/`([^`]+)`/g, '$1') - .trim() -} - -/** Build an example object from one variant: the concrete code and a plain-text - * message, with fixed sample values for the rest. */ -function buildExample( - variant: DiscriminatedListProperty['variants'][number], - discriminator: string, - code: string, -): Record { - const example: Record = {} - for (const p of orderProperties(variant.properties, discriminator)) { - if (p.name === discriminator) example[p.name] = code - else if (p.name === 'message') { - example[p.name] = - toPlainText(variant.description ?? '') || 'A human-readable message.' - } else example[p.name] = sampleValue(p) - } - return example -} - -/** Render one property of the object shape as a Mintlify ``. */ -function renderShapeProperty( - prop: Property, - discriminator: string, - kind: string, -): string { - const body = [ - (prop.description ?? '').trim() || `The ${prop.name.replace(/_/g, ' ')}.`, - ] - if (prop.name === discriminator) { - body.push('', `One of the ${kind} codes listed below.`) - } - return [ - ``, - indent(body.join('\n'), 2), - '', - ].join('\n') -} - -/** - * Render the object shape for a section: an example payload (built from the - * first variant) and an accordion documenting every property. Returns '' when - * the property is missing or has no variants. - */ -function renderObjectShape(prop: Property | undefined, kind: string): string { - if (!isDiscriminatedListProperty(prop)) return '' - const first = prop.variants[0] - if (first == null) return '' - - const code = variantCode(first, prop.discriminator) ?? '' - const json = JSON.stringify( - buildExample(first, prop.discriminator, code), - null, - 2, - ) - const fields = unionProperties(prop) - .map((p) => renderShapeProperty(p, prop.discriminator, kind)) - .join('\n\n') - const title = kind.charAt(0).toUpperCase() + kind.slice(1) - - return [ - `Each ${kind} is an object with the following shape:`, - '', - `\`\`\`json Example ${kind}`, - json, - '```', - '', - ``, - '', - fields, - '', - '', - ].join('\n') -} - -/** - * Render one code entry as a heading (so each code gets a linkable anchor) - * followed by its description and a divider that separates it from the next - * entry. `level` is the Markdown heading prefix (`###` for ungrouped codes, - * `####` for codes nested under a variant-group heading). - */ -function renderEntry(entry: CodeEntry, level: string): string { - const description = - entry.description || `Indicates the \`${entry.code}\` state.` - return [`${level} \`${entry.code}\``, '', description, '', '---'].join('\n') -} - -/** - * Render the callout that heads an inherited-error group, explaining that the - * codes belong to a parent resource and are surfaced here when set on it. - */ -function renderInheritedNote( - inheritedFrom: NonNullable, -): string { - const { noun, href } = inheritedFrom - const link = href == null ? noun : `[${noun}](${href})` - return [ - '', - ` These errors are inherited from the ${link} resource. When they are ` + - `set on the parent ${noun.toLowerCase()}, they are propagated to this ` + - `resource's errors list.`, - '', - ].join('\n') -} - -/** - * Render an `## Errors` or `## Warnings` section: the object shape followed by - * every code (as a linkable heading) with its meaning. Returns '' when there are - * no codes. `kind` is the singular noun (`error`/`warning`) used in prose. - */ -function renderSection( - title: string, - kind: string, - prop: Property | undefined, - groups: CodeGroup[], -): string { - if (groups.length === 0) return '' - const blocks: string[] = [`## ${title}`] - const shape = renderObjectShape(prop, kind) - if (shape) blocks.push(shape) - for (const group of groups) { - // Named variant groups get an `###` heading and nest their codes at `####`; - // ungrouped codes sit directly under the section at `###`. - const codeLevel = group.name != null ? '####' : '###' - if (group.name != null) blocks.push(`### ${group.name}`) - if (group.inheritedFrom != null) { - blocks.push(renderInheritedNote(group.inheritedFrom)) - } - for (const entry of group.entries) { - blocks.push(renderEntry(entry, codeLevel)) - } - } - return blocks.join('\n\n') -} - -/** The noun for a resource, from its object page title (`The Device Object` -> - * `Device`) or a humanized route path. */ -function resourceNoun(objectContent: string | null, routePath: string): string { - const match = objectContent?.match(/^title:\s*['"]?(.+?)['"]?\s*$/m) - const objectTitle = match?.[1] - const noun = objectTitle - ?.replace(/^The\s+/, '') - .replace(/\s+Object$/, '') - .trim() - if (noun) return noun - - return routePath - .slice(1) - .split('/') - .map((seg) => - seg - .split('_') - .map((w) => w.charAt(0).toUpperCase() + w.slice(1)) - .join(' '), - ) - .join(' ') -} - -/** The `Errors`/`Warnings`/`Errors and Warnings` suffix for the given sections. */ -function kindSuffix(hasErrors: boolean, hasWarnings: boolean): string { - if (hasErrors && hasWarnings) return 'Errors and Warnings' - return hasErrors ? 'Errors' : 'Warnings' -} - -/** - * Render a note pointing readers to the errors/warnings shared by all devices. - * Device sub-category pages (locks/thermostats/phones) are subsets that omit the - * device-level codes (`device_offline`, `device_disconnected`, …) applying to - * every device, so a reader troubleshooting connectivity there needs a pointer - * to the aggregate device page. `kinds` is the lowercased sections phrase - * (`errors and warnings` / `errors` / `warnings`) so the prose matches the - * page's actual content. - */ -function renderCommonDeviceErrorsNote( - noun: string, - kinds: string, - route: string, -): string { - const phrase = kinds.toLowerCase() - return [ - '', - ` These are ${noun}-specific ${phrase}. For ${phrase} common to all devices, see [Device Errors and Warnings](${route}).`, - '', - ].join('\n') -} - -/** - * Render the full standalone errors/warnings page (frontmatter + sections). When - * `commonDeviceErrorsRoute` is set, a note linking to the shared device - * errors/warnings page is prepended — used on device sub-category pages. - */ -function renderPage( - noun: string, - errorSection: string, - warningSection: string, - commonDeviceErrorsRoute?: string, -): string { - const title = `${noun} ${kindSuffix(Boolean(errorSection), Boolean(warningSection))}` - const kinds = - errorSection && warningSection - ? 'Errors and warnings' - : errorSection - ? 'Errors' - : 'Warnings' - const description = `${kinds} that Seam reports on the ${noun} resource, each with its code and meaning.` - const frontmatter = [ - '---', - `title: '${title.replace(/'/g, "\\'")}'`, - `description: '${description.replace(/'/g, "\\'")}'`, - '---', - ].join('\n') - const note = commonDeviceErrorsRoute - ? renderCommonDeviceErrorsNote(noun, kinds, commonDeviceErrorsRoute) - : '' - const body = [note, errorSection, warningSection].filter(Boolean).join('\n\n') - return `${frontmatter}\n\n${body}\n` -} - -async function readFileOrNull(path: string): Promise { - try { - return await readFile(path, 'utf8') - } catch { - return null - } -} - -interface ErrorPageOptions { - // When set, prepend a note linking to the errors/warnings shared by all - // devices. Used only for device sub-category pages (locks/thermostats/phones), - // which are subsets that omit the device-level codes. - commonDeviceErrorsRoute?: string - // When set, errors are grouped by the inheritance model (own errors first, - // then a flat group per parent resource) keyed on this resource type. Used for - // real per-resource pages; omitted for device sub-category pages, which are - // already scoped to a single variant group. - inheritanceResourceType?: string - // Maps a resource type to its errors page href, used to link an inherited - // group's callout back to the parent resource's own errors page. - errorsHrefByResourceType?: Record -} - -/** - * Write one resource's `errors.mdx` (an `## Errors` and/or `## Warnings` - * section) and record its route in `routes`. No-ops when the resource has no - * documented codes or no object page yet (e.g. /acs/credentials). - */ -async function writeErrorPage( - docsDir: string, - routePath: string, - errorsProp: Property | undefined, - warningsProp: Property | undefined, - routes: string[], - options: ErrorPageOptions = {}, -): Promise { - // Defensive against a variant-group key ever coinciding with a real resource - // route: the resource loop writes first, so skip a route already emitted - // rather than clobbering it from the sub-category loop. - if (routes.includes(routePath)) { - console.log(` Errors page for ${routePath} already written, skipping`) - return - } - - const errorGroups = - options.inheritanceResourceType != null - ? groupErrorCodes( - errorsProp, - options.inheritanceResourceType, - INHERITED_ERROR_GROUP_ALLOWLIST[options.inheritanceResourceType], - options.errorsHrefByResourceType, - ) - : groupCodes(errorsProp) - const warningGroups = groupCodes(warningsProp) - if (errorGroups.length === 0 && warningGroups.length === 0) return - - const resourceDir = join(docsDir, 'api', routePath.slice(1)) - const objectContent = await readFileOrNull(join(resourceDir, 'object.mdx')) - if (objectContent == null) { - console.log(` No object page for errors on ${routePath}, skipping`) - return - } - - const noun = resourceNoun(objectContent, routePath) - const page = renderPage( - noun, - renderSection('Errors', 'error', errorsProp, errorGroups), - renderSection('Warnings', 'warning', warningsProp, warningGroups), - options.commonDeviceErrorsRoute, - ) - await writeFile(join(resourceDir, 'errors.mdx'), page) - routes.push(routePath) -} - -interface DeviceSubcategory { - // Route that carries the sub-category's dedicated errors page. - routePath: string - // Whether the sub-category shares the device-level errors/warnings documented - // on /api/devices/errors, and so should cross-link to them. The shared codes - // are physical-device connectivity/subscription errors (`device_offline`, - // `hub_disconnected`, `salto_ks_subscription_limit_exceeded`, …), relevant to - // locks and thermostats but not to phones (mobile devices used for - // credentials), so the phones page omits the cross-link. - linkCommonDeviceErrors: boolean -} - -// Some device sub-categories have their own docs route but no blueprint -// resource of their own — the Seam API models a lock, thermostat, or phone as a -// `device`. Their error/warning codes therefore live on the `device` resource -// under a variant group of the same key rather than on a resource of their own, -// so the per-resource loop never produces a page for them. This maps each such -// variant group to the route that should carry its dedicated page. -// -// The map is an explicit allowlist, not `'/' + groupKey`: groups like -// `access_codes`, `hardware`, and `provider_metadata` annotate the device page -// but have no standalone sub-category route. In particular /access_codes -// already documents the `access_code` resource's own, distinct errors — routing -// the device `access_codes` group there would clobber it. -const DEVICE_SUBCATEGORY_ERROR_ROUTES: Record = { - locks: { routePath: '/locks', linkCommonDeviceErrors: true }, - phones: { routePath: '/phones', linkCommonDeviceErrors: false }, - thermostats: { routePath: '/thermostats', linkCommonDeviceErrors: true }, -} - -// Route of the aggregate device errors/warnings page. Sub-categories that share -// the device-level codes link back to it (see writeErrorPage's -// `commonDeviceErrorsRoute` option). -const COMMON_DEVICE_ERRORS_ROUTE = '/api/devices/errors' - -/** - * Narrow a device `errors`/`warnings` property to a single variant group, - * flattening the kept variants to ungrouped (`variantGroupKey` cleared) so their - * codes render as top-level entries — a group heading would be redundant on a - * page already scoped to that sub-category. Returns undefined when the property - * is absent or the group has no variants, so the caller emits nothing. - */ -function variantGroupProp( - prop: Property | undefined, - groupKey: string, -): (Property & DiscriminatedListProperty) | undefined { - if (!isDiscriminatedListProperty(prop)) return undefined - const variants = prop.variants - .filter((v) => v.variantGroupKey === groupKey) - .map((v) => ({ ...v, variantGroupKey: null })) - if (variants.length === 0) return undefined - return { ...prop, variants, variantGroups: [] } -} - -/** - * Warn when a device errors/warnings variant group looks like it should have its - * own sub-category errors page but is missing from DEVICE_SUBCATEGORY_ERROR_ROUTES. - * - * That allowlist is maintained by hand, so a newly added device sub-category - * (its own object + events pages plus an error/warning variant group) would - * silently produce no errors page until someone edits the map. This surfaces - * that inconsistency at generate time. - * - * A group is flagged only when it (a) has documented codes, (b) has both an - * `object.mdx` and an `events.mdx` under `/api/` — the shape a real - * sub-category route has — and (c) is neither already mapped nor itself a - * documented blueprint resource. Condition (c) keeps real resources - * (`access_codes`, which owns its own distinct errors) and annotation-only - * groups (`hardware`, `provider_metadata` — no such route) from tripping it. - */ -async function warnUnmappedDeviceSubcategoryGroups( - docsDir: string, - errorsProp: Property | undefined, - warningsProp: Property | undefined, - documentedResourceRoutes: Set, -): Promise { - const groupKeys = new Set() - for (const prop of [errorsProp, warningsProp]) { - if (!isDiscriminatedListProperty(prop)) continue - for (const group of prop.variantGroups) groupKeys.add(group.variantGroupKey) - } - - for (const groupKey of groupKeys) { - if (groupKey in DEVICE_SUBCATEGORY_ERROR_ROUTES) continue - if (documentedResourceRoutes.has(`/${groupKey}`)) continue - - const hasCodes = - groupCodes(variantGroupProp(errorsProp, groupKey)).length > 0 || - groupCodes(variantGroupProp(warningsProp, groupKey)).length > 0 - if (!hasCodes) continue - - const resourceDir = join(docsDir, 'api', groupKey) - const hasObject = - (await readFileOrNull(join(resourceDir, 'object.mdx'))) != null - const hasEvents = - (await readFileOrNull(join(resourceDir, 'events.mdx'))) != null - if (!hasObject || !hasEvents) continue - - console.log( - ` WARNING: device errors/warnings variant group "${groupKey}" has codes ` + - `and an object+events page (/api/${groupKey}) but no dedicated errors ` + - `page. Add it to DEVICE_SUBCATEGORY_ERROR_ROUTES in mintlify-codegen/errors.ts.`, - ) - } -} - -/** - * Generate the per-resource `errors.mdx` pages. Returns the route paths that - * received a page (e.g. `/devices`) so the caller can wire them into the - * navigation. - */ -export async function updateErrorPages( - blueprint: Blueprint, - docsDir: string, -): Promise { - const routes: string[] = [] - - // Every documented resource's errors page lives at `/api//errors`, - // so an inherited-error group can link back to the parent it came from. - const errorsHrefByResourceType: Record = {} - for (const resource of blueprint.resources) { - if (resource.isUndocumented) continue - errorsHrefByResourceType[resource.resourceType] = - `/api${resource.routePath}/errors` - } - - for (const resource of blueprint.resources) { - if (resource.isUndocumented) continue - await writeErrorPage( - docsDir, - resource.routePath, - resource.properties.find((p) => p.name === 'errors'), - resource.properties.find((p) => p.name === 'warnings'), - routes, - { - inheritanceResourceType: resource.resourceType, - errorsHrefByResourceType, - }, - ) - } - - // Pages for device sub-categories (locks, thermostats, …) that have their own - // docs route but no resource of their own: source each from the matching - // variant group on the device resource. - const device = blueprint.resources.find((r) => r.resourceType === 'device') - if (device != null) { - const errorsProp = device.properties.find((p) => p.name === 'errors') - const warningsProp = device.properties.find((p) => p.name === 'warnings') - for (const [ - groupKey, - { routePath, linkCommonDeviceErrors }, - ] of Object.entries(DEVICE_SUBCATEGORY_ERROR_ROUTES)) { - await writeErrorPage( - docsDir, - routePath, - variantGroupProp(errorsProp, groupKey), - variantGroupProp(warningsProp, groupKey), - routes, - linkCommonDeviceErrors - ? { commonDeviceErrorsRoute: COMMON_DEVICE_ERRORS_ROUTE } - : {}, - ) - } - - // Flag any device sub-category that has its own object+events pages and - // error codes but was never added to the allowlist above. - const documentedResourceRoutes = new Set( - blueprint.resources - .filter((r) => !r.isUndocumented) - .map((r) => r.routePath), - ) - await warnUnmappedDeviceSubcategoryGroups( - docsDir, - errorsProp, - warningsProp, - documentedResourceRoutes, - ) - } - - return routes -} diff --git a/mintlify-codegen/events.ts b/mintlify-codegen/events.ts deleted file mode 100644 index c14fec8b4..000000000 --- a/mintlify-codegen/events.ts +++ /dev/null @@ -1,383 +0,0 @@ -/* eslint-disable no-console */ -import { readFile, writeFile } from 'node:fs/promises' -import { join } from 'node:path' - -import type { Blueprint } from '@seamapi/blueprint' - -import { formatType, hasEnumValues, indent } from './property-fields.js' - -/** - * Generate event documentation for the API reference. - * - * Events are webhook payloads, not endpoints, so they have no OpenAPI - * representation and were dropped when the API reference moved to - * OpenAPI-generated pages. This module restores them from `blueprint.events` - * (which the pipeline already builds but never reads) so they stay in sync with - * `@seamapi/types` on every `npm run generate:mintlify`. It produces: - * - * 1. A dedicated `events.mdx` page per resource that emits events, each event - * documented with an example webhook payload and its properties. A - * standalone page (rather than a section on the object page) renders full - * width instead of squeezed into the object page's two-column layout, and - * gives each event a stable, linkable heading anchor. - * 2. The full `event_type` enum on the Event object page. - * - * `update-nav.ts` wires the generated pages into the sidebar next to their - * object page. Link canonicalization (Phase G) runs afterward so `docs.seam.co` - * links in event descriptions become canonical relative paths. - */ - -// Sentinel markers previously delimited an events section embedded in the -// object pages. They are matched (never emitted) only to strip that section -// from object pages generated by earlier versions of this module. -const EVENTS_START = '{/* SEAM-GENERATED-EVENTS:START */}' -const EVENTS_END = '{/* SEAM-GENERATED-EVENTS:END */}' - -// Route path of the Event object page itself. Events do not emit events, so -// this path never appears in `blueprint.events`; it is handled separately to -// receive the full `event_type` enum. -const EVENT_OBJECT_ROUTE = '/events' - -type EventResource = Blueprint['events'][number] -type EventProperty = EventResource['properties'][number] - -/** - * Object-format properties (e.g. the `from`/`to` of a `*.*_changed` event) - * carry their own typed `properties` array. Free-form records - * (`*_custom_metadata`) have an empty array; those still render as `{}`. - */ -function hasNestedProperties( - prop: EventProperty, -): prop is EventProperty & { properties: EventProperty[] } { - return ( - 'properties' in prop && - Array.isArray((prop as { properties?: unknown }).properties) && - (prop as { properties: unknown[] }).properties.length > 0 - ) -} - -// Illustrative values for well-known fields that the type system types as -// plain strings, so their `from`/`to` payloads read realistically instead of -// showing `""`. `*_at` string fields are handled as datetimes below. -const SAMPLE_STRING_VALUES: Record = { - code: '1234', - name: 'My Access Code', -} - -/** - * Build an illustrative sample value for an event property from its format. - * Values are fixed (never random) so generated payloads are stable across - * runs; this mirrors the value conventions in load-data.ts. This event-specific - * variant recurses into a `*_changed` event's typed `from`/`to` payloads; the - * shared basic version used by the object and error pages lives in - * property-fields.ts. - */ -function sampleValue(prop: EventProperty): unknown { - if (hasEnumValues(prop) && prop.values.length > 0) { - return prop.values[0]?.name ?? '' - } - switch (prop.format) { - case 'id': - return '00000000-0000-0000-0000-000000000000' - case 'datetime': - return '2025-01-01T00:00:00.000Z' - case 'boolean': - return true - case 'number': - return 0 - case 'list': - return [] - case 'object': - case 'record': { - // Typed objects (a `*_changed` event's `from`/`to`) expose their own - // `properties`; recurse to show their shape. Free-form records have none - // and stay `{}`. - if (!hasNestedProperties(prop)) return {} - const nested: Record = {} - for (const child of prop.properties) { - if (child.isUndocumented) continue - nested[child.name] = sampleValue(child) - } - return nested - } - case 'string': - // Some datetime fields (e.g. a time frame's `starts_at`/`ends_at`) are - // typed as plain strings; render them like the datetime fields above. - if (/_at$/.test(prop.name)) return '2025-01-01T00:00:00.000Z' - return SAMPLE_STRING_VALUES[prop.name] ?? '' - default: - return null - } -} - -/** - * Synthesize an example webhook payload for an event so readers can see its - * shape without triggering the event. `event_type` gets the concrete type and - * `event_description` echoes the event's description (matching the real - * payload); every other field gets a type-appropriate placeholder. - */ -function buildEventSample(event: EventResource): Record { - const sample: Record = {} - for (const prop of event.properties) { - if (prop.isUndocumented) continue - if (prop.name === 'event_type') { - sample[prop.name] = event.eventType - } else if (prop.name === 'event_description') { - sample[prop.name] = event.description.trim() - } else { - sample[prop.name] = sampleValue(prop) - } - } - return sample -} - -/** - * Render an event's example payload wrapped in a ``, which - * renders as a titled "Example webhook payload" card. Note this does not pin to - * a right-hand column: Mintlify only pins a single ResponseExample per page (as - * on the object pages), so on an events page — which has one per event — the - * cards render inline in the content column. - */ -function renderEventSample(event: EventResource): string { - const json = JSON.stringify(buildEventSample(event), null, 2) - return [ - '', - '', - '```json Example webhook payload', - json, - '```', - '', - '', - ].join('\n') -} - -/** Render a single event property as a Mintlify ``. */ -function renderEventProperty(prop: EventProperty): string { - const body: string[] = [] - - // `event_type` is a single-value enum: show the concrete value. - if ( - prop.name === 'event_type' && - hasEnumValues(prop) && - prop.values.length === 1 && - prop.values[0] != null - ) { - body.push(`Value: \`${prop.values[0].name}\``) - } else { - const description = (prop.description ?? '').trim() - body.push(description || `The ${prop.name.replace(/_/g, ' ')}.`) - - if (hasEnumValues(prop) && prop.values.length > 0) { - const values = prop.values.map((value) => `\`${value.name}\``).join(', ') - body.push('', `Possible values: ${values}`) - } - } - - // Typed objects (a `*_changed` event's `from`/`to`) document their child - // fields in a nested ``, matching the object pages. - if (hasNestedProperties(prop)) { - const children = prop.properties - .filter((child) => !child.isUndocumented) - .map((child) => indent(renderEventProperty(child), 4)) - if (children.length > 0) { - body.push( - '', - '', - ...children, - '', - ) - } - } - - return [ - ``, - indent(body.join('\n'), 2), - '', - ].join('\n') -} - -/** - * Render one event: its type and description, an example payload showing its - * shape, then a collapsible `` of its properties. Mintlify strips - * raw `
` elements, so the collapsible uses the native ``. - */ -function renderEvent(event: EventResource): string { - const properties = event.properties - .filter((prop) => !prop.isUndocumented) - .map(renderEventProperty) - .join('\n\n') - - return [ - `## \`${event.eventType}\``, - '', - event.description.trim(), - '', - renderEventSample(event), - '', - '', - '', - properties, - '', - '', - ].join('\n') -} - -/** - * Derive the events page title from the sibling object page's title - * (`The Access Grant Object` -> `Access Grant Events`), falling back to a - * humanized route path when the object title is missing or unexpected. - */ -function deriveEventsTitle( - objectContent: string | null, - routePath: string, -): string { - const match = objectContent?.match(/^title:\s*['"]?(.+?)['"]?\s*$/m) - const objectTitle = match?.[1] - const noun = objectTitle - ?.replace(/^The\s+/, '') - .replace(/\s+Object$/, '') - .trim() - if (noun) return `${noun} Events` - - const humanized = routePath - .slice(1) - .split('/') - .map((seg) => - seg - .split('_') - .map((w) => w.charAt(0).toUpperCase() + w.slice(1)) - .join(' '), - ) - .join(' ') - return `${humanized} Events` -} - -/** Render the full standalone events page (frontmatter + one section per event). */ -function renderEventsPage(events: EventResource[], title: string): string { - const description = `Webhook events that Seam emits for the ${title.replace(/\s+Events$/, '')} resource, with example payloads and properties.` - const frontmatter = [ - '---', - `title: '${title.replace(/'/g, "\\'")}'`, - `description: '${description.replace(/'/g, "\\'")}'`, - '---', - ].join('\n') - const body = events.map(renderEvent).join('\n\n') - return `${frontmatter}\n\n${body}\n` -} - -/** - * Remove an events section embedded in an object page by an earlier version of - * this module (delimited by the sentinel markers). Returns the cleaned content, - * or null when there is nothing to strip. - */ -function stripEmbeddedEventsSection(content: string): string | null { - const startIdx = content.indexOf(EVENTS_START) - if (startIdx === -1) return null - const endIdx = content.indexOf(EVENTS_END, startIdx) - if (endIdx === -1) return null - const after = endIdx + EVENTS_END.length - const cleaned = `${content.slice(0, startIdx).replace(/\s+$/, '')}\n${content.slice(after).replace(/^\s+/, '\n')}` - return cleaned.replace(/\n{3,}/g, '\n\n') -} - -/** - * Replace the `event_type` ResponseField on the Event object page with one that - * lists every event type as enum values. Idempotent: matches the field whether - * or not it already carries the enum block. - */ -function injectEventTypeEnum(content: string, eventTypes: string[]): string { - const field = [ - '', - ' The event type.', - '', - ' ', - ...eventTypes.map((type) => ` - \`${type}\``), - ' ', - '', - ].join('\n') - - return content.replace( - /]*>[\s\S]*?<\/ResponseField>/, - field, - ) -} - -/** Group events by the route path of the resource that emits them. */ -function groupEventsByRoutePath( - events: EventResource[], -): Map { - const byRoute = new Map() - for (const event of events) { - const group = byRoute.get(event.routePath) ?? [] - group.push(event) - byRoute.set(event.routePath, group) - } - return byRoute -} - -async function readFileOrNull(path: string): Promise { - try { - return await readFile(path, 'utf8') - } catch { - return null - } -} - -/** - * Generate the per-resource `events.mdx` pages and the Event object page enum. - * Returns the route paths that received an events page (e.g. `/access_grants`) - * so the caller can wire them into the navigation. - */ -export async function updateEventPages( - blueprint: Blueprint, - docsDir: string, -): Promise { - const events = (blueprint.events ?? []).filter( - (event) => !event.isUndocumented, - ) - const eventPageRoutes: string[] = [] - - // 1. A dedicated events page per resource, alongside its object page. - for (const [routePath, routeEvents] of groupEventsByRoutePath(events)) { - const resourceDir = join(docsDir, 'api', routePath.slice(1)) - const objectContent = await readFileOrNull(join(resourceDir, 'object.mdx')) - if (objectContent == null) { - // Some event route paths have no object page (e.g. - // /user_identities/enrollment_automations). Skip until a page exists. - console.log(` No object page for events on ${routePath}, skipping`) - continue - } - - // Clean up any events section embedded in the object page by an earlier - // version of this module (events now live on their own page). - const stripped = stripEmbeddedEventsSection(objectContent) - if (stripped != null) { - await writeFile(join(resourceDir, 'object.mdx'), stripped) - } - - const title = deriveEventsTitle(objectContent, routePath) - await writeFile( - join(resourceDir, 'events.mdx'), - renderEventsPage(routeEvents, title), - ) - eventPageRoutes.push(routePath) - } - - // 2. Full `event_type` enum on the Event object page. - const eventTypes = [...new Set(events.map((event) => event.eventType))] - const eventObjectPath = join( - docsDir, - 'api', - EVENT_OBJECT_ROUTE.slice(1), - 'object.mdx', - ) - const eventObjectContent = await readFileOrNull(eventObjectPath) - if (eventObjectContent == null) { - console.log(` No Event object page at ${eventObjectPath}, skipping enum`) - } else { - const next = injectEventTypeEnum(eventObjectContent, eventTypes) - if (next !== eventObjectContent) await writeFile(eventObjectPath, next) - } - - return eventPageRoutes -} diff --git a/mintlify-codegen/generate.ts b/mintlify-codegen/generate.ts deleted file mode 100644 index 23901fbdf..000000000 --- a/mintlify-codegen/generate.ts +++ /dev/null @@ -1,414 +0,0 @@ -/* eslint-disable no-console */ -import { readFile, writeFile } from 'node:fs/promises' -import { join } from 'node:path' -import { env } from 'node:process' - -import type { Blueprint } from '@seamapi/blueprint' - -import { canonicalizeGeneratedLinks } from './canonicalize-links.js' -import { updateErrorPages } from './errors.js' -import { updateEventPages } from './events.js' -import { getRawOpenApiSpec, loadBlueprint } from './load-data.js' -import { transformSpec } from './transform-spec.js' -import { - insertErrorPagesIntoNav, - insertEventsPagesIntoNav, - updateDocsJson, -} from './update-nav.js' - -const skipCodeFormat = env['SKIP_CODE_FORMAT'] != null - -const hiddenProperties: Record> = {} - -console.log('Mintlify OpenAPI codegen starting...') -if (skipCodeFormat) { - console.log(' SKIP_CODE_FORMAT is set — skipping code formatting') -} - -// Phase A+B: Load inputs and create blueprint -console.log('Loading blueprint...') -const { blueprint, pathMetadata } = await loadBlueprint(skipCodeFormat) -const totalEndpoints = blueprint.routes.reduce( - (sum, r) => sum + r.endpoints.length, - 0, -) -console.log( - ` Blueprint loaded: ${totalEndpoints} endpoints across ${blueprint.routes.length} routes`, -) - -// Phase C: Get and transform the raw OpenAPI spec -console.log('Transforming OpenAPI spec...') -const rawSpec = getRawOpenApiSpec() -const { spec, stats } = transformSpec(rawSpec, blueprint, pathMetadata) - -// Phase D: Write the enriched OpenAPI spec -const outputDir = join(import.meta.dirname, '..', 'mintlify-docs') -const outputPath = join(outputDir, 'openapi.json') - -const orderedSpec = { - openapi: spec.openapi, - info: spec.info, - servers: spec.servers, - components: spec.components, - ...(spec.tags ? { tags: spec.tags } : {}), - paths: spec.paths, -} -await writeFile(outputPath, JSON.stringify(orderedSpec, null, 2)) - -const size = JSON.stringify(orderedSpec).length -console.log( - ` Wrote openapi.json: ${stats.totalEndpoints} endpoints (${(size / 1024).toFixed(0)}KB)`, -) - -// Phase E: Update docs.json navigation -console.log('Updating docs.json navigation...') -const specPaths = new Set(Object.keys(spec.paths)) -await updateDocsJson(specPaths) - -// Phase F: Update resource sample tabs in object.mdx files -console.log('Updating object page resource samples...') -const updatedObjects = await updateObjectPages(blueprint, outputDir) -if (updatedObjects.length > 0) { - console.log( - ` Updated ${updatedObjects.length} object pages: ${updatedObjects.join(', ')}`, - ) -} - -// Phase F.5: Generate event documentation from blueprint.events — a dedicated -// events page per resource plus the `event_type` enum on the Event object page. -// Runs after object pages (so it can strip any legacy embedded events section) -// and before link canonicalization (so event-description links are rewritten). -console.log('Updating event documentation...') -const updatedEvents = await updateEventPages(blueprint, outputDir) -if (updatedEvents.length > 0) { - console.log( - ` Generated events pages for ${updatedEvents.length} resources: ${updatedEvents.join(', ')}`, - ) -} - -// Phase F.6: Wire the generated events pages into the sidebar next to their -// object page. Runs after nav (Phase E) so its transforms don't strip them. -await insertEventsPagesIntoNav(updatedEvents) - -// Phase F.7: Generate error/warning documentation from the errors/warnings -// properties on each resource — one combined page per resource. Like events, -// these are blueprint-only (the OpenAPI spec can't express the enumerated -// codes) and run before link canonicalization so their description links are -// rewritten. Nav wiring runs after events so the sidebar reads -// object -> events -> errors. -console.log('Updating error and warning documentation...') -const updatedErrors = await updateErrorPages(blueprint, outputDir) -if (updatedErrors.length > 0) { - console.log( - ` Generated errors pages for ${updatedErrors.length} resources: ${updatedErrors.join(', ')}`, - ) -} -await insertErrorPagesIntoNav(updatedErrors) - -// Phase G: canonicalize docs links in generated output. Guards against two -// classes of upstream @seamapi/types regression: -// 1. legacy `/latest` reappearing in `docs.seam.co/latest/...` links -// (the site serves at the root; a `/latest/:path*` redirect handles old -// inbound URLs). See DOC-206 / DOC-199. -// 2. links that target a path which docs.json redirects elsewhere — these -// still resolve in the browser but cost an extra hop and dodge anchor -// validation. We rewrite them to their final canonical destination so -// generated content links directly. See DOC-210. -// This is self-healing: every `npm run generate` re-applies it, so source -// descriptions can lag without leaving stale links in the published docs. -console.log('Canonicalizing docs links in generated output...') -const sanitizedCount = await canonicalizeGeneratedLinks(outputDir) -console.log(` Canonicalized links in ${sanitizedCount} generated file(s)`) - -console.log(`\nDone!`) -console.log(` Removed undocumented paths: ${stats.removedPaths}`) -console.log(` Total documented endpoints: ${stats.totalEndpoints}`) -console.log(` With code samples: ${stats.withCodeSamples}`) -console.log(` With scoped action_attempts: ${stats.withActionAttempts}`) -console.log( - ` Without code samples: ${stats.withoutCodeSamples.length} endpoints`, -) -if (stats.withoutCodeSamples.length > 0) { - console.log( - ` Missing samples: ${stats.withoutCodeSamples.slice(0, 10).join(', ')}${stats.withoutCodeSamples.length > 10 ? `... and ${stats.withoutCodeSamples.length - 10} more` : ''}`, - ) -} - -function renderCodeGroup( - samples: Array<{ - title: string - description: string - properties: Record - }>, -): string { - const blocks = samples.map((s) => { - const json = JSON.stringify(s.properties, null, 2) - return `\`\`\`json ${s.title}\n${json}\n\`\`\`` - }) - return `\n\n${blocks.join('\n\n')}\n\n` -} - -interface BlueprintProperty { - name: string - description: string - format: string - jsonType: string - isDeprecated: boolean - isUndocumented: boolean - properties?: BlueprintProperty[] - propertyGroups?: Array<{ name: string; propertyGroupKey: string }> - propertyGroupKey?: string | null -} - -function shouldHide(resourceType: string, prop: BlueprintProperty): boolean { - if (prop.isUndocumented) return true - return hiddenProperties[resourceType]?.has(prop.name) ?? false -} - -function renderResponseField( - prop: BlueprintProperty, - resourceType: string, -): string { - const type = formatPropertyType(prop.format, prop.jsonType) - const attrs = [`name="${prop.name}"`, `type="${type}"`] - if (prop.isDeprecated) attrs.push('deprecated') - const desc = prop.description || `The ${prop.name.replace(/_/g, ' ')}.` - - if ( - prop.format === 'object' && - prop.properties && - prop.properties.length > 0 - ) { - const children = prop.properties - .filter((c) => !shouldHide(resourceType, c)) - .map((c) => renderResponseField(c, resourceType)) - if (children.length > 0) { - return [ - ``, - ` ${desc}`, - ` `, - ...children.map((c) => indent(c, 4)), - ` `, - ``, - ].join('\n') - } - } - - return `\n ${desc}\n` -} - -function indent(text: string, spaces: number): string { - const pad = ' '.repeat(spaces) - return text - .split('\n') - .map((line) => (line.trim() ? pad + line : line)) - .join('\n') -} - -function renderProperties( - properties: BlueprintProperty[], - resourceType: string, -): string { - const ungrouped = properties.filter( - (p) => !shouldHide(resourceType, p) && !p.propertyGroupKey, - ) - const fields = ungrouped.map((p) => renderResponseField(p, resourceType)) - return fields.join('\n\n') -} - -function renderGroupedProperties( - properties: BlueprintProperty[], - resourceType: string, -): string { - const groups = new Map() - for (const p of properties) { - if (shouldHide(resourceType, p) || !p.propertyGroupKey) continue - const existing = groups.get(p.propertyGroupKey) - if (existing) { - existing.props.push(p) - } else { - groups.set(p.propertyGroupKey, { name: p.propertyGroupKey, props: [p] }) - } - } - - if (groups.size === 0) return '' - - const sections: string[] = [] - for (const [, { props }] of groups) { - for (const p of props) { - sections.push(renderResponseField(p, resourceType)) - } - } - return sections.join('\n\n') -} - -function formatPropertyType(format: string, jsonType: string): string { - switch (format) { - case 'id': - return 'String (UUID)' - case 'datetime': - return 'String (ISO 8601)' - case 'enum': - return 'Enum (String)' - case 'list': - return 'Array' - case 'boolean': - return 'Boolean' - case 'string': - return 'String' - case 'object': - return 'Object' - default: - return jsonType - } -} - -function renderResourceSection( - resourceType: string, - description: string, - samples: Array<{ - title: string - description: string - properties: Record - }>, - properties: BlueprintProperty[], -): string { - const parts: string[] = [] - - parts.push(description) - - // Response example (right-side sticky JSON panel) - parts.push(renderCodeGroup(samples)) - - parts.push('---') - parts.push('## Properties') - parts.push(renderProperties(properties, resourceType)) - - // Grouped properties (e.g., Hardware, Access Codes on device) - const grouped = renderGroupedProperties(properties, resourceType) - if (grouped) { - parts.push(grouped) - } - - // Nested object properties (e.g., device.properties with sub-groups) - const propsField = properties.find( - (p) => p.name === 'properties' && p.format === 'object', - ) - if (propsField?.properties && propsField.properties.length > 0) { - const subGroups = propsField.propertyGroups ?? [] - if (subGroups.length > 0) { - for (const group of subGroups) { - const groupProps = propsField.properties.filter( - (p) => - p.propertyGroupKey === group.propertyGroupKey && - !shouldHide(resourceType, p), - ) - if (groupProps.length === 0) continue - parts.push(`## ${group.name}`) - parts.push( - groupProps - .map((p) => renderResponseField(p, resourceType)) - .join('\n\n'), - ) - } - } else { - const visibleChildren = propsField.properties.filter( - (p) => !shouldHide(resourceType, p), - ) - if (visibleChildren.length > 0) { - parts.push(`## ${resourceType}.properties`) - parts.push( - visibleChildren - .map((p) => renderResponseField(p, resourceType)) - .join('\n\n'), - ) - } - } - } - - return parts.join('\n\n') -} - -async function updateObjectPages( - bp: Blueprint, - docsDir: string, -): Promise { - const updated: string[] = [] - - const resourcesByRoute = new Map< - string, - Array<{ - resourceType: string - description: string - samples: Array<{ - title: string - description: string - properties: Record - }> - properties: BlueprintProperty[] - }> - >() - for (const resource of bp.resources) { - if (resource.resourceSamples.length === 0) continue - const existing = resourcesByRoute.get(resource.routePath) ?? [] - existing.push({ - resourceType: resource.resourceType, - description: resource.description, - samples: resource.resourceSamples, - properties: resource.properties as BlueprintProperty[], - }) - resourcesByRoute.set(resource.routePath, existing) - } - - for (const [routePath, resources] of resourcesByRoute) { - const objectPath = join(docsDir, 'api', routePath.slice(1), 'object.mdx') - - let content: string - try { - content = await readFile(objectPath, 'utf8') - } catch { - continue - } - - let changed = false - // Process resources in reverse order so index shifts don't affect earlier sections - for (const { resourceType, description, samples, properties } of [ - ...resources, - ].reverse()) { - const sectionHeader = `## The ${resourceType} Object` - const sectionIdx = content.indexOf(sectionHeader) - if (sectionIdx === -1) continue - - const sectionContentStart = content.indexOf('\n', sectionIdx) + 1 - - // Find end of this resource section: next "## The X Object" or end of file - const nextResourceMatch = /\n## The \w+ Object/m.exec( - content.slice(sectionContentStart), - ) - const sectionEnd = nextResourceMatch - ? sectionContentStart + nextResourceMatch.index - : content.length - - const newSection = renderResourceSection( - resourceType, - description, - samples, - properties, - ) - content = - content.slice(0, sectionContentStart) + - '\n' + - newSection + - '\n' + - content.slice(sectionEnd) - changed = true - } - - if (changed) { - await writeFile(objectPath, content) - updated.push(routePath) - } - } - - return updated -} diff --git a/mintlify-codegen/layouts/errors.hbs b/mintlify-codegen/layouts/errors.hbs new file mode 100644 index 000000000..4bd3015c4 --- /dev/null +++ b/mintlify-codegen/layouts/errors.hbs @@ -0,0 +1,53 @@ +{{> frontmatter}} + +{{#if note}} + + These are {{note.noun}}-specific {{note.phrase}}. For {{note.phrase}} common to all devices, see [Device Errors and Warnings]({{note.route}}). + + +{{/if}} +{{#each sections}} +## {{title}} +{{#if shape}} + +Each {{shape.kind}} is an object with the following shape: + +```json Example {{shape.kind}} +{{shape.json}} +``` + + + +{{#each shape.fields}} +{{> error-shape-property}} +{{#unless @last}} + +{{/unless}} +{{/each}} + + +{{/if}} +{{#each groups}} +{{#if name}} + +### {{name}} +{{/if}} +{{#if inherited}} + + + These errors are inherited from the {{inherited.link}} resource. When they are set on the parent {{inherited.nounLower}}, they are propagated to this resource's errors list. + +{{/if}} +{{#each entries}} + +{{level}} `{{code}}` + +{{description}} + +--- +{{/each}} +{{/each}} +{{#unless @last}} + +{{/unless}} +{{/each}} diff --git a/mintlify-codegen/layouts/events.hbs b/mintlify-codegen/layouts/events.hbs new file mode 100644 index 000000000..402d90920 --- /dev/null +++ b/mintlify-codegen/layouts/events.hbs @@ -0,0 +1,29 @@ +{{> frontmatter}} + +{{#each events}} +## `{{eventType}}` + +{{description}} + + + +```json Example webhook payload +{{sampleJson}} +``` + + + + + +{{#each properties}} +{{> event-property}} +{{#unless @last}} + +{{/unless}} +{{/each}} + + +{{#unless @last}} + +{{/unless}} +{{/each}} diff --git a/mintlify-codegen/layouts/object.hbs b/mintlify-codegen/layouts/object.hbs new file mode 100644 index 000000000..3997d8ca7 --- /dev/null +++ b/mintlify-codegen/layouts/object.hbs @@ -0,0 +1,45 @@ +{{> frontmatter}} + +{{#each resources}} +## The {{resourceType}} Object + +{{description}} + + + +{{#each samples}} +```json {{title}} +{{json}} +``` +{{#unless @last}} + +{{/unless}} +{{/each}} + + + +--- + +## Properties + +{{#each fields}} +{{> object-property}} +{{#unless @last}} + +{{/unless}} +{{/each}} +{{#each subGroups}} + +## {{heading}} + +{{#each fields}} +{{> object-property}} +{{#unless @last}} + +{{/unless}} +{{/each}} +{{/each}} +{{#unless @last}} + +{{/unless}} +{{/each}} diff --git a/mintlify-codegen/layouts/partials/error-shape-property.hbs b/mintlify-codegen/layouts/partials/error-shape-property.hbs new file mode 100644 index 000000000..d261843dd --- /dev/null +++ b/mintlify-codegen/layouts/partials/error-shape-property.hbs @@ -0,0 +1,9 @@ + +{{#indent 2}} +{{description}} +{{#if isDiscriminator}} + +One of the {{kind}} codes listed below. +{{/if}} +{{/indent}} + diff --git a/mintlify-codegen/layouts/partials/event-property.hbs b/mintlify-codegen/layouts/partials/event-property.hbs new file mode 100644 index 000000000..3e3eefa0a --- /dev/null +++ b/mintlify-codegen/layouts/partials/event-property.hbs @@ -0,0 +1,27 @@ +{{!-- TODO: nested children render at 6 spaces here (the whole body is indented ++2 after children are indented +4) while the object pages indent children at 4. +Reproduced from the old string renderers; align them in an output-changing +follow-up. --}} + +{{#indent 2}} +{{#if value}} +Value: `{{value}}` +{{else}} +{{description}} +{{#if possibleValues}} + +Possible values: {{possibleValues}} +{{/if}} +{{/if}} +{{#if children.length}} + + +{{#each children}} +{{#indent 4}} +{{> event-property}} +{{/indent}} +{{/each}} + +{{/if}} +{{/indent}} + diff --git a/mintlify-codegen/layouts/partials/frontmatter.hbs b/mintlify-codegen/layouts/partials/frontmatter.hbs new file mode 100644 index 000000000..edb59a5f9 --- /dev/null +++ b/mintlify-codegen/layouts/partials/frontmatter.hbs @@ -0,0 +1,4 @@ +--- +title: '{{escapeSingleQuotes title}}' +description: '{{escapeSingleQuotes description}}' +--- diff --git a/mintlify-codegen/layouts/partials/object-property.hbs b/mintlify-codegen/layouts/partials/object-property.hbs new file mode 100644 index 000000000..bb40d488e --- /dev/null +++ b/mintlify-codegen/layouts/partials/object-property.hbs @@ -0,0 +1,24 @@ +{{#if eventTypeEnum}} + + The event type. + + +{{#each eventTypeEnum}} + - `{{this}}` +{{/each}} + + +{{else}} + + {{description}} +{{#if children.length}} + +{{#each children}} +{{#indent 4}} +{{> object-property}} +{{/indent}} +{{/each}} + +{{/if}} + +{{/if}} diff --git a/mintlify-codegen/canonicalize-links.ts b/mintlify-codegen/lib/canonicalize-links.ts similarity index 100% rename from mintlify-codegen/canonicalize-links.ts rename to mintlify-codegen/lib/canonicalize-links.ts diff --git a/mintlify-codegen/lib/config.ts b/mintlify-codegen/lib/config.ts new file mode 100644 index 000000000..82d149239 --- /dev/null +++ b/mintlify-codegen/lib/config.ts @@ -0,0 +1,53 @@ +/** Route path of the Event object page. Events do not emit events, so this + * path never appears in `blueprint.events`; its object page is special-cased to + * receive the full `event_type` enum. */ +export const eventObjectRoute = '/events' + +/** Route of the aggregate device errors/warnings page. Sub-categories that + * share the device-level codes link back to it. */ +export const commonDeviceErrorsRoute = '/api/devices/errors' + +export interface DeviceSubcategory { + // Route that carries the sub-category's dedicated errors page. + routePath: string + // Whether the sub-category shares the device-level errors/warnings documented + // on /api/devices/errors, and so should cross-link to them. The shared codes + // are physical-device connectivity/subscription errors (`device_offline`, + // `hub_disconnected`, `salto_ks_subscription_limit_exceeded`, …), relevant to + // locks and thermostats but not to phones (mobile devices used for + // credentials), so the phones page omits the cross-link. + linkCommonDeviceErrors: boolean +} + +// Some device sub-categories have their own docs route but no blueprint +// resource of their own — the Seam API models a lock, thermostat, or phone as a +// `device`. Their error/warning codes therefore live on the `device` resource +// under a variant group of the same key rather than on a resource of their own, +// so the per-resource loop never produces a page for them. This maps each such +// variant group to the route that should carry its dedicated page. +// +// The map is an explicit allowlist, not `'/' + groupKey`: groups like +// `access_codes`, `hardware`, and `provider_metadata` annotate the device page +// but have no standalone sub-category route. In particular /access_codes +// already documents the `access_code` resource's own, distinct errors — routing +// the device `access_codes` group there would clobber it. +export const deviceSubcategoryErrorRoutes: Record = { + locks: { routePath: '/locks', linkCommonDeviceErrors: true }, + phones: { routePath: '/phones', linkCommonDeviceErrors: false }, + thermostats: { routePath: '/thermostats', linkCommonDeviceErrors: true }, +} + +// Resources whose inherited error groups are restricted to an allowlist of +// variant groups (in addition to the always-included ungrouped variants). An +// error's `variant.resourceType` names the resource it belongs to, so a resource +// inherits the errors whose type differs from its own (e.g. an access code +// inherits its lock's device errors). On the access code pages, only +// lock-related inherited errors are relevant; broader device categories like +// thermostats or noise sensors are not. +export const inheritedErrorGroupAllowlist: Record = { + access_code: ['locks'], + unmanaged_access_code: ['locks'], +} + +/** Per-resource-type property names to omit from generated object pages. */ +export const hiddenProperties: Record> = {} diff --git a/mintlify-codegen/update-nav.ts b/mintlify-codegen/lib/docs-json.ts similarity index 88% rename from mintlify-codegen/update-nav.ts rename to mintlify-codegen/lib/docs-json.ts index 8ed18ef82..1f54b7bd5 100644 --- a/mintlify-codegen/update-nav.ts +++ b/mintlify-codegen/lib/docs-json.ts @@ -1,6 +1,30 @@ /* eslint-disable no-console */ -import { readFile, writeFile } from 'node:fs/promises' -import { join } from 'node:path' +import type Metalsmith from 'metalsmith' + +import type { MintlifyMetadata } from './openapi.js' + +/** + * Metalsmith plugin: rewrite the API Reference tab of docs.json so endpoint + * pages become OpenAPI references (`POST /path`) rendered natively by Mintlify + * from openapi.json, and wire the generated events/errors pages into the + * sidebar next to their object page. Operates on `files['docs.json']` + * (ingested by the ingest plugin) and serializes once. + */ +export const docsJson: Metalsmith.Plugin = (files, metalsmith) => { + const metadata = metalsmith.metadata() as { mintlify: MintlifyMetadata } + const { specPaths, eventPageRoutes, errorPageRoutes } = metadata.mintlify + + const file = files['docs.json'] + if (file == null) throw new Error('docs.json was not ingested') + const docsJson = JSON.parse(file.contents.toString()) + + console.log('Updating docs.json navigation...') + updateApiTab(docsJson, specPaths) + insertEventsPagesIntoNav(docsJson, eventPageRoutes) + insertErrorPagesIntoNav(docsJson, errorPageRoutes) + + file.contents = Buffer.from(JSON.stringify(docsJson, null, 2) + '\n') +} /** * Static pages that should NOT be converted to OpenAPI references. @@ -113,28 +137,7 @@ function transformPages( .filter((p) => p !== null) } -export async function updateDocsJson(specPaths?: Set): Promise { - const docsJsonPath = join( - import.meta.dirname, - '..', - 'mintlify-docs', - 'docs.json', - ) - - const docsJson = JSON.parse(await readFile(docsJsonPath, 'utf8')) - - // If specPaths not provided, load from combined spec - if (!specPaths) { - const specPath = join( - import.meta.dirname, - '..', - 'mintlify-docs', - 'openapi.json', - ) - const spec = JSON.parse(await readFile(specPath, 'utf8')) - specPaths = new Set(Object.keys(spec.paths)) - } - +function updateApiTab(docsJson: any, specPaths: Set): void { // Find the API Reference tab const tabs = docsJson.navigation?.tabs if (!tabs) { @@ -192,8 +195,6 @@ export async function updateDocsJson(specPaths?: Set): Promise { } } - await writeFile(docsJsonPath, JSON.stringify(docsJson, null, 2) + '\n') - // Count what changed let openApiRefs = 0 let staticRefs = 0 @@ -365,21 +366,11 @@ function insertIntoMatchingGroup(groups: any[], path: string): boolean { /** * Insert each generated events page into the nav directly after its object * page (e.g. "api/access_grants/events" after "api/access_grants/object"). - * Idempotent: skips routes whose events page is already present. Call after the - * events pages have been written to disk. + * Idempotent: skips routes whose events page is already present. */ -export async function insertEventsPagesIntoNav( - eventRoutes: string[], -): Promise { +function insertEventsPagesIntoNav(docsJson: any, eventRoutes: string[]): void { if (eventRoutes.length === 0) return - const docsJsonPath = join( - import.meta.dirname, - '..', - 'mintlify-docs', - 'docs.json', - ) - const docsJson = JSON.parse(await readFile(docsJsonPath, 'utf8')) const apiTab = docsJson.navigation?.tabs?.find( (t: any) => t.tab === 'API Reference', ) @@ -396,7 +387,6 @@ export async function insertEventsPagesIntoNav( } if (inserted > 0) { - await writeFile(docsJsonPath, JSON.stringify(docsJson, null, 2) + '\n') console.log(` Added ${inserted} events page(s) to nav`) } } @@ -405,21 +395,12 @@ export async function insertEventsPagesIntoNav( * Insert each generated errors/warnings page into the nav after its events page * (falling back to its object page when there is no events page), e.g. * "api/devices/errors" after "api/devices/events". Idempotent: skips routes - * whose errors page is already present. Call after the errors pages have been - * written to disk and after events pages are wired in. + * whose errors page is already present. Runs after events pages are wired in so + * the sidebar reads object -> events -> errors. */ -export async function insertErrorPagesIntoNav( - errorRoutes: string[], -): Promise { +function insertErrorPagesIntoNav(docsJson: any, errorRoutes: string[]): void { if (errorRoutes.length === 0) return - const docsJsonPath = join( - import.meta.dirname, - '..', - 'mintlify-docs', - 'docs.json', - ) - const docsJson = JSON.parse(await readFile(docsJsonPath, 'utf8')) const apiTab = docsJson.navigation?.tabs?.find( (t: any) => t.tab === 'API Reference', ) @@ -438,7 +419,6 @@ export async function insertErrorPagesIntoNav( } if (inserted > 0) { - await writeFile(docsJsonPath, JSON.stringify(docsJson, null, 2) + '\n') console.log(` Added ${inserted} errors page(s) to nav`) } } @@ -483,8 +463,3 @@ function insertAfterPage( } return 'not-found' } - -// Run if called directly (standalone usage) -if (import.meta.url === `file://${process.argv[1]}`) { - updateDocsJson() -} diff --git a/mintlify-codegen/lib/format-type.ts b/mintlify-codegen/lib/format-type.ts new file mode 100644 index 000000000..fe40ee9f6 --- /dev/null +++ b/mintlify-codegen/lib/format-type.ts @@ -0,0 +1,75 @@ +/** + * Type labels for blueprint properties on generated API-reference pages. + * + * There are two variants because the pages they serve genuinely diverge in the + * committed output, and the generated bytes must not change: + * + * - `formatTypeBasic` (object pages) has no `record` case, so record-format + * properties fall through to the raw jsonType and render `type="object"`. + * - `formatType` (events/errors pages) maps `record` to `Object` and falls + * back to `String` when jsonType is absent. + * + * TODO: unify on `formatType` once an output-changing pass is acceptable — + * that flips `type="object"` to `type="Object"` (e.g. `custom_metadata`) and + * bare jsonTypes like `number` to capitalized labels on the object pages. + */ + +interface Formattable { + format: string + jsonType?: string +} + +/** Object-page variant (ported from generate.ts `formatPropertyType`). */ +export function formatTypeBasic(format: string, jsonType: string): string { + switch (format) { + case 'id': + return 'String (UUID)' + case 'datetime': + return 'String (ISO 8601)' + case 'enum': + return 'Enum (String)' + case 'list': + return 'Array' + case 'boolean': + return 'Boolean' + case 'string': + return 'String' + case 'object': + return 'Object' + default: + return jsonType + } +} + +/** Events/errors-page variant (ported from property-fields.ts `formatType`). */ +export function formatType(prop: Formattable): string { + switch (prop.format) { + case 'id': + return 'String (UUID)' + case 'datetime': + return 'String (ISO 8601)' + case 'enum': + return 'Enum (String)' + case 'list': + return 'Array' + case 'boolean': + return 'Boolean' + case 'string': + return 'String' + case 'object': + case 'record': + return 'Object' + default: + return prop.jsonType ?? 'String' + } +} + +/** Narrow a property to one that carries enum `values`. Generic so it preserves + * the caller's property type. */ +export function hasEnumValues( + prop: T, +): prop is T & { values: Array<{ name: string }> } { + return ( + 'values' in prop && Array.isArray((prop as { values?: unknown }).values) + ) +} diff --git a/mintlify-codegen/lib/handlebars-helpers.ts b/mintlify-codegen/lib/handlebars-helpers.ts new file mode 100644 index 000000000..7d4f8e396 --- /dev/null +++ b/mintlify-codegen/lib/handlebars-helpers.ts @@ -0,0 +1,13 @@ +import type { HelperOptions } from 'handlebars' + +import { escapeSingleQuotes as escape, indent as indentText } from './text.js' + +/** Escape single quotes for single-quoted frontmatter values. */ +export const escapeSingleQuotes = (value: string): string => escape(value) + +/** Block helper: indent every non-blank line of the block by `spaces` spaces. + * Mirrors the `indent()` text helper so recursive partials reproduce the + * nested `` indentation byte-for-byte. */ +export function indent(this: unknown, spaces: number, options: HelperOptions) { + return indentText(options.fn(this), spaces) +} diff --git a/mintlify-codegen/lib/index.ts b/mintlify-codegen/lib/index.ts new file mode 100644 index 000000000..322282d86 --- /dev/null +++ b/mintlify-codegen/lib/index.ts @@ -0,0 +1,13 @@ +import { handlebarsHelpers } from '@seamapi/smith' + +import * as customHelpers from './handlebars-helpers.js' + +export const helpers = { ...handlebarsHelpers, ...customHelpers } + +export * from './docs-json.js' +export * from './ingest.js' +export * from './missing-samples.js' +export * from './openapi.js' +export * from './postprocess.js' +export * from './reference.js' +export * from './report.js' diff --git a/mintlify-codegen/lib/ingest.ts b/mintlify-codegen/lib/ingest.ts new file mode 100644 index 000000000..5600dee8f --- /dev/null +++ b/mintlify-codegen/lib/ingest.ts @@ -0,0 +1,18 @@ +import { readFile } from 'node:fs/promises' +import { join } from 'node:path' + +import type Metalsmith from 'metalsmith' + +/** + * Metalsmith plugin: read docs.json from the destination tree into `files[]` + * so downstream plugins (docs-json nav surgery, link canonicalization) operate + * on it in memory and Metalsmith writes the result back with the build. + * + * docs.json is the one hand-maintained file the pipeline updates in place: the + * Guides tabs are authored, while the API Reference tab and redirects are + * pipeline-managed. + */ +export const ingest: Metalsmith.Plugin = async (files, metalsmith) => { + const contents = await readFile(join(metalsmith.destination(), 'docs.json')) + files['docs.json'] = { contents } as (typeof files)[string] +} diff --git a/mintlify-codegen/lib/layout/errors-page.ts b/mintlify-codegen/lib/layout/errors-page.ts new file mode 100644 index 000000000..495b0dd8f --- /dev/null +++ b/mintlify-codegen/lib/layout/errors-page.ts @@ -0,0 +1,437 @@ +import type { Blueprint, DiscriminatedListProperty } from '@seamapi/blueprint' + +import { formatType } from '../format-type.js' +import { sampleValue } from '../sample-value.js' + +type Resource = Blueprint['resources'][number] +export type Property = Resource['properties'][number] + +interface CodeEntry { + code: string + description: string +} + +interface CodeGroup { + // Group heading (e.g. "Locks"); null for the ungrouped variants. + name: string | null + entries: CodeEntry[] + // Set on inherited-error groups: the parent resource the errors come from and + // a link to its own errors page. Drives the explanatory callout. + inheritedFrom?: { + noun: string + href?: string + } +} + +interface ShapeFieldContext { + name: string + type: string + description: string + // The discriminator field gets a `One of the codes listed below.` line. + isDiscriminator: boolean + kind: string +} + +interface SectionGroupContext { + name: string | null + inherited?: { link: string; nounLower: string } | undefined + entries: Array<{ level: string; code: string; description: string }> +} + +interface SectionContext { + title: string + shape?: + | { + kind: string + accordionTitle: string + json: string + fields: ShapeFieldContext[] + } + | undefined + groups: SectionGroupContext[] +} + +export interface ErrorsPageLayoutContext { + layout: string + contents: Buffer + title: string + description: string + note?: { noun: string; phrase: string; route: string } | undefined + sections: SectionContext[] +} + +export function isDiscriminatedListProperty( + prop: Property | undefined, +): prop is Property & DiscriminatedListProperty { + return ( + prop != null && + 'itemFormat' in prop && + prop.itemFormat === 'discriminated_object' + ) +} + +/** + * Read the enumerated code (the discriminator enum's single value) from a + * variant's properties, e.g. `error_code = "device_offline"`. + */ +function variantCode( + variant: DiscriminatedListProperty['variants'][number], + discriminator: string, +): string | null { + const prop = variant.properties.find( + (p) => p.name === discriminator && p.format === 'enum', + ) as { values?: Array<{ name: string }> } | undefined + return prop?.values?.[0]?.name ?? null +} + +/** Map a list of variants to sorted code entries, dropping any without a + * discriminator code. */ +function variantsToEntries( + variants: DiscriminatedListProperty['variants'], + discriminator: string, +): CodeEntry[] { + return variants + .map((v) => { + const code = variantCode(v, discriminator) + return code == null + ? null + : { code, description: (v.description ?? '').trim() } + }) + .filter((e): e is CodeEntry => e != null) + .sort((a, b) => a.code.localeCompare(b.code)) +} + +/** + * Group a resource's `errors` or `warnings` property into ordered code groups: + * the ungrouped variants first (no heading), then each named variant group in + * blueprint order. Entries within a group are sorted by code. Returns an empty + * array when the property is absent or has no documented variants. + */ +export function groupCodes(prop: Property | undefined): CodeGroup[] { + if (!isDiscriminatedListProperty(prop)) return [] + + const entriesFor = (key: string | null): CodeEntry[] => + variantsToEntries( + prop.variants.filter((v) => v.variantGroupKey === key), + prop.discriminator, + ) + + const groups: CodeGroup[] = [{ name: null, entries: entriesFor(null) }] + for (const group of prop.variantGroups) { + groups.push({ + name: group.name, + entries: entriesFor(group.variantGroupKey), + }) + } + return groups.filter((g) => g.entries.length > 0) +} + +/** Convert a resource type (`connected_account`) into a display noun + * (`Connected Account`) for an inherited-error group heading. */ +function resourceTypeNoun(resourceType: string): string { + return resourceType + .split('_') + .map((w) => w.charAt(0).toUpperCase() + w.slice(1)) + .join(' ') +} + +/** + * Group a resource's `errors` property following the inheritance model: first + * the errors that belong to the resource itself (whose `variant.resourceType` + * matches), grouped by variant group exactly like `groupCodes`; then, for each + * parent resource whose errors this resource inherits (variants with a different + * `resourceType`), a single flat group per parent — variant groups are ignored, + * and the group is headed by the parent's noun. Inherited groups are ordered by + * parent resource type. When `inheritedGroupAllowlist` is set, inherited errors + * are limited to the ungrouped variants plus the listed variant groups. + */ +export function groupErrorCodes( + prop: Property | undefined, + resourceType: string, + inheritedGroupAllowlist?: string[], + errorsHrefByResourceType?: Record, +): CodeGroup[] { + if (!isDiscriminatedListProperty(prop)) return [] + + // Unmanaged resources carry their managed counterpart's resource type on + // their variants (`unmanaged_access_code` errors are tagged `access_code`), so + // strip the `unmanaged_` prefix to identify the resource's own errors. A + // variant with no resource type is treated as the resource's own. + const ownResourceType = resourceType.replace(/^unmanaged_/, '') + const isOwn = ( + variant: DiscriminatedListProperty['variants'][number], + ): boolean => + variant.resourceType == null || variant.resourceType === ownResourceType + + // Errors matching the resource's own type, grouped by variant group. + const ownGroups = groupCodes({ + ...prop, + variants: prop.variants.filter(isOwn), + }) + + // Errors inherited from parent resources, one flat group per parent resource. + const parentResourceTypes = [ + ...new Set( + prop.variants + .map((v) => v.resourceType) + .filter((t): t is string => t != null && t !== ownResourceType), + ), + ].sort() + + const isAllowedGroup = (variantGroupKey: string | null): boolean => + inheritedGroupAllowlist == null || + variantGroupKey == null || + inheritedGroupAllowlist.includes(variantGroupKey) + + const inheritedGroups: CodeGroup[] = parentResourceTypes + .map((parentResourceType): CodeGroup => { + const variants = prop.variants.filter( + (v) => + v.resourceType === parentResourceType && + isAllowedGroup(v.variantGroupKey), + ) + const href = errorsHrefByResourceType?.[parentResourceType] + return { + name: resourceTypeNoun(parentResourceType), + entries: variantsToEntries(variants, prop.discriminator), + inheritedFrom: { + noun: resourceTypeNoun(parentResourceType), + ...(href == null ? {} : { href }), + }, + } + }) + .filter((g) => g.entries.length > 0) + + return [...ownGroups, ...inheritedGroups] +} + +/** + * Order an object's properties for display: the discriminator first, then + * `message` and `created_at`, then everything else alphabetically. Keeps the + * example payload and properties list readable and consistent across pages. + */ +function orderProperties(props: Property[], discriminator: string): Property[] { + const priority = [discriminator, 'message', 'created_at'] + const rank = (name: string): number => { + const i = priority.indexOf(name) + return i === -1 ? priority.length : i + } + return [...props].sort( + (a, b) => rank(a.name) - rank(b.name) || a.name.localeCompare(b.name), + ) +} + +/** + * The union of properties across a discriminated list's variants, deduplicated + * by name (first occurrence wins). Variants share a core shape (`error_code` or + * `warning_code`, `message`, `created_at`) plus a few variant-specific flags, so + * the union documents every field a reader might encounter. + */ +function unionProperties(prop: DiscriminatedListProperty): Property[] { + const byName = new Map() + for (const variant of prop.variants) { + for (const p of variant.properties) { + if (!byName.has(p.name)) byName.set(p.name, p) + } + } + return orderProperties([...byName.values()] as Property[], prop.discriminator) +} + +/** Strip Markdown link and inline-code syntax so a description reads as the + * plain-text string an API `message` field would actually contain + * (`[access grant](https://…)` -> `access grant`). */ +function toPlainText(md: string): string { + return md + .replace(/\[([^\]]+)\]\([^)]*\)/g, '$1') + .replace(/`([^`]+)`/g, '$1') + .trim() +} + +/** Build an example object from one variant: the concrete code and a plain-text + * message, with fixed sample values for the rest. */ +function buildExample( + variant: DiscriminatedListProperty['variants'][number], + discriminator: string, + code: string, +): Record { + const example: Record = {} + for (const p of orderProperties( + variant.properties as Property[], + discriminator, + )) { + if (p.name === discriminator) example[p.name] = code + else if (p.name === 'message') { + example[p.name] = + toPlainText(variant.description ?? '') || 'A human-readable message.' + } else example[p.name] = sampleValue(p) + } + return example +} + +/** + * Build the object-shape context for a section: an example payload (built from + * the first variant) and the union of every variant's properties. Returns + * undefined when the property is missing or has no variants. + */ +function buildShape( + prop: Property | undefined, + kind: string, +): SectionContext['shape'] { + if (!isDiscriminatedListProperty(prop)) return undefined + const first = prop.variants[0] + if (first == null) return undefined + + const code = variantCode(first, prop.discriminator) ?? '' + const title = kind.charAt(0).toUpperCase() + kind.slice(1) + + return { + kind, + accordionTitle: `${title} object properties`, + json: JSON.stringify( + buildExample(first, prop.discriminator, code), + null, + 2, + ), + fields: unionProperties(prop).map((p) => ({ + name: p.name, + type: formatType(p), + description: + (p.description ?? '').trim() || `The ${p.name.replace(/_/g, ' ')}.`, + isDiscriminator: p.name === prop.discriminator, + kind, + })), + } +} + +function buildSection( + title: string, + kind: string, + prop: Property | undefined, + groups: CodeGroup[], +): SectionContext | undefined { + if (groups.length === 0) return undefined + return { + title, + shape: buildShape(prop, kind), + groups: groups.map((group) => ({ + name: group.name, + inherited: + group.inheritedFrom == null + ? undefined + : { + link: + group.inheritedFrom.href == null + ? group.inheritedFrom.noun + : `[${group.inheritedFrom.noun}](${group.inheritedFrom.href})`, + nounLower: group.inheritedFrom.noun.toLowerCase(), + }, + entries: group.entries.map((entry) => ({ + // Named variant groups nest their codes at `####`; ungrouped codes sit + // directly under the section at `###`. + level: group.name != null ? '####' : '###', + code: entry.code, + description: + entry.description || `Indicates the \`${entry.code}\` state.`, + })), + })), + } +} + +/** + * Narrow a device `errors`/`warnings` property to a single variant group, + * flattening the kept variants to ungrouped (`variantGroupKey` cleared) so their + * codes render as top-level entries — a group heading would be redundant on a + * page already scoped to that sub-category. Returns undefined when the property + * is absent or the group has no variants, so the caller emits nothing. + */ +export function variantGroupProp( + prop: Property | undefined, + groupKey: string, +): (Property & DiscriminatedListProperty) | undefined { + if (!isDiscriminatedListProperty(prop)) return undefined + const variants = prop.variants + .filter((v) => v.variantGroupKey === groupKey) + .map((v) => ({ ...v, variantGroupKey: null })) + if (variants.length === 0) return undefined + return { ...prop, variants, variantGroups: [] } +} + +/** The `Errors`/`Warnings`/`Errors and Warnings` suffix for the given sections. */ +function kindSuffix(hasErrors: boolean, hasWarnings: boolean): string { + if (hasErrors && hasWarnings) return 'Errors and Warnings' + return hasErrors ? 'Errors' : 'Warnings' +} + +export interface ErrorsPageOptions { + // When set, prepend a note linking to the errors/warnings shared by all + // devices. Used only for device sub-category pages (locks/thermostats/phones), + // which are subsets that omit the device-level codes. + commonDeviceErrorsRoute?: string + // When set, errors are grouped by the inheritance model (own errors first, + // then a flat group per parent resource) keyed on this resource type. Used for + // real per-resource pages; omitted for device sub-category pages, which are + // already scoped to a single variant group. + inheritanceResourceType?: string + // Restricts inherited errors to these variant groups (plus ungrouped ones). + inheritedGroupAllowlist?: string[] | undefined + // Maps a resource type to its errors page href, used to link an inherited + // group's callout back to the parent resource's own errors page. + errorsHrefByResourceType?: Record +} + +/** + * Build the layout context for a resource's errors/warnings page. Returns null + * when the resource has no documented codes, so the caller emits nothing. + */ +export function setErrorsPageLayoutContext( + noun: string, + errorsProp: Property | undefined, + warningsProp: Property | undefined, + options: ErrorsPageOptions = {}, +): ErrorsPageLayoutContext | null { + const errorGroups = + options.inheritanceResourceType != null + ? groupErrorCodes( + errorsProp, + options.inheritanceResourceType, + options.inheritedGroupAllowlist, + options.errorsHrefByResourceType, + ) + : groupCodes(errorsProp) + const warningGroups = groupCodes(warningsProp) + if (errorGroups.length === 0 && warningGroups.length === 0) return null + + const errorSection = buildSection('Errors', 'error', errorsProp, errorGroups) + const warningSection = buildSection( + 'Warnings', + 'warning', + warningsProp, + warningGroups, + ) + + const title = `${noun} ${kindSuffix(errorSection != null, warningSection != null)}` + const kinds = + errorSection != null && warningSection != null + ? 'Errors and warnings' + : errorSection != null + ? 'Errors' + : 'Warnings' + + return { + layout: 'errors.hbs', + contents: Buffer.from(''), + title, + description: `${kinds} that Seam reports on the ${noun} resource, each with its code and meaning.`, + note: + options.commonDeviceErrorsRoute == null + ? undefined + : { + noun, + phrase: kinds.toLowerCase(), + route: options.commonDeviceErrorsRoute, + }, + sections: [errorSection, warningSection].filter( + (s): s is SectionContext => s != null, + ), + } +} diff --git a/mintlify-codegen/lib/layout/events-page.ts b/mintlify-codegen/lib/layout/events-page.ts new file mode 100644 index 000000000..867b8f41b --- /dev/null +++ b/mintlify-codegen/lib/layout/events-page.ts @@ -0,0 +1,139 @@ +import type { Blueprint } from '@seamapi/blueprint' + +import { formatType, hasEnumValues } from '../format-type.js' +import { sampleValueDeep } from '../sample-value.js' + +type EventResource = Blueprint['events'][number] +type EventProperty = EventResource['properties'][number] + +export interface EventPropertyContext { + name: string + type: string + // Set for a single-value `event_type` enum: render `Value: \`x\`` instead of + // the description body. + value?: string + description?: string + possibleValues?: string + children: EventPropertyContext[] +} + +interface EventContext { + eventType: string + description: string + sampleJson: string + properties: EventPropertyContext[] +} + +export interface EventsPageLayoutContext { + layout: string + contents: Buffer + title: string + description: string + events: EventContext[] +} + +/** + * Object-format properties (e.g. the `from`/`to` of a `*.*_changed` event) + * carry their own typed `properties` array. Free-form records + * (`*_custom_metadata`) have an empty array; those still render as `{}`. + */ +function hasNestedProperties( + prop: EventProperty, +): prop is EventProperty & { properties: EventProperty[] } { + return ( + 'properties' in prop && + Array.isArray((prop as { properties?: unknown }).properties) && + (prop as { properties: unknown[] }).properties.length > 0 + ) +} + +/** + * Synthesize an example webhook payload for an event so readers can see its + * shape without triggering the event. `event_type` gets the concrete type and + * `event_description` echoes the event's description (matching the real + * payload); every other field gets a type-appropriate placeholder. + */ +function buildEventSample(event: EventResource): Record { + const sample: Record = {} + for (const prop of event.properties) { + if (prop.isUndocumented) continue + if (prop.name === 'event_type') { + sample[prop.name] = event.eventType + } else if (prop.name === 'event_description') { + sample[prop.name] = event.description.trim() + } else { + sample[prop.name] = sampleValueDeep(prop) + } + } + return sample +} + +function buildEventProperty(prop: EventProperty): EventPropertyContext { + const context: EventPropertyContext = { + name: prop.name, + type: formatType(prop), + children: [], + } + + // `event_type` is a single-value enum: show the concrete value. + if ( + prop.name === 'event_type' && + hasEnumValues(prop) && + prop.values.length === 1 && + prop.values[0] != null + ) { + context.value = prop.values[0].name + } else { + const description = (prop.description ?? '').trim() + context.description = description || `The ${prop.name.replace(/_/g, ' ')}.` + + if (hasEnumValues(prop) && prop.values.length > 0) { + context.possibleValues = prop.values + .map((value) => `\`${value.name}\``) + .join(', ') + } + } + + // Typed objects (a `*_changed` event's `from`/`to`) document their child + // fields in a nested ``, matching the object pages. + if (hasNestedProperties(prop)) { + context.children = prop.properties + .filter((child) => !child.isUndocumented) + .map(buildEventProperty) + } + + return context +} + +/** Group events by the route path of the resource that emits them. */ +export function groupEventsByRoutePath( + events: EventResource[], +): Map { + const byRoute = new Map() + for (const event of events) { + const group = byRoute.get(event.routePath) ?? [] + group.push(event) + byRoute.set(event.routePath, group) + } + return byRoute +} + +export function setEventsPageLayoutContext( + events: EventResource[], + noun: string, +): EventsPageLayoutContext { + return { + layout: 'events.hbs', + contents: Buffer.from(''), + title: `${noun} Events`, + description: `Webhook events that Seam emits for the ${noun} resource, with example payloads and properties.`, + events: events.map((event) => ({ + eventType: event.eventType, + description: event.description.trim(), + sampleJson: JSON.stringify(buildEventSample(event), null, 2), + properties: event.properties + .filter((prop) => !prop.isUndocumented) + .map(buildEventProperty), + })), + } +} diff --git a/mintlify-codegen/lib/layout/object-page.ts b/mintlify-codegen/lib/layout/object-page.ts new file mode 100644 index 000000000..eff70e1c6 --- /dev/null +++ b/mintlify-codegen/lib/layout/object-page.ts @@ -0,0 +1,168 @@ +import type { Blueprint } from '@seamapi/blueprint' + +import { hiddenProperties } from '../config.js' +import { formatTypeBasic } from '../format-type.js' + +type Resource = Blueprint['resources'][number] + +interface BlueprintProperty { + name: string + description: string + format: string + jsonType: string + isDeprecated: boolean + isUndocumented: boolean + properties?: BlueprintProperty[] + propertyGroups?: Array<{ name: string; propertyGroupKey: string }> + propertyGroupKey?: string | null +} + +export interface PropertyFieldContext { + name: string + type: string + deprecated: boolean + description: string + children: PropertyFieldContext[] + // Set only on the Event object page's `event_type` field: the full list of + // event types, rendered as an `Enum values` accordion instead of the + // description body. + eventTypeEnum?: string[] +} + +interface ResourceSectionContext { + resourceType: string + description: string + samples: Array<{ title: string; json: string }> + fields: PropertyFieldContext[] + subGroups: Array<{ heading: string; fields: PropertyFieldContext[] }> +} + +export interface ObjectPageLayoutContext { + layout: string + contents: Buffer + title: string + description: string + resources: ResourceSectionContext[] +} + +function shouldHide(resourceType: string, prop: BlueprintProperty): boolean { + if (prop.isUndocumented) return true + return hiddenProperties[resourceType]?.has(prop.name) ?? false +} + +function buildField( + prop: BlueprintProperty, + resourceType: string, +): PropertyFieldContext { + const field: PropertyFieldContext = { + name: prop.name, + type: formatTypeBasic(prop.format, prop.jsonType), + deprecated: prop.isDeprecated, + description: prop.description || `The ${prop.name.replace(/_/g, ' ')}.`, + children: [], + } + + if ( + prop.format === 'object' && + prop.properties && + prop.properties.length > 0 + ) { + field.children = prop.properties + .filter((c) => !shouldHide(resourceType, c)) + .map((c) => buildField(c, resourceType)) + } + + return field +} + +/** + * Build the layout context for a resource section: the ungrouped properties + * first, then the grouped properties in group insertion order (both rendered + * as one `## Properties` run of fields), then the nested `properties` + * sub-group sections (e.g. Hardware, Locks on the device resource). + */ +function buildResourceSection( + resource: Resource, + eventTypes: string[] | undefined, +): ResourceSectionContext { + const { resourceType } = resource + const properties = resource.properties as unknown as BlueprintProperty[] + + const ungrouped = properties.filter( + (p) => !shouldHide(resourceType, p) && !p.propertyGroupKey, + ) + const grouped = new Map() + for (const p of properties) { + if (shouldHide(resourceType, p) || !p.propertyGroupKey) continue + const existing = grouped.get(p.propertyGroupKey) + if (existing) existing.push(p) + else grouped.set(p.propertyGroupKey, [p]) + } + + const fields = [...ungrouped, ...[...grouped.values()].flat()].map((p) => + buildField(p, resourceType), + ) + + // The Event object page's `event_type` field carries the full enum. + if (eventTypes != null) { + const eventTypeField = fields.find((f) => f.name === 'event_type') + if (eventTypeField != null) eventTypeField.eventTypeEnum = eventTypes + } + + const subGroups: ResourceSectionContext['subGroups'] = [] + const propsField = properties.find( + (p) => p.name === 'properties' && p.format === 'object', + ) + if (propsField?.properties && propsField.properties.length > 0) { + const groups = propsField.propertyGroups ?? [] + if (groups.length > 0) { + for (const group of groups) { + const groupProps = propsField.properties.filter( + (p) => + p.propertyGroupKey === group.propertyGroupKey && + !shouldHide(resourceType, p), + ) + if (groupProps.length === 0) continue + subGroups.push({ + heading: group.name, + fields: groupProps.map((p) => buildField(p, resourceType)), + }) + } + } else { + const visibleChildren = propsField.properties.filter( + (p) => !shouldHide(resourceType, p), + ) + if (visibleChildren.length > 0) { + subGroups.push({ + heading: `${resourceType}.properties`, + fields: visibleChildren.map((p) => buildField(p, resourceType)), + }) + } + } + } + + return { + resourceType, + description: resource.description, + samples: resource.resourceSamples.map((s) => ({ + title: s.title, + json: JSON.stringify(s.properties, null, 2), + })), + fields, + subGroups, + } +} + +export function setObjectPageLayoutContext( + resources: Resource[], + meta: { title: string; description: string }, + eventTypes: string[] | undefined, +): ObjectPageLayoutContext { + return { + layout: 'object.hbs', + contents: Buffer.from(''), + title: meta.title, + description: meta.description, + resources: resources.map((r) => buildResourceSection(r, eventTypes)), + } +} diff --git a/mintlify-codegen/load-data.ts b/mintlify-codegen/lib/missing-samples.ts similarity index 52% rename from mintlify-codegen/load-data.ts rename to mintlify-codegen/lib/missing-samples.ts index 5fe2868e9..c829b148c 100644 --- a/mintlify-codegen/load-data.ts +++ b/mintlify-codegen/lib/missing-samples.ts @@ -1,50 +1,6 @@ /* eslint-disable no-console */ -import { readdir, readFile } from 'node:fs/promises' -import { join } from 'node:path' - -import { type Blueprint, createBlueprint } from '@seamapi/blueprint' import * as types from '@seamapi/types/connect' -// @ts-expect-error js-yaml has no type declarations -import jsYaml from 'js-yaml' - -import { formatCode } from '../codegen/lib/format-code.js' - -const yamlParse = (content: string): any => jsYaml.load(content) - -interface PathMetadataEntry { - title: string - description?: string - overview?: string - alpha?: string -} - -export type PathMetadata = Record - -/** - * Load all YAML arrays from a directory, concatenating them into a flat array. - * Replicates what @metalsmith/metadata does for directory sources. - */ -async function loadYamlArrayDir(dir: string): Promise { - const files = await readdir(dir) - const arrays = await Promise.all( - files - .filter((f) => f.endsWith('.yaml') || f.endsWith('.yml')) - .sort() - .map(async (f) => { - const content = await readFile(join(dir, f), 'utf8') - return yamlParse(content) as unknown[] - }), - ) - return arrays.flat() -} - -/** - * Load path metadata from paths.yaml. - */ -async function loadPathMetadata(filepath: string): Promise { - const content = await readFile(filepath, 'utf8') - return yamlParse(content) as PathMetadata -} +import type Metalsmith from 'metalsmith' interface DiscriminatorConfig { resourceType: string @@ -137,39 +93,18 @@ function generateMissingSamples(existingSamples: any[]): any[] { } /** - * Create a Blueprint with code samples from @seamapi/types and YAML definitions. + * Metalsmith plugin: synthesize resource samples for discriminated resources + * (e.g. one `access_method` sample per `mode`) that the hand-written YAML + * definitions don't cover. Runs after `@metalsmith/metadata` and before the + * `blueprint()` plugin, which consumes `metadata.resourceSampleDefinitions`. */ -export async function loadBlueprint( - skipCodeFormat: boolean, -): Promise<{ blueprint: Blueprint; pathMetadata: PathMetadata }> { - const dataDir = join(import.meta.dirname, '..', 'codegen', 'data') - - const [codeSampleDefinitions, resourceSampleDefinitions, pathMetadata] = - await Promise.all([ - loadYamlArrayDir(join(dataDir, 'code-sample-definitions')), - loadYamlArrayDir(join(dataDir, 'resource-sample-definitions')), - loadPathMetadata(join(dataDir, 'paths.yaml')), - ]) - - const autoGenerated = generateMissingSamples( - resourceSampleDefinitions as any[], - ) - const allResourceSamples = [...resourceSampleDefinitions, ...autoGenerated] - - const typesModule = { - ...types, - codeSampleDefinitions, - resourceSampleDefinitions: allResourceSamples, +export const missingSamples: Metalsmith.Plugin = (_files, metalsmith) => { + const metadata = metalsmith.metadata() as { + resourceSampleDefinitions?: unknown[] } - - const blueprint = await createBlueprint( - typesModule as any, - skipCodeFormat ? {} : { formatCode }, - ) - - return { blueprint, pathMetadata } -} - -export function getRawOpenApiSpec(): any { - return JSON.parse(JSON.stringify(types.openapi)) + const existing = metadata.resourceSampleDefinitions ?? [] + metadata.resourceSampleDefinitions = [ + ...existing, + ...generateMissingSamples(existing as any[]), + ] } diff --git a/mintlify-codegen/lib/object-page-metadata.ts b/mintlify-codegen/lib/object-page-metadata.ts new file mode 100644 index 000000000..7af4cc68a --- /dev/null +++ b/mintlify-codegen/lib/object-page-metadata.ts @@ -0,0 +1,28 @@ +import { z } from 'zod' + +/** + * Schema for data/object-pages.yaml: per-route metadata for the API-reference + * object pages, keyed by API route path (e.g. `/access_codes`). Mirrors the + * codegen/lib/path-metadata.ts pattern. + * + * Routes without `handwritten` get a fully generated object page (frontmatter + * from `title`/`description`, body from the blueprint). Routes with + * `handwritten: true` are authored pages living in mintlify-codegen/source/; + * their entry only supplies the noun for generated events/errors page titles. + */ +export const ObjectPageMetadataSchema = z.record( + z.string().startsWith('/'), + z.union([ + z.object({ + title: z.string().trim().min(1), + description: z.string().trim().min(1), + handwritten: z.undefined().optional(), + }), + z.object({ + title: z.string().trim().min(1), + handwritten: z.literal(true), + }), + ]), +) + +export type ObjectPageMetadata = z.infer diff --git a/mintlify-codegen/lib/openapi.ts b/mintlify-codegen/lib/openapi.ts new file mode 100644 index 000000000..174ff3ff6 --- /dev/null +++ b/mintlify-codegen/lib/openapi.ts @@ -0,0 +1,64 @@ +/* eslint-disable no-console */ +import type { Blueprint } from '@seamapi/blueprint' +import * as types from '@seamapi/types/connect' +import type Metalsmith from 'metalsmith' + +import { + type PathMetadata, + transformSpec, + type TransformStats, +} from './transform-spec.js' + +/** Pipeline state shared between the mintlify plugins via Metalsmith metadata. */ +export interface MintlifyMetadata { + specPaths: Set + stats: TransformStats + eventPageRoutes: string[] + errorPageRoutes: string[] +} + +/** + * Metalsmith plugin: enrich the raw OpenAPI spec from `@seamapi/types` with + * blueprint code samples and Mintlify extensions (see transform-spec.ts) and + * emit it as `openapi.json`. Mintlify renders the endpoint pages natively from + * this spec — endpoint pages are deliberately not templated. + */ +export const openapi: Metalsmith.Plugin = (files, metalsmith) => { + const metadata = metalsmith.metadata() as { + blueprint: Blueprint + pathMetadata: PathMetadata + mintlify?: MintlifyMetadata + } + + console.log('Transforming OpenAPI spec...') + const rawSpec = JSON.parse(JSON.stringify(types.openapi)) + const { spec, stats } = transformSpec( + rawSpec, + metadata.blueprint, + metadata.pathMetadata, + ) + + const orderedSpec = { + openapi: spec.openapi, + info: spec.info, + servers: spec.servers, + components: spec.components, + ...(spec.tags ? { tags: spec.tags } : {}), + paths: spec.paths, + } + files['openapi.json'] = { + contents: Buffer.from(JSON.stringify(orderedSpec, null, 2)), + } as (typeof files)[string] + + const size = JSON.stringify(orderedSpec).length + console.log( + ` Wrote openapi.json: ${stats.totalEndpoints} endpoints (${(size / 1024).toFixed(0)}KB)`, + ) + + metadata.mintlify = { + specPaths: new Set(Object.keys(spec.paths)), + stats, + eventPageRoutes: [], + errorPageRoutes: [], + } +} diff --git a/mintlify-codegen/lib/postprocess.ts b/mintlify-codegen/lib/postprocess.ts new file mode 100644 index 000000000..059551ba6 --- /dev/null +++ b/mintlify-codegen/lib/postprocess.ts @@ -0,0 +1,54 @@ +/* eslint-disable no-console */ +import type Metalsmith from 'metalsmith' + +import { canonicalizeLinks } from './canonicalize-links.js' + +/** + * Metalsmith plugin: canonicalize docs links in the generated output + * (openapi.json plus every API `.mdx` page). Guards against two classes of + * upstream @seamapi/types regression: + * 1. legacy `/latest` reappearing in `docs.seam.co/latest/...` links + * (the site serves at the root; a `/latest/:path*` redirect handles old + * inbound URLs). See DOC-206 / DOC-199. + * 2. links that target a path which docs.json redirects elsewhere — these + * still resolve in the browser but cost an extra hop and dodge anchor + * validation. We rewrite them to their final canonical destination so + * generated content links directly. See DOC-210. + * This is self-healing: every `npm run generate` re-applies it, so source + * descriptions can lag without leaving stale links in the published docs. + * + * Runs after the docs-json plugin so the redirect map reflects the final + * docs.json, and after layouts so it sees the rendered pages. + */ +export const postprocess: Metalsmith.Plugin = (files) => { + console.log('Canonicalizing docs links in generated output...') + + const docsJsonFile = files['docs.json'] + if (docsJsonFile == null) throw new Error('docs.json was not ingested') + const docsJson = JSON.parse(docsJsonFile.contents.toString()) as { + redirects?: Array<{ source: string; destination: string }> + } + const redirects = new Map() + for (const r of docsJson.redirects ?? []) { + redirects.set(r.source, r.destination) + } + + const targets = Object.keys(files).filter( + (key) => + key === 'openapi.json' || + (key.startsWith('api/') && key.endsWith('.mdx')), + ) + + let count = 0 + for (const key of targets) { + const file = files[key] + if (file == null) continue + const content = file.contents.toString() + const replaced = canonicalizeLinks(content, redirects) + if (replaced !== content) { + file.contents = Buffer.from(replaced) + count++ + } + } + console.log(` Canonicalized links in ${count} generated file(s)`) +} diff --git a/mintlify-codegen/lib/reference.ts b/mintlify-codegen/lib/reference.ts new file mode 100644 index 000000000..24516842b --- /dev/null +++ b/mintlify-codegen/lib/reference.ts @@ -0,0 +1,323 @@ +/* eslint-disable no-console */ +import type { Blueprint } from '@seamapi/blueprint' +import type Metalsmith from 'metalsmith' + +import { + commonDeviceErrorsRoute, + deviceSubcategoryErrorRoutes, + eventObjectRoute, + inheritedErrorGroupAllowlist, +} from './config.js' +import { + type ErrorsPageOptions, + groupCodes, + isDiscriminatedListProperty, + type Property, + setErrorsPageLayoutContext, + variantGroupProp, +} from './layout/errors-page.js' +import { + groupEventsByRoutePath, + setEventsPageLayoutContext, +} from './layout/events-page.js' +import { setObjectPageLayoutContext } from './layout/object-page.js' +import { + type ObjectPageMetadata, + ObjectPageMetadataSchema, +} from './object-page-metadata.js' +import type { MintlifyMetadata } from './openapi.js' +import { resourceNoun } from './text.js' + +type Resource = Blueprint['resources'][number] + +const objectPageKey = (routePath: string): string => + `api${routePath}/object.mdx` +const eventsPageKey = (routePath: string): string => + `api${routePath}/events.mdx` +const errorsPageKey = (routePath: string): string => + `api${routePath}/errors.mdx` + +/** + * Metalsmith plugin: create the generated API-reference pages — one object page + * per resource route, one events page per event-emitting route, and one + * errors/warnings page per resource with documented codes — as virtual files + * with a layout and a layout context. Handlebars rendering happens in the + * later `@metalsmith/layouts` step. + * + * Also records which routes received events/errors pages in + * `metadata.mintlify` so the docs-json plugin can wire them into the sidebar. + */ +export const reference: Metalsmith.Plugin = (files, metalsmith) => { + const metadata = metalsmith.metadata() as { + blueprint: Blueprint + objectPages: unknown + mintlify: MintlifyMetadata + } + const { blueprint, mintlify } = metadata + const objectPages = ObjectPageMetadataSchema.parse(metadata.objectPages) + + const nounFor = (routePath: string): string => + resourceNoun(objectPages[routePath]?.title, routePath) + + updateObjectPages(files, blueprint, objectPages) + updateEventPages(files, blueprint, objectPages, nounFor, mintlify) + updateErrorPages(files, blueprint, objectPages, nounFor, mintlify) +} + +/** One object page per route whose resources carry samples, gated on a + * non-handwritten object-pages.yaml entry (handwritten pages are authored + * content in mintlify-codegen/source/). */ +function updateObjectPages( + files: Metalsmith.Files, + blueprint: Blueprint, + objectPages: ObjectPageMetadata, +): void { + console.log('Generating object pages...') + + const resourcesByRoute = new Map() + for (const resource of blueprint.resources) { + if (resource.resourceSamples.length === 0) continue + const existing = resourcesByRoute.get(resource.routePath) ?? [] + existing.push(resource) + resourcesByRoute.set(resource.routePath, existing) + } + + // The Event object page's `event_type` field lists every event type. + const eventTypes = [ + ...new Set( + (blueprint.events ?? []) + .filter((event) => !event.isUndocumented) + .map((event) => event.eventType), + ), + ] + + const generated: string[] = [] + for (const [routePath, resources] of resourcesByRoute) { + const meta = objectPages[routePath] + if (meta == null) { + console.log( + ` WARNING: no object-pages.yaml entry for ${routePath} — its ` + + `resources have samples but no object page is generated. Add an ` + + `entry to mintlify-codegen/data/object-pages.yaml.`, + ) + continue + } + if (meta.handwritten) continue + + files[objectPageKey(routePath)] = setObjectPageLayoutContext( + resources, + meta, + routePath === eventObjectRoute ? eventTypes : undefined, + ) as unknown as Metalsmith.Files[string] + generated.push(routePath) + } + + if (generated.length > 0) { + console.log( + ` Generated ${generated.length} object pages: ${generated.join(', ')}`, + ) + } +} + +/** One events page per route that emits documented events and has an object + * page (i.e. an object-pages.yaml entry). */ +function updateEventPages( + files: Metalsmith.Files, + blueprint: Blueprint, + objectPages: ObjectPageMetadata, + nounFor: (routePath: string) => string, + mintlify: MintlifyMetadata, +): void { + console.log('Updating event documentation...') + + const events = (blueprint.events ?? []).filter( + (event) => !event.isUndocumented, + ) + + for (const [routePath, routeEvents] of groupEventsByRoutePath(events)) { + if (objectPages[routePath] == null) { + // Some event route paths have no object page (e.g. + // /user_identities/enrollment_automations). Skip until a page exists. + console.log(` No object page for events on ${routePath}, skipping`) + continue + } + + files[eventsPageKey(routePath)] = setEventsPageLayoutContext( + routeEvents, + nounFor(routePath), + ) as unknown as Metalsmith.Files[string] + mintlify.eventPageRoutes.push(routePath) + } + + if (mintlify.eventPageRoutes.length > 0) { + console.log( + ` Generated events pages for ${mintlify.eventPageRoutes.length} ` + + `resources: ${mintlify.eventPageRoutes.join(', ')}`, + ) + } +} + +/** One errors/warnings page per resource with documented codes, plus the + * device sub-category pages sourced from the device resource's variant groups. */ +function updateErrorPages( + files: Metalsmith.Files, + blueprint: Blueprint, + objectPages: ObjectPageMetadata, + nounFor: (routePath: string) => string, + mintlify: MintlifyMetadata, +): void { + console.log('Updating error and warning documentation...') + + const routes = mintlify.errorPageRoutes + + // Every documented resource's errors page lives at `/api//errors`, + // so an inherited-error group can link back to the parent it came from. + const errorsHrefByResourceType: Record = {} + for (const resource of blueprint.resources) { + if (resource.isUndocumented) continue + errorsHrefByResourceType[resource.resourceType] = + `/api${resource.routePath}/errors` + } + + const writeErrorPage = ( + routePath: string, + errorsProp: Property | undefined, + warningsProp: Property | undefined, + options: ErrorsPageOptions = {}, + ): void => { + // Defensive against a variant-group key ever coinciding with a real resource + // route: the resource loop writes first, so skip a route already emitted + // rather than clobbering it from the sub-category loop. + if (routes.includes(routePath)) { + console.log(` Errors page for ${routePath} already written, skipping`) + return + } + + const context = setErrorsPageLayoutContext( + nounFor(routePath), + errorsProp, + warningsProp, + options, + ) + if (context == null) return + + if (objectPages[routePath] == null) { + console.log(` No object page for errors on ${routePath}, skipping`) + return + } + + files[errorsPageKey(routePath)] = + context as unknown as Metalsmith.Files[string] + routes.push(routePath) + } + + for (const resource of blueprint.resources) { + if (resource.isUndocumented) continue + writeErrorPage( + resource.routePath, + resource.properties.find((p) => p.name === 'errors') as + | Property + | undefined, + resource.properties.find((p) => p.name === 'warnings') as + | Property + | undefined, + { + inheritanceResourceType: resource.resourceType, + inheritedGroupAllowlist: + inheritedErrorGroupAllowlist[resource.resourceType], + errorsHrefByResourceType, + }, + ) + } + + // Pages for device sub-categories (locks, thermostats, …) that have their own + // docs route but no resource of their own: source each from the matching + // variant group on the device resource. + const device = blueprint.resources.find((r) => r.resourceType === 'device') + if (device != null) { + const errorsProp = device.properties.find((p) => p.name === 'errors') as + | Property + | undefined + const warningsProp = device.properties.find( + (p) => p.name === 'warnings', + ) as Property | undefined + for (const [ + groupKey, + { routePath, linkCommonDeviceErrors }, + ] of Object.entries(deviceSubcategoryErrorRoutes)) { + writeErrorPage( + routePath, + variantGroupProp(errorsProp, groupKey), + variantGroupProp(warningsProp, groupKey), + linkCommonDeviceErrors ? { commonDeviceErrorsRoute } : {}, + ) + } + + // Flag any device sub-category that has its own object+events pages and + // error codes but was never added to the allowlist above. + const documentedResourceRoutes = new Set( + blueprint.resources + .filter((r) => !r.isUndocumented) + .map((r) => r.routePath), + ) + warnUnmappedDeviceSubcategoryGroups( + files, + errorsProp, + warningsProp, + documentedResourceRoutes, + ) + } + + if (routes.length > 0) { + console.log( + ` Generated errors pages for ${routes.length} resources: ${routes.join(', ')}`, + ) + } +} + +/** + * Warn when a device errors/warnings variant group looks like it should have its + * own sub-category errors page but is missing from deviceSubcategoryErrorRoutes. + * + * That allowlist is maintained by hand, so a newly added device sub-category + * (its own object + events pages plus an error/warning variant group) would + * silently produce no errors page until someone edits the map. This surfaces + * that inconsistency at generate time. + * + * A group is flagged only when it (a) has documented codes, (b) has both an + * object page and an events page in the build — the shape a real sub-category + * route has — and (c) is neither already mapped nor itself a documented + * blueprint resource. + */ +function warnUnmappedDeviceSubcategoryGroups( + files: Metalsmith.Files, + errorsProp: Property | undefined, + warningsProp: Property | undefined, + documentedResourceRoutes: Set, +): void { + const groupKeys = new Set() + for (const prop of [errorsProp, warningsProp]) { + if (!isDiscriminatedListProperty(prop)) continue + for (const group of prop.variantGroups) groupKeys.add(group.variantGroupKey) + } + + for (const groupKey of groupKeys) { + if (groupKey in deviceSubcategoryErrorRoutes) continue + if (documentedResourceRoutes.has(`/${groupKey}`)) continue + + const hasCodes = + groupCodes(variantGroupProp(errorsProp, groupKey)).length > 0 || + groupCodes(variantGroupProp(warningsProp, groupKey)).length > 0 + if (!hasCodes) continue + + const hasObject = files[objectPageKey(`/${groupKey}`)] != null + const hasEvents = files[eventsPageKey(`/${groupKey}`)] != null + if (!hasObject || !hasEvents) continue + + console.log( + ` WARNING: device errors/warnings variant group "${groupKey}" has codes ` + + `and an object+events page (/api/${groupKey}) but no dedicated errors ` + + `page. Add it to deviceSubcategoryErrorRoutes in mintlify-codegen/lib/config.ts.`, + ) + } +} diff --git a/mintlify-codegen/lib/report.ts b/mintlify-codegen/lib/report.ts new file mode 100644 index 000000000..1041711ea --- /dev/null +++ b/mintlify-codegen/lib/report.ts @@ -0,0 +1,24 @@ +/* eslint-disable no-console */ +import type Metalsmith from 'metalsmith' + +import type { MintlifyMetadata } from './openapi.js' + +/** Metalsmith plugin: print the end-of-run stats (ported from generate.ts). */ +export const report: Metalsmith.Plugin = (_files, metalsmith) => { + const { stats } = (metalsmith.metadata() as { mintlify: MintlifyMetadata }) + .mintlify + + console.log(`\nDone!`) + console.log(` Removed undocumented paths: ${stats.removedPaths}`) + console.log(` Total documented endpoints: ${stats.totalEndpoints}`) + console.log(` With code samples: ${stats.withCodeSamples}`) + console.log(` With scoped action_attempts: ${stats.withActionAttempts}`) + console.log( + ` Without code samples: ${stats.withoutCodeSamples.length} endpoints`, + ) + if (stats.withoutCodeSamples.length > 0) { + console.log( + ` Missing samples: ${stats.withoutCodeSamples.slice(0, 10).join(', ')}${stats.withoutCodeSamples.length > 10 ? `... and ${stats.withoutCodeSamples.length - 10} more` : ''}`, + ) + } +} diff --git a/mintlify-codegen/lib/sample-value.ts b/mintlify-codegen/lib/sample-value.ts new file mode 100644 index 000000000..c1d82d7c2 --- /dev/null +++ b/mintlify-codegen/lib/sample-value.ts @@ -0,0 +1,95 @@ +import { hasEnumValues } from './format-type.js' + +interface Sampleable { + format: string + values?: Array<{ name: string }> +} + +/** + * Build an illustrative sample value for a property from its format. Values are + * fixed (never random) so generated payloads are stable across runs. Used by + * the errors pages; the events pages use `sampleValueDeep` below. + */ +export function sampleValue(prop: Sampleable): unknown { + if (hasEnumValues(prop) && prop.values.length > 0) { + return prop.values[0]?.name ?? '' + } + switch (prop.format) { + case 'id': + return '00000000-0000-0000-0000-000000000000' + case 'datetime': + return '2025-01-01T00:00:00.000Z' + case 'boolean': + return true + case 'number': + return 0 + case 'list': + return [] + case 'object': + case 'record': + return {} + case 'string': + return '' + default: + return null + } +} + +// Illustrative values for well-known fields that the type system types as +// plain strings, so their `from`/`to` payloads read realistically instead of +// showing `""`. `*_at` string fields are handled as datetimes below. +const sampleStringValues: Record = { + code: '1234', + name: 'My Access Code', +} + +interface DeepSampleable extends Sampleable { + name: string + isUndocumented?: boolean + properties?: DeepSampleable[] +} + +function hasNestedProperties( + prop: DeepSampleable, +): prop is DeepSampleable & { properties: DeepSampleable[] } { + return Array.isArray(prop.properties) && prop.properties.length > 0 +} + +/** + * Event-page variant of `sampleValue`: recurses into a `*_changed` event's + * typed `from`/`to` payloads (free-form records have no `properties` and stay + * `{}`), renders `*_at` string fields as datetimes, and substitutes realistic + * values for well-known string fields. + */ +export function sampleValueDeep(prop: DeepSampleable): unknown { + if (hasEnumValues(prop) && prop.values.length > 0) { + return prop.values[0]?.name ?? '' + } + switch (prop.format) { + case 'id': + return '00000000-0000-0000-0000-000000000000' + case 'datetime': + return '2025-01-01T00:00:00.000Z' + case 'boolean': + return true + case 'number': + return 0 + case 'list': + return [] + case 'object': + case 'record': { + if (!hasNestedProperties(prop)) return {} + const nested: Record = {} + for (const child of prop.properties) { + if (child.isUndocumented) continue + nested[child.name] = sampleValueDeep(child) + } + return nested + } + case 'string': + if (/_at$/.test(prop.name)) return '2025-01-01T00:00:00.000Z' + return sampleStringValues[prop.name] ?? '' + default: + return null + } +} diff --git a/mintlify-codegen/lib/text.ts b/mintlify-codegen/lib/text.ts new file mode 100644 index 000000000..491998e56 --- /dev/null +++ b/mintlify-codegen/lib/text.ts @@ -0,0 +1,41 @@ +/** Indent every non-blank line of `text` by `spaces` spaces. */ +export function indent(text: string, spaces: number): string { + const pad = ' '.repeat(spaces) + return text + .split('\n') + .map((line) => (line.trim() ? pad + line : line)) + .join('\n') +} + +/** Escape single quotes for a single-quoted frontmatter value. */ +export function escapeSingleQuotes(value: string): string { + return value.replace(/'/g, "\\'") +} + +/** + * The display noun for a resource route, from its object page title + * (`The Device Object` -> `Device`), falling back to a humanized route path + * (`/noise_sensors/noise_thresholds` -> `Noise Sensors Noise Thresholds`). + * Feeds the generated events/errors page titles. + */ +export function resourceNoun( + objectTitle: string | undefined, + routePath: string, +): string { + const noun = objectTitle + ?.replace(/^The\s+/, '') + .replace(/\s+Object$/, '') + .trim() + if (noun) return noun + + return routePath + .slice(1) + .split('/') + .map((seg) => + seg + .split('_') + .map((w) => w.charAt(0).toUpperCase() + w.slice(1)) + .join(' '), + ) + .join(' ') +} diff --git a/mintlify-codegen/transform-spec.ts b/mintlify-codegen/lib/transform-spec.ts similarity index 98% rename from mintlify-codegen/transform-spec.ts rename to mintlify-codegen/lib/transform-spec.ts index 4233be0d1..d4edb89b1 100644 --- a/mintlify-codegen/transform-spec.ts +++ b/mintlify-codegen/lib/transform-spec.ts @@ -1,7 +1,15 @@ import type { Blueprint, Endpoint, SdkName } from '@seamapi/blueprint' -import { supportedSdkOrder } from '../codegen/lib/code-sample-tab-order.js' -import type { PathMetadata } from './load-data.js' +import { supportedSdkOrder } from '../../codegen/lib/code-sample-tab-order.js' + +export interface PathMetadataEntry { + title: string + description?: string + overview?: string + alpha?: string +} + +export type PathMetadata = Record /** * SDKs to include in the Mintlify API reference. diff --git a/mintlify-codegen/property-fields.ts b/mintlify-codegen/property-fields.ts deleted file mode 100644 index a1705503b..000000000 --- a/mintlify-codegen/property-fields.ts +++ /dev/null @@ -1,91 +0,0 @@ -/** - * Shared helpers for rendering blueprint properties on generated API-reference - * pages (events.ts, errors.ts). Kept format- and value-consistent across pages - * so event, error, and warning properties read identically. - */ - -interface Formattable { - format: string - jsonType?: string -} - -interface Sampleable { - format: string - values?: Array<{ name: string }> -} - -/** - * Map a blueprint property format to the type label used across the API object - * pages (e.g. `id` -> `String (UUID)`, `enum` -> `Enum (String)`). Mirrors - * `formatPropertyType` in generate.ts. - */ -export function formatType(prop: Formattable): string { - switch (prop.format) { - case 'id': - return 'String (UUID)' - case 'datetime': - return 'String (ISO 8601)' - case 'enum': - return 'Enum (String)' - case 'list': - return 'Array' - case 'boolean': - return 'Boolean' - case 'string': - return 'String' - case 'object': - case 'record': - return 'Object' - default: - return prop.jsonType ?? 'String' - } -} - -/** Narrow a property to one that carries enum `values`. Generic so it preserves - * the caller's property type. */ -export function hasEnumValues( - prop: T, -): prop is T & { values: Array<{ name: string }> } { - return ( - 'values' in prop && Array.isArray((prop as { values?: unknown }).values) - ) -} - -/** - * Build an illustrative sample value for a property from its format. Values are - * fixed (never random) so generated payloads are stable across runs; this - * mirrors the value conventions in load-data.ts. - */ -export function sampleValue(prop: Sampleable): unknown { - if (hasEnumValues(prop) && prop.values.length > 0) { - return prop.values[0]?.name ?? '' - } - switch (prop.format) { - case 'id': - return '00000000-0000-0000-0000-000000000000' - case 'datetime': - return '2025-01-01T00:00:00.000Z' - case 'boolean': - return true - case 'number': - return 0 - case 'list': - return [] - case 'object': - case 'record': - return {} - case 'string': - return '' - default: - return null - } -} - -/** Indent every non-blank line of `text` by `spaces` spaces. */ -export function indent(text: string, spaces: number): string { - const pad = ' '.repeat(spaces) - return text - .split('\n') - .map((line) => (line.trim() ? pad + line : line)) - .join('\n') -} diff --git a/mintlify-codegen/smith.ts b/mintlify-codegen/smith.ts new file mode 100644 index 000000000..0967f62b4 --- /dev/null +++ b/mintlify-codegen/smith.ts @@ -0,0 +1,84 @@ +/* eslint-disable no-console */ +import { dirname } from 'node:path' +import { env } from 'node:process' +import { fileURLToPath } from 'node:url' + +import layouts from '@metalsmith/layouts' +import metadata from '@metalsmith/metadata' +import { blueprint, getHandlebarsPartials } from '@seamapi/smith' +import * as types from '@seamapi/types/connect' +import { deleteAsync } from 'del' +import Metalsmith from 'metalsmith' + +import { formatCode } from '../codegen/lib/format-code.js' +import { + docsJson, + helpers, + ingest, + missingSamples, + openapi, + postprocess, + reference, + report, +} from './lib/index.js' + +// The Metalsmith build is rooted at the repo root (not mintlify-codegen/): +// @metalsmith/metadata resolves entries with micromatch, which cannot match +// `../` segments, and the pipeline shares codegen/data with the GitBook +// pipeline. +const rootDir = dirname(dirname(fileURLToPath(import.meta.url))) + +console.log('Mintlify OpenAPI codegen starting...') +if (env['SKIP_CODE_FORMAT'] != null) { + console.log(' SKIP_CODE_FORMAT is set — skipping code formatting') +} + +// The api/ tree is wholly pipeline-owned: generated object/events/errors pages +// plus the static pages in ./source. Pre-clean it (like codegen/smith.ts does +// for docs/api-reference) so pages for removed resources don't linger. +await deleteAsync([`${rootDir}/mintlify-docs/api/**`]) + +const partials = await getHandlebarsPartials( + `${rootDir}/mintlify-codegen/layouts/partials`, +) + +Metalsmith(rootDir) + .source('./mintlify-codegen/source') + .destination('./mintlify-docs') + .clean(false) + .frontmatter(false) + .use( + metadata({ + codeSampleDefinitions: './codegen/data/code-sample-definitions', + resourceSampleDefinitions: './codegen/data/resource-sample-definitions', + pathMetadata: './codegen/data/paths.yaml', + objectPages: './mintlify-codegen/data/object-pages.yaml', + }), + ) + .use(missingSamples) + .use( + blueprint({ + types, + formatCode, + skipCodeFormat: env['SKIP_CODE_FORMAT'] != null, + }), + ) + .use(ingest) + .use(openapi) + .use(reference) + .use(docsJson) + .use( + layouts({ + directory: 'mintlify-codegen/layouts', + engineOptions: { + noEscape: true, + helpers, + partials, + }, + }), + ) + .use(postprocess) + .use(report) + .build((err) => { + if (err != null) throw err + }) diff --git a/mintlify-codegen/source/api/access_codes/simulate/object.mdx b/mintlify-codegen/source/api/access_codes/simulate/object.mdx new file mode 100644 index 000000000..76cca742e --- /dev/null +++ b/mintlify-codegen/source/api/access_codes/simulate/object.mdx @@ -0,0 +1,10 @@ +--- +title: 'Access Code Simulations' +description: 'Use the access code simulation endpoints to create unmanaged access codes in a sandbox workspace and test your access code migration flows safely.' +--- + +## Endpoints + +[**`/access_codes/simulate/create_unmanaged_access_code`**](./create_unmanaged_access_code) + +Simulates the creation of an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-codegen/source/api/access_grants/unmanaged/object.mdx b/mintlify-codegen/source/api/access_grants/unmanaged/object.mdx new file mode 100644 index 000000000..910ad2e66 --- /dev/null +++ b/mintlify-codegen/source/api/access_grants/unmanaged/object.mdx @@ -0,0 +1,18 @@ +--- +title: 'Unmanaged' +description: 'Use the unmanaged Access Grant endpoints to get, list, and update Access Grants that Seam tracks but does not manage (where is_managed is false).' +--- + +## Endpoints + +[**`/access_grants/unmanaged/get`**](./get) + +Get an unmanaged Access Grant (where is_managed = false). + +[**`/access_grants/unmanaged/list`**](./list) + +Gets unmanaged Access Grants (where is_managed = false). + +[**`/access_grants/unmanaged/update`**](./update) + +Updates an unmanaged Access Grant to make it managed. diff --git a/mintlify-codegen/source/api/access_methods/unmanaged/object.mdx b/mintlify-codegen/source/api/access_methods/unmanaged/object.mdx new file mode 100644 index 000000000..03a57c2d7 --- /dev/null +++ b/mintlify-codegen/source/api/access_methods/unmanaged/object.mdx @@ -0,0 +1,14 @@ +--- +title: 'Unmanaged' +description: 'Use the unmanaged access method endpoints to get and list access methods that Seam tracks but does not manage, usually filtered by Access Grant.' +--- + +## Endpoints + +[**`/access_methods/unmanaged/get`**](./get) + +Gets an unmanaged access method (where is_managed = false). + +[**`/access_methods/unmanaged/list`**](./list) + +Lists all unmanaged access methods (where is_managed = false), usually filtered by Access Grant. diff --git a/mintlify-codegen/source/api/acs/encoders/simulate/object.mdx b/mintlify-codegen/source/api/acs/encoders/simulate/object.mdx new file mode 100644 index 000000000..24f7bb24e --- /dev/null +++ b/mintlify-codegen/source/api/acs/encoders/simulate/object.mdx @@ -0,0 +1,22 @@ +--- +title: 'Encoder Simulations' +description: 'Use the encoder simulation endpoints to make the next credential encode or scan succeed or fail, so you can test card encoder flows in a sandbox.' +--- + +## Endpoints + +[**`/acs/encoders/simulate/next_credential_encode_will_fail`**](./next_credential_encode_will_fail) + +Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). + +[**`/acs/encoders/simulate/next_credential_encode_will_succeed`**](./next_credential_encode_will_succeed) + +Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). + +[**`/acs/encoders/simulate/next_credential_scan_will_fail`**](./next_credential_scan_will_fail) + +Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). + +[**`/acs/encoders/simulate/next_credential_scan_will_succeed`**](./next_credential_scan_will_succeed) + +Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-codegen/source/api/acs/object.mdx b/mintlify-codegen/source/api/acs/object.mdx new file mode 100644 index 000000000..a4185d6da --- /dev/null +++ b/mintlify-codegen/source/api/acs/object.mdx @@ -0,0 +1,90 @@ +--- +title: 'Access Control Systems' +description: 'Systems for managing and monitoring access to physical spaces' +--- + +Access control systems centralize access authorization for buildings, which means that you can use a single system to grant users access to one or more entrances. An access control system manages the following elements: + +- Who has access +- The entrances to which users have access +- The access schedule for each user and entrance +- The access mechanism—PIN codes, mobile keys, or plastic cards—for each access grant + +To grant access using the Seam access control system API, use the following basic process: + +1. Create `acs_user`s. +2. Configure access for these users. + For some access control systems, configure the allowed entrances and access schedule. For other systems, use `acs_access_group`s. For details, see the [system integration guide](/device-and-system-integration-guides#access-control-systems) for your access control system. +3. Create `acs_credential`s, which are the digital means of granting access to users, such as PIN codes, mobile keys, and plastic (RFID) cards. + If you are developing a mobile app to provide access for your users, you can also use [Seam's iOS and Android SDKs](/capability-guides/mobile-access/mobile-device-sdks) that pair with the Seam API to create and manage mobile keys. + +## Resources + +The Access Control Systems (ACS) namespace contains the following resources: + +### [`acs_access_group`](#acs_access_group) + +Group that defines the entrances to which a set of users has access and, in some cases, the access schedule for these entrances and users. + +Some access control systems use [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. + +To learn whether your access control system supports access groups, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). + +--- + +### [`acs_credential`](#acs_credential) + +Means by which an [access control system user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems). + +An access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs. + +For each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type. + +--- + +### [`acs_encoder`](#acs_encoder) + +Represents a hardware device that encodes [credential](/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](/low-level-apis/access-systems). + +Some access control systems require credentials to be encoded onto plastic key cards using a card encoder. This process involves the following two key steps: + +1. Credential creation + Configure the access parameters for the credential. +2. Card encoding + Write the credential data onto the card using a compatible card encoder. + +Separately, the Seam API also supports card scanning, which enables you to scan and read the encoded data on a card. You can use this action to confirm consistency with access control system records or diagnose discrepancies if needed. + +See [Working with Card Encoders and Scanners](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + +To verify if your access control system requires a card encoder, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). + +--- + +### [`acs_entrance`](#acs_entrance) + +Represents an [entrance](/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](/low-level-apis/access-systems). + +In an access control system, an entrance is a secured door, gate, zone, or other method of entry. You can list details for all the `acs_entrance` resources in your workspace or get these details for a specific `acs_entrance`. You can also list all entrances associated with a specific credential, and you can list all credentials associated with a specific entrance. + +--- + +### [`acs_system`](#acs_system) + +Represents an [access control system](/low-level-apis/access-systems). + +Within an `acs_system`, create [`acs_user`s](/api/acs/users/object) and [`acs_credential`s](/api/acs/credentials/object) to grant access to the `acs_user`s. + +For details about the resources associated with an access control system, see the [access control systems namespace](/api/acs/object). + +--- + +### [`acs_user`](#acs_user) + +Represents a [user](/low-level-apis/access-systems/user-management) in an [access system](/low-level-apis/access-systems). + +An access system user typically refers to an individual who requires access, like an employee or resident. Each user can possess multiple credentials that serve as their keys or identifiers for access. The type of credential can vary widely. For example, in the Salto system, a user can have a PIN code, a mobile app account, and a fob. In other platforms, it is not uncommon for a user to have more than one of the same credential type, such as multiple key cards. Additionally, these credentials can have a schedule or validity period. + +For details about how to configure users in your access system, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). + +--- diff --git a/mintlify-codegen/source/api/action_attempts/object.mdx b/mintlify-codegen/source/api/action_attempts/object.mdx new file mode 100644 index 000000000..d2bf35a6c --- /dev/null +++ b/mintlify-codegen/source/api/action_attempts/object.mdx @@ -0,0 +1,90 @@ +--- +title: 'The Action Attempt Object' +description: 'Learn how the action_attempt object tracks an attempt to perform an action against a device, letting you monitor its status and final result.' +--- + +## The action_attempt Object + + +Represents an attempt to perform an action against a device. + + + +```json Action Attempt +{ + "action_attempt_id": "3f2b1c8d-1b5e-4f8c-9c7d-9a8b7c6d5e4f", + "action_type": "LOCK_DOOR", + "error": null, + "result": {}, + "status": "success" +} +``` + + + +--- + +## Properties + +**`action_attempt_id`** _UUID_ + +ID of the action attempt. + +--- + +**`status`** _Enum_ + +Status of the action attempt. + + + +- pending +- success +- error + + +--- + +**`action_type`** _Enum_ + +Type of the action attempt. + + + +- LOCK_DOOR +- UNLOCK_DOOR +- SCAN_CREDENTIAL +- ENCODE_CREDENTIAL +- RESET_SANDBOX_WORKSPACE +- SET_FAN_MODE +- SET_HVAC_MODE +- ACTIVATE_CLIMATE_PRESET +- SIMULATE_KEYPAD_CODE_ENTRY +- SIMULATE_MANUAL_LOCK_VIA_KEYPAD +- PUSH_THERMOSTAT_PROGRAMS +- CONFIGURE_AUTO_LOCK + + +--- + +**`error`** _Object_ + +Error associated with the action attempt. Null for pending and successful action attempts. + +--- + +**`result`** _Object_ + +Result of the action attempt. Null for pending and errored action attempts. + +--- + +## Endpoints + +[**`/action_attempts/get`**](./get) + +Returns a specified [action attempt](/core-concepts/action-attempts). + +[**`/action_attempts/list`**](./list) + +Returns a list of the [action attempts](/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s. diff --git a/mintlify-codegen/source/api/authentication.mdx b/mintlify-codegen/source/api/authentication.mdx new file mode 100644 index 000000000..4caca5261 --- /dev/null +++ b/mintlify-codegen/source/api/authentication.mdx @@ -0,0 +1,188 @@ +--- +title: 'Authentication' +description: 'Learn how to authenticate with the Seam API by exporting your API key as an environment variable that the Seam client libraries pick up automatically.' +--- + +Export your API key as an environment variable. Seam client libraries automatically pick up this exported key. For example: + +``` +$ export SEAM_API_KEY=seam_test2bMS_94SrGUXuNR2JmJkjtvBQDg5c +``` + +Next, run the following code to confirm that you are correctly authenticated: + + + + +**Code:** + +```javascript +import { Seam } from 'seam' + +const seam = new Seam() // Seam automatically uses your exported SEAM_API_KEY. + +const checkAuth = async () => { + const workspace = await seam.workspaces.get() + console.log(workspace) +} + +checkAuth() +``` + +**Output:** + +```json +{ + workspace_id: '00000000-0000-0000-0000-000000000000', + name: 'Sandbox', + company_name: 'Acme', + connect_partner_name: 'Acme', + is_sandbox": true +} +``` + + + + + +**Code:** + +```bash +curl -X 'POST' \ + 'https://connect.getseam.com/workspaces/get' \ + -H 'accept: application/json' \ + -H "Authorization: Bearer ${SEAM_API_KEY}" \ + -H 'Content-Type: application/json' \ + -d '{}' +``` + +**Output:** + +```json +{ + "workspace": { + "workspace_id": "00000000-0000-0000-0000-000000000000", + "name": "Sandbox", + "company_name": "Acme", + "connect_partner_name": "Acme", + "is_sandbox": true + }, + "ok": true +} +``` + + + + + +**Code:** + +```python +from seam import Seam + +seam = Seam() # Seam automatically uses your exported SEAM_API_KEY. + +workspace = seam.workspaces.get() +pprint(workspace) +``` + +**Output:** + +``` +Workspace( + workspace_id='00000000-0000-0000-0000-000000000000', + name='Sandbox', + company_name='Acme', + connect_partner_name='Acme', + is_sandbox=True +) +``` + + + + + +**Code:** + +```ruby +require "seam" + +seam = Seam.new() # Seam automatically uses your exported SEAM_API_KEY. + +workspace = seam.workspaces.get() + +puts workspace.inspect +``` + +**Output:** + +``` +< + Seam::Workspace:0x0070328 + workspace_id="00000000-0000-0000-0000-000000000000" + name="Sandbox" + company_name="Acme" + connect_partner_name="Acme" + is_sandbox=true +> +``` + + + + + +**Code:** + +```php +workspaces->get(); + +echo json_encode($workspace, JSON_PRETTY_PRINT); +``` + +**Output:** + +```json +{ + "workspace_id": "00000000-0000-0000-0000-000000000000", + "name": "Sandbox", + "company_name": "Acme", + "connect_partner_name": "Acme", + "is_sandbox": true +} +``` + + + + + +**Code:** + +```csharp +using Seam.Client; + +var seam = new SeamClient(apiToken: SEAM_API_KEY); + +var workspace = seam.Workspaces.Get(); + +Console.WriteLine(workspace); +``` + +**Output:** + +```json +{ + "workspace_id": "00000000-0000-0000-0000-000000000000", + "name": "Sandbox", + "company_name": "Acme", + "connect_partner_name": "Acme", + "is_sandbox": true +} +``` + + + diff --git a/mintlify-codegen/source/api/connected_accounts/simulate/object.mdx b/mintlify-codegen/source/api/connected_accounts/simulate/object.mdx new file mode 100644 index 000000000..3533e7347 --- /dev/null +++ b/mintlify-codegen/source/api/connected_accounts/simulate/object.mdx @@ -0,0 +1,10 @@ +--- +title: 'Simulate' +description: 'Use the connected account simulation endpoint to disconnect an account from Seam in a sandbox workspace and test how your app handles disconnections.' +--- + +## Endpoints + +[**`/connected_accounts/simulate/disconnect`**](./disconnect) + +Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-codegen/source/api/devices/simulate/object.mdx b/mintlify-codegen/source/api/devices/simulate/object.mdx new file mode 100644 index 000000000..14b248969 --- /dev/null +++ b/mintlify-codegen/source/api/devices/simulate/object.mdx @@ -0,0 +1,41 @@ +--- +title: 'Device Simulations' +description: 'Use the device simulation endpoints to connect, disconnect, and remove sandbox devices so you can test how your app handles device state changes.' +--- + +## Endpoints + +[**`/devices/simulate/connect`**](./connect) + +Simulates connecting a device to Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). + +[**`/devices/simulate/connect_to_hub`**](./connect_to_hub) + +Simulates bringing the Wi‑Fi hub (bridge) back online for a device. +Only applicable for sandbox workspaces and currently +implemented for August and TTLock locks. +This will clear the corresponding `hub_disconnected` or +`ttlock_lock_not_paired_to_gateway` error on the device. + +[**`/devices/simulate/disconnect`**](./disconnect) + +Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). + +[**`/devices/simulate/disconnect_from_hub`**](./disconnect_from_hub) + +Simulates taking the Wi‑Fi hub (bridge) offline for a device. +Only applicable for sandbox workspaces and currently +implemented for August, TTLock, and IglooHome devices. +This will set the corresponding `hub_disconnected` or +`ttlock_lock_not_paired_to_gateway` error on the device, or mark the +IglooHome bridge offline in sandbox. + +[**`/devices/simulate/paid_subscription`**](./paid_subscription) + +Toggle the simulated Nuki Smart Hosting subscription for a device (sandbox only). +Send `is_expired: true` to simulate an expired subscription, or `false` to simulate an active subscription. +The actual device error is created/cleared by the poller after this state change. + +[**`/devices/simulate/remove`**](./remove) + +Simulates removing a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). diff --git a/mintlify-codegen/source/api/index.mdx b/mintlify-codegen/source/api/index.mdx new file mode 100644 index 000000000..aa7570fd1 --- /dev/null +++ b/mintlify-codegen/source/api/index.mdx @@ -0,0 +1,143 @@ +--- +title: "Introduction" +description: "The Seam API lets you control smart locks, thermostats, access control systems, and more through a unified REST interface." +--- + +The Seam API is organized around REST. It accepts JSON request bodies, returns JSON responses, and uses standard HTTP response codes and verbs. + +You can use the Seam API in a [sandbox workspace](/core-concepts/workspaces) without affecting live devices. The API key you use determines whether the request runs in sandbox or production mode. + +**Just getting started?** Check out the [quickstart guide](/quickstart). + +``` +Base URL: https://connect.getseam.com +``` + + + + JavaScript, Python, Ruby, PHP, C#, or Go. + + + API keys, client sessions, or personal access tokens. + + + Connect Seam to AI assistants via MCP. + + + +--- + +## Granting Access + +Use [Access Grants](/api/access_grants/object) to give people access to physical spaces. Tell Seam _who_ should have access, _where_, and _when_ — Seam automatically creates the right credential and programs it to the device. + + + The primary API for granting access — create, update, revoke, and manage the full lifecycle. + + +Access Grants support all access methods through a single API: + + + + Generate keypad codes for smart locks. Ongoing or time-bound. + + + Encode plastic cards for access control systems. + + + Issue mobile credentials via app or Instant Key URL. + + + Unlock doors remotely via API call. + + + +--- + +## Devices and Systems + +Connect and control IoT devices and access control systems. + + + + List, get, and update connected devices. + + + Lock and unlock smart locks. + + + Set temperature, HVAC mode, and climate presets. + + + Monitor noise levels and configure thresholds. + + + Manage access control system users, credentials, entrances, and encoders. + + + +--- + +## Setup + +Connect device accounts and configure your workspace. + + + + Authorization flows to link user device accounts. + + + Manage linked manufacturer accounts. + + + Map your users to Seam for cross-system identity. + + + Sandbox and production workspaces. + + + Scoped sessions for frontend apps. + + + Customer portals and data. + + + Organize devices and entrances into named groups. + + + +--- + +## Monitoring + +Track events, subscribe to webhooks, and poll for action completion. + + + + Query device and system events. + + + Real-time event notifications. + + + Poll async operations until completion. + + + +--- + +## Low-Level APIs + +These APIs let you program credentials directly on devices. For most access-granting workflows, use [Access Grants](/api/access_grants/object) instead — they handle credential creation, device programming, and lifecycle management automatically. + + + + Directly program PIN codes on smart lock keypads. + + + Temporary mobile keys without an app install. + + + Manage phones for mobile access credentials. + + diff --git a/mintlify-codegen/source/api/installation.mdx b/mintlify-codegen/source/api/installation.mdx new file mode 100644 index 000000000..0336294ca --- /dev/null +++ b/mintlify-codegen/source/api/installation.mdx @@ -0,0 +1,60 @@ +--- +title: 'SDK Installation' +description: 'Install a Seam SDK in your preferred language—JavaScript, Python, Ruby, PHP, or C#—to start building integrations with the Seam API in minutes.' +--- + + + **Building this integration with Claude?** Install the [Seam Docs MCP + server](/api/mcp-installation) first. It connects Claude directly to Seam's API + reference, integration guides, and 400+ device models so Claude can guide you + through implementation step by step — no copy-pasting from the docs. + + +Install one of the Seam SDKs in the programming language of your choice. Seam supports many programming languages, such as the following: + +- JavaScript / TypeScript ([npm](https://www.npmjs.com/package/seam), [GitHub](https://github.com/seamapi/javascript)) +- Python ([pip](https://pypi.org/project/seam/), [GitHub](https://github.com/seamapi/python)) +- Ruby Gem ([rubygem](https://rubygems.org/gems/seam), [GitHub](https://github.com/seamapi/ruby)) +- PHP ([packagist](https://packagist.org/packages/seamapi/seam), [GitHub](https://github.com/seamapi/php)) +- C# ([nuget](https://www.nuget.org/packages/Seam), [GitHub](https://github.com/seamapi/csharp)) + + + + +```bash +npm i seam +``` + + + + + +```bash +pip install seam +# For some development environments, use pip3 in this command instead of pip. +``` + + + + + +```bash +bundle add seam +``` + + + + + +```bash +composer require seamapi/seam +``` + + + + + Install using [nuget](https://www.nuget.org/packages/Seam). + + + + diff --git a/mintlify-codegen/source/api/locks/object.mdx b/mintlify-codegen/source/api/locks/object.mdx new file mode 100644 index 000000000..24cf10f38 --- /dev/null +++ b/mintlify-codegen/source/api/locks/object.mdx @@ -0,0 +1,2865 @@ +--- +title: 'The Lock Object' +description: 'Learn how the device object represents a smart lock connected to Seam, including its lock-specific properties, capabilities, errors, and events.' +--- + +## The device Object for Locks + + +Represents a [lock](/low-level-apis/smart-locks). + +The Seam API enables you to control connected smart locks from a wide variety of manufacturers, including locks that provide online and offline [access code](/low-level-apis/smart-locks/access-codes) programming. + +Depending on the smart lock brand and model, actions that you can perform include remote unlock, remote lock, and programming access codes. You can also view a lock's properties, capabilities, and status. Further, you can monitor for unlock and lock events. + +See also [Webhooks](/developer-tools/webhooks). + + + + +A lock device resource. + +```json +{ + "can_program_online_access_codes": true, + "can_remotely_lock": true, + "can_remotely_unlock": true, + "capabilities_supported": ["access_code", "lock"], + "connected_account_id": "8e3a4f1b-2c7d-4a9e-8b5f-3d2c1a0b9e8f", + "created_at": "2025-03-27T02:08:16.418Z", + "space_ids": [], + "custom_metadata": { "id": "internalId1" }, + "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", + "device_type": "schlage_lock", + "display_name": "FRONT DOOR", + "errors": [], + "is_managed": true, + "location": { "location_name": "Front Door", "timezone": "America/New_York" }, + "nickname": "Front Door", + "properties": { + "appearance": { "name": "FRONT DOOR" }, + "battery": { "level": 0.48, "status": "good" }, + "battery_level": 0.48, + "code_constraints": [{ "constraint_type": "name_length", "max_length": 9 }], + "has_native_entry_events": true, + "image_alt_text": "Schlage Sense Smart Deadbolt with Camelot Trim, Front", + "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/schlage_sense-smart-deadbolt-with-camelot-trim_front.png&q=75&w=128", + "locked": false, + "manufacturer": "schlage", + "model": { + "accessory_keypad_supported": false, + "can_connect_accessory_keypad": false, + "display_name": "Encode", + "has_built_in_keypad": true, + "manufacturer_display_name": "Schlage", + "offline_access_codes_supported": false, + "online_access_codes_supported": true + }, + "name": "FRONT DOOR", + "offline_access_codes_enabled": false, + "online": true, + "online_access_codes_enabled": true, + "schlage_metadata": { + "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", + "device_name": "FRONT DOOR", + "model": "Encode" + }, + "serial_number": "34000000000531e0", + "supported_code_lengths": [4, 5, 6, 7, 8], + "supports_backup_access_code_pool": true, + "supports_offline_access_codes": false + }, + "warnings": [], + "workspace_id": "5d7f2e1a-9c8b-4f3e-8d2c-1a0b9e8f7c6d" +} +``` + + + + + + +```json Lock Device +{ + "can_program_online_access_codes": true, + "can_remotely_lock": true, + "can_remotely_unlock": true, + "capabilities_supported": [ + "access_code", + "lock" + ], + "connected_account_id": "8e3a4f1b-2c7d-4a9e-8b5f-3d2c1a0b9e8f", + "created_at": "2025-03-27T02:08:16.418Z", + "space_ids": [], + "custom_metadata": { + "id": "internalId1" + }, + "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", + "device_type": "schlage_lock", + "display_name": "FRONT DOOR", + "errors": [], + "is_managed": true, + "location": { + "location_name": "Front Door", + "timezone": "America/New_York" + }, + "nickname": "Front Door", + "properties": { + "appearance": { + "name": "FRONT DOOR" + }, + "battery": { + "level": 0.48, + "status": "good" + }, + "battery_level": 0.48, + "code_constraints": [ + { + "constraint_type": "name_length", + "max_length": 9 + } + ], + "has_native_entry_events": true, + "image_alt_text": "Schlage Sense Smart Deadbolt with Camelot Trim, Front", + "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/schlage_sense-smart-deadbolt-with-camelot-trim_front.png&q=75&w=128", + "locked": false, + "manufacturer": "schlage", + "model": { + "accessory_keypad_supported": false, + "can_connect_accessory_keypad": false, + "display_name": "Encode", + "has_built_in_keypad": true, + "manufacturer_display_name": "Schlage", + "offline_access_codes_supported": false, + "online_access_codes_supported": true + }, + "name": "FRONT DOOR", + "offline_access_codes_enabled": false, + "online": true, + "online_access_codes_enabled": true, + "schlage_metadata": { + "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", + "device_name": "FRONT DOOR", + "model": "Encode" + }, + "serial_number": "34000000000531e0", + "supported_code_lengths": [ + 4, + 5, + 6, + 7, + 8 + ], + "supports_backup_access_code_pool": true, + "supports_offline_access_codes": false + }, + "warnings": [], + "workspace_id": "5d7f2e1a-9c8b-4f3e-8d2c-1a0b9e8f7c6d" +} +``` + + + +--- + +## Properties + +**`can_configure_auto_lock`** _Boolean_ + +--- + +**`can_hvac_cool`** _Boolean_ + +--- + +**`can_hvac_heat`** _Boolean_ + +--- + +**`can_hvac_heat_cool`** _Boolean_ + +--- + +**`can_program_offline_access_codes`** _Boolean_ + +--- + +**`can_program_online_access_codes`** _Boolean_ + +--- + +**`can_program_thermostat_programs_as_different_each_day`** _Boolean_ + +--- + +**`can_program_thermostat_programs_as_same_each_day`** _Boolean_ + +--- + +**`can_program_thermostat_programs_as_weekday_weekend`** _Boolean_ + +--- + +**`can_remotely_lock`** _Boolean_ + +--- + +**`can_remotely_unlock`** _Boolean_ + +--- + +**`can_run_thermostat_programs`** _Boolean_ + +--- + +**`can_simulate_connection`** _Boolean_ + +--- + +**`can_simulate_disconnection`** _Boolean_ + +--- + +**`can_simulate_hub_connection`** _Boolean_ + +--- + +**`can_simulate_hub_disconnection`** _Boolean_ + +--- + +**`can_simulate_paid_subscription`** _Boolean_ + +--- + +**`can_simulate_removal`** _Boolean_ + +--- + +**`can_turn_off_hvac`** _Boolean_ + +--- + +**`can_unlock_with_code`** _Boolean_ + +--- + +**`capabilities_supported`** _List_ _of Enums_ + +Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). + +--- + +**`connected_account_id`** _UUID_ + +Unique identifier for the account associated with the device. + +--- + +**`created_at`** _Datetime_ + +Date and time at which the device object was created. + +--- + +**`custom_metadata`** _Record_ + +Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + +--- + +**`device_id`** _UUID_ + +ID of the device. + +--- + +**`device_type`** _Enum_ + +Type of the device. + + + +- akuvox_lock +- august_lock +- brivo_access_point +- butterflymx_panel +- avigilon_alta_entry +- doorking_lock +- genie_door +- igloo_lock +- linear_lock +- lockly_lock +- kwikset_lock +- nuki_lock +- salto_lock +- schlage_lock +- smartthings_lock +- wyze_lock +- yale_lock +- two_n_intercom +- controlbyweb_device +- ttlock_lock +- igloohome_lock +- four_suites_door +- dormakaba_oracode_door +- tedee_lock +- akiles_lock +- ultraloq_lock +- korelock_lock +- keynest_key +- noiseaware_activity_zone +- minut_sensor +- ecobee_thermostat +- nest_thermostat +- honeywell_resideo_thermostat +- tado_thermostat +- sensi_thermostat +- smartthings_thermostat +- ios_phone +- android_phone +- ring_camera + + +--- + +**`display_name`** _String_ + +Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. + +--- + +[**`errors`**](#errors) _List_ _of Objects_ + +Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. + +The specific structure of each object in this list depends on the value of its `error_code` field. + +Variants: + + + +Indicates that the account is disconnected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- account_disconnected + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates that the error is a [connected account](/api/connected_accounts/object) error. + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is not a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the Salto site user limit has been reached. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_subscription_limit_exceeded + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates that the error is a [connected account](/api/connected_accounts/object) error. + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is not a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the device is offline. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_offline + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the device has been removed. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_removed + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the hub is disconnected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- hub_disconnected + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the device is disconnected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_disconnected + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- empty_backup_access_code_pool + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the user is not authorized to use the August lock. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- august_lock_not_authorized + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the lock is not connected to a bridge. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- august_lock_missing_bridge + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the lock is not paired with a gateway. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- ttlock_lock_not_paired_to_gateway + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that device credentials are missing. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- missing_device_credentials + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the auxiliary heat is running. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- auxiliary_heat_running + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that a subscription is required to connect. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- subscription_required + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the Lockly lock is not connected to a Wi-Fi bridge. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- lockly_missing_wifi_bridge + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system). + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- bridge_disconnected + +--- + +**`is_bridge_error`** _Boolean_ + +Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates whether the error is related specifically to the connected account. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + +--- + +**`is_managed`** _Boolean_ + +Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices). + +--- + +**`nickname`** _String_ + +Optional nickname to describe the device, settable through Seam. + +--- + +**`space_ids`** _List_ _of UUIDs_ + +IDs of the spaces the device is in. + +--- + +[**`warnings`**](#warnings) _List_ _of Objects_ + +Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. + +The specific structure of each object in this list depends on the value of its `warning_code` field. + +Variants: + + + +Indicates that the backup access code is unhealthy. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- partial_backup_access_code_pool + + + + +Indicates that there are too many backup codes. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- many_active_backup_codes + + + + +Indicates that the Wyze Lock is not connected to a gateway. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- wyze_device_missing_gateway + + + + +Indicates that a third-party integration has been detected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- third_party_integration_detected + + + + +Indicates that the Remote Unlock feature is not enabled in the settings." + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- ttlock_lock_gateway_unlocking_not_enabled + + + + +Indicates that the gateway signal is weak. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- ttlock_weak_gateway_signal + + + + +Indicates that the device is in power saving mode and may have limited functionality. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- power_saving_mode + + + + +Indicates that the temperature threshold has been exceeded. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- temperature_threshold_exceeded + + + + +Indicates that the device appears to be unresponsive. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_communication_degraded + + + + +Indicates that a scheduled maintenance window has been detected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- scheduled_maintenance_window + + + + +Indicates that the device has a flaky connection. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_has_flaky_connection + + + + +Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_office_mode + + + + +Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_privacy_mode + + + + +Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_subscription_limit_almost_reached + + + + +Indicates that an unknown issue occurred while syncing the state of the phone with the provider. This issue may affect the proper functioning of the phone. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- unknown_issue_with_phone + + + + +Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- lockly_time_zone_not_configured + + + + +Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- ultraloq_time_zone_unknown + + + + +Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- two_n_device_missing_timezone + + + + +Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- hub_required_for_additional_capabilities + + + + +Indicates that the key is in a locker that does not support the access codes API. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- keynest_unsupported_locker + + + + +Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- accessory_keypad_setup_required + + + + +Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- unreliable_online_status + + + + +Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. + +**`active_access_code_count`** _Number_ + +Number of active access codes on the device when the warning was set. + +--- + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`max_active_access_code_count`** _Number_ + +Maximum number of active access codes supported by the device. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- max_access_codes_reached + + + +--- + +**`workspace_id`** _UUID_ + +Unique identifier for the Seam workspace associated with the device. + +--- + +## device.properties + +**`akiles_metadata`** _Object_ + +Metadata for an Akiles device. + + + + + Group ID to which to add users for an Akiles device. + + + Gadget ID for an Akiles device. + + + Gadget name for an Akiles device. + + + Product name for an Akiles device. + + + +--- + +**`assa_abloy_credential_service_metadata`** _Object_ + +ASSA ABLOY Credential Service metadata for the phone. + + + + + Endpoints associated with the phone. + + + ID of the associated endpoint. + + + Indicated whether the endpoint is active. + + Indicates whether the credential service has active endpoints associated with the phone. + + + + +--- + +**`assa_abloy_vostio_metadata`** _Object_ + +Metadata for an ASSA ABLOY Vostio system. + + + + + Encoder name for an ASSA ABLOY Vostio system. + + + +--- + +**`august_metadata`** _Object_ + +Metadata for an August device. + + + + + Indicates whether an August device has a keypad. + + + House ID for an August device. + + + House name for an August device. + + + Keypad battery level for an August device. + + + Lock ID for an August device. + + + Lock name for an August device. + + + Model for an August device. + + + +--- + +**`auto_lock_delay_seconds`** _Number_ + +The delay in seconds before the lock automatically locks after being unlocked. + +--- + +**`auto_lock_enabled`** _Boolean_ + +Indicates whether automatic locking is enabled. + +--- + +**`avigilon_alta_metadata`** _Object_ + +Metadata for an Avigilon Alta system. + + + + + Entry name for an Avigilon Alta system. + + + Total count of entry relays for an Avigilon Alta system. + + + Organization name for an Avigilon Alta system. + + + Site ID for an Avigilon Alta system. + + + Site name for an Avigilon Alta system. + + + Zone ID for an Avigilon Alta system. + + + Zone name for an Avigilon Alta system. + + + +--- + +**`brivo_metadata`** _Object_ + +Metadata for a Brivo device. + + + + + Indicates whether the Brivo access point has activation (remote unlock) enabled. + + + Device name for a Brivo device. + + + +--- + +**`code_constraints`** _List_ _of Objects_ + +Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. + + +constraint_type Enum + + + - no_zeros + - cannot_start_with_12 + - no_triple_consecutive_ints + - cannot_specify_pin_code + - pin_code_matches_existing_set + - start_date_in_future + - no_ascending_or_descending_sequence + - at_least_three_unique_digits + - cannot_contain_089 + - cannot_contain_0789 + - unique_first_four_digits + - no_all_same_digits + - name_length + - name_must_be_unique + + + + + max_length + +Number + +Maximum name length constraint for access codes. + + + min_length + +Number + +Minimum name length constraint for access codes. + + + +--- + +**`controlbyweb_metadata`** _Object_ + +Metadata for a ControlByWeb device. + + + + + Device ID for a ControlByWeb device. + + + Device name for a ControlByWeb device. + + + Relay name for a ControlByWeb device. + + + +--- + +**`door_open`** _Boolean_ + +Indicates whether the door is open. + +--- + +**`dormakaba_oracode_metadata`** _Object_ + +Metadata for a dormakaba Oracode device. + + + + + Device ID for a dormakaba Oracode device. + + + Door ID for a dormakaba Oracode device. + + + Indicates whether a door is wireless for a dormakaba Oracode device. + + + Door name for a dormakaba Oracode device. + + + IANA time zone for a dormakaba Oracode device. + + + Predefined time slots for a dormakaba Oracode device. + + + Check in time for a time slot for a dormakaba Oracode device. + + + Checkout time for a time slot for a dormakaba Oracode device. + + + ID of a user level for a dormakaba Oracode device. + + + Prefix for a user level for a dormakaba Oracode device. + + + Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot. + + + Indicates whether a time slot for a dormakaba Oracode device is in biweekly mode. + + + Indicates whether a time slot for a dormakaba Oracode device is a master time slot. + + + Indicates whether a time slot for a dormakaba Oracode device is a one-shot time slot. + + + Name of a time slot for a dormakaba Oracode device. + + + Prefix for a time slot for a dormakaba Oracode device. + + Site ID for a dormakaba Oracode device. + + **Deprecated**. Previously marked as "@DEPRECATED."- + + site_name + + String + + Site name for a dormakaba Oracode device. + + + + +--- + +**`ecobee_metadata`** _Object_ + +Metadata for an ecobee device. + + + + + Device name for an ecobee device. + + + Device ID for an ecobee device. + + + +--- + +**`four_suites_metadata`** _Object_ + +Metadata for a 4SUITES device. + + + + + Device ID for a 4SUITES device. + + + Device name for a 4SUITES device. + + + Reclose delay, in seconds, for a 4SUITES device. + + + +--- + +**`genie_metadata`** _Object_ + +Metadata for a Genie device. + + + + + Lock name for a Genie device. + + + Door name for a Genie device. + + + +--- + +**`has_native_entry_events`** _Boolean_ + +Indicates whether the device supports native entry events. + +--- + +**`honeywell_resideo_metadata`** _Object_ + +Metadata for a Honeywell Resideo device. + + + + + Device name for a Honeywell Resideo device. + + + Device ID for a Honeywell Resideo device. + + + +--- + +**`igloo_metadata`** _Object_ + +Metadata for an igloo device. + + + + + Bridge ID for an igloo device. + + + Device ID for an igloo device. + + + Model for an igloo device. + + + +--- + +**`igloohome_metadata`** _Object_ + +Metadata for an igloohome device. + + + + + Bridge ID for an igloohome device. + + + Bridge name for an igloohome device. + + + Device ID for an igloohome device. + + + Device name for an igloohome device. + + + Indicates whether a keypad is linked to a bridge for an igloohome device. + + + Keypad ID for an igloohome device. + + + +--- + +**`keynest_metadata`** _Object_ + +Metadata for a KeyNest device. + + + + + Address for a KeyNest device. + + + Current or last store ID for a KeyNest device. + + + Current status for a KeyNest device. + + + Current user company for a KeyNest device. + + + Current user email for a KeyNest device. + + + Current user name for a KeyNest device. + + + Current user phone number for a KeyNest device. + + + Default office ID for a KeyNest device. + + + Device name for a KeyNest device. + + + Fob ID for a KeyNest device. + + + Handover method for a KeyNest device. + + + Whether the KeyNest device has a photo. + + + Whether the key is in a locker that does not support the access codes API. + + + Key ID for a KeyNest device. + + + Key notes for a KeyNest device. + + + KeyNest app user for a KeyNest device. + + + Last movement timestamp for a KeyNest device. + + + Property ID for a KeyNest device. + + + Property postcode for a KeyNest device. + + + Status type for a KeyNest device. + + + Subscription plan for a KeyNest device. + + + +--- + +**`keypad_battery`** _Object_ + +Keypad battery status. + + + + + Keypad battery charge level. + + + +--- + +**`korelock_metadata`** _Object_ + +Metadata for a Korelock device. + + + + + Device ID for a Korelock device. + + + Device name for a Korelock device. + + + Firmware version for a Korelock device. + + + Location ID for a Korelock device. Required for timebound access codes. + + + Model code for a Korelock device. + + + Serial number for a Korelock device. + + + WiFi signal strength (0-1) for a Korelock device. + + + +--- + +**`kwikset_metadata`** _Object_ + +Metadata for a Kwikset device. + + + + + Device ID for a Kwikset device. + + + Device name for a Kwikset device. + + + Model number for a Kwikset device. + + + +--- + +**`locked`** _Boolean_ + +Indicates whether the lock is locked. + +--- + +**`lockly_metadata`** _Object_ + +Metadata for a Lockly device. + + + + + Device ID for a Lockly device. + + + Device name for a Lockly device. + + + Model for a Lockly device. + + + +--- + +**`max_active_codes_supported`** _Number_ + +Maximum number of active access codes that the device supports. + +--- + +**`minut_metadata`** _Object_ + +Metadata for a Minut device. + + + + + Device ID for a Minut device. + + + Device name for a Minut device. + + + Latest sensor values for a Minut device. + + + Latest accelerometer Z-axis reading for a Minut device. + + + Time of latest accelerometer Z-axis reading for a Minut device. + + + Value of latest accelerometer Z-axis reading for a Minut device. + + + Latest humidity reading for a Minut device. + + + Time of latest humidity reading for a Minut device. + + + Value of latest humidity reading for a Minut device. + + + Latest pressure reading for a Minut device. + + + Time of latest pressure reading for a Minut device. + + + Value of latest pressure reading for a Minut device. + + + Latest sound reading for a Minut device. + + + Time of latest sound reading for a Minut device. + + + Value of latest sound reading for a Minut device. + + + Latest temperature reading for a Minut device. + + + Time of latest temperature reading for a Minut device. + + + Value of latest temperature reading for a Minut device. + + + +--- + +**`model`** _Object_ + +Device model-related properties. + + + + + + **Deprecated**. use device.properties.model.can_connect_accessory_keypad + + + + Indicates whether the device can connect a accessory keypad. + + + Display name of the device model. + + + Indicates whether the device has a built in accessory keypad. + + + Display name that corresponds to the manufacturer-specific terminology for the device. + + + **Deprecated**. use device.can_program_offline_access_codes. + + + **Deprecated**. use device.can_program_online_access_codes. + + + +--- + +**`name`** _String_ + +Name of the device. + +**Deprecated**. use device.display_name instead + +--- + +**`nest_metadata`** _Object_ + +Metadata for a Google Nest device. + + + + + Custom device name for a Google Nest device. The device owner sets this value. + + + Device name for a Google Nest device. Google sets this value. + + + Display name for a Google Nest device. + + + Device ID for a Google Nest device. + + + +--- + +**`noiseaware_metadata`** _Object_ + +Metadata for a NoiseAware device. + + + + + Device ID for a NoiseAware device. + + + Device model for a NoiseAware device. + + + + - `indoor` + - `outdoor` + + + + + Device name for a NoiseAware device. + + + Noise level, in decibels, for a NoiseAware device. + + + Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. + + + +--- + +**`nuki_metadata`** _Object_ + +Metadata for a Nuki device. + + + + + Device ID for a Nuki device. + + + Device name for a Nuki device. + + + Indicates whether keypad 2 is paired for a Nuki device. + + + Indicates whether the keypad battery is in a critical state for a Nuki device. + + + Indicates whether the keypad is paired for a Nuki device. + + + +--- + +**`offline_access_codes_enabled`** _Boolean_ + +Indicates whether it is currently possible to use offline access codes for the device. + +**Deprecated**. use device.can_program_offline_access_codes + +--- + +**`online`** _Boolean_ + +Indicates whether the device is online. + +--- + +**`online_access_codes_enabled`** _Boolean_ + +Indicates whether it is currently possible to use online access codes for the device. + +**Deprecated**. use device.can_program_online_access_codes + +--- + +**`ring_metadata`** _Object_ + +Metadata for a Ring device. + + + + + Device ID for a Ring device. + + + Device name for a Ring device. + + + +--- + +**`salto_ks_metadata`** _Object_ + +Metadata for a Salto KS device. + + + + + Battery level for a Salto KS device. + + + Customer reference for a Salto KS device. + + + Indicates whether the site has a Salto KS subscription that supports custom PINs. + + + Lock ID for a Salto KS device. + + + Lock type for a Salto KS device. + + + Locked state for a Salto KS device. + + + Model for a Salto KS device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + +--- + +**`salto_metadata`** _Object_ + +Metada for a Salto device. + +**Deprecated**. Use `salto_ks_metadata ` instead. + + + + + Battery level for a Salto device. + + + Customer reference for a Salto device. + + + Lock ID for a Salto device. + + + Lock type for a Salto device. + + + Locked state for a Salto device. + + + Model for a Salto device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + +--- + +**`salto_space_credential_service_metadata`** _Object_ + +Salto Space credential service metadata for the phone. + + + + + Indicates whether the credential service has an active associated phone. + + + +--- + +**`schlage_metadata`** _Object_ + +Metadata for a Schlage device. + + + + + Device ID for a Schlage device. + + + Device name for a Schlage device. + + + Model for a Schlage device. + + + +--- + +**`seam_bridge_metadata`** _Object_ + +Metadata for Seam Bridge. + + + + + Device number for Seam Bridge. + + + Name for Seam Bridge. + + + Unlock method for Seam Bridge. + + + + - `bridge` + - `doorking` + + + + + +--- + +**`sensi_metadata`** _Object_ + +Metadata for a Sensi device. + + + + + Device ID for a Sensi device. + + + Device name for a Sensi device. + + + Set to true when the device does not support the /dual-setpoints API endpoint. + + + Product type for a Sensi device. + + + +--- + +**`smartthings_metadata`** _Object_ + +Metadata for a SmartThings device. + + + + + Device ID for a SmartThings device. + + + Device name for a SmartThings device. + + + Location ID for a SmartThings device. + + + Model for a SmartThings device. + + + +--- + +**`supported_code_lengths`** _List_ _of Numbers_ + +Supported code lengths for access codes. + +--- + +**`supports_accessory_keypad`** _Boolean_ + + + **Deprecated**. use device.properties.model.can_connect_accessory_keypad + + +--- + +**`supports_backup_access_code_pool`** _Boolean_ + +Indicates whether the device supports a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes). + +--- + +**`supports_offline_access_codes`** _Boolean_ + +**Deprecated**. use offline_access_codes_enabled + +--- + +**`tado_metadata`** _Object_ + +Metadata for a tado° device. + + + + + Device type for a tado° device. + + + Serial number for a tado° device. + + + +--- + +**`tedee_metadata`** _Object_ + +Metadata for a Tedee device. + + + + + Bridge ID for a Tedee device. + + + Bridge name for a Tedee device. + + + Device ID for a Tedee device. + + + Device model for a Tedee device. + + + Device name for a Tedee device. + + + Keypad ID for a Tedee device. + + + Serial number for a Tedee device. + + + +--- + +**`ttlock_metadata`** _Object_ + +Metadata for a TTLock device. + + + + + Feature value for a TTLock device. + + + Features for a TTLock device. + + + Indicates whether a TTLock device supports auto-lock time configuration. + + + Indicates whether a TTLock device supports an incomplete keyboard passcode. + + + Indicates whether a TTLock device supports the lock command. + + + Indicates whether a TTLock device supports a passcode. + + + Indicates whether a TTLock device supports passcode management. + + + Indicates whether a TTLock device supports unlock via gateway. + + + Indicates whether a TTLock device supports Wi-Fi. + + + Indicates whether a TTLock device has a gateway. + + + Lock alias for a TTLock device. + + + Lock ID for a TTLock device. + + + Wireless keypads for a TTLock device. + + + ID for a wireless keypad for a TTLock device. + + + Name for a wireless keypad for a TTLock device. + + + +--- + +**`two_n_metadata`** _Object_ + +Metadata for a 2N device. + + + + + Device ID for a 2N device. + + + Device name for a 2N device. + + + +--- + +**`ultraloq_metadata`** _Object_ + +Metadata for an Ultraloq device. + + + + + Device ID for an Ultraloq device. + + + Device name for an Ultraloq device. + + + Device type for an Ultraloq device. + + + IANA timezone for the Ultraloq device. + + + +--- + +**`visionline_metadata`** _Object_ + +Metadata for an ASSA ABLOY Visionline system. + + + + + Encoder ID for an ASSA ABLOY Visionline system. + + + +--- + +**`wyze_metadata`** _Object_ + +Metadata for a Wyze device. + + + + + Device ID for a Wyze device. + + + Device information model for a Wyze device. + + + Device name for a Wyze device. + + + Keypad UUID for a Wyze device. + + + Locker status (hardlock) for a Wyze device. + + + Product model for a Wyze device. + + + Product name for a Wyze device. + + + Product type for a Wyze device. + + + +--- + +## Errors + +**`salto_ks_subscription_limit_exceeded`** + +Indicates that the Salto site user limit has been reached. + +--- + +**`august_lock_not_authorized`** + +Indicates that the user is not authorized to use the August lock. + +--- + +**`august_lock_missing_bridge`** + +Indicates that the lock is not connected to a bridge. + +--- + +**`empty_backup_access_code_pool`** + +Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. + +--- + +**`ttlock_lock_not_paired_to_gateway`** + +Indicates that the lock is not paired with a gateway. + +--- + +**`subscription_required`** + +Indicates that a subscription is required to connect. + +--- + +**`missing_device_credentials`** + +Indicates that device credentials are missing. + +--- + +**`lockly_missing_wifi_bridge`** + +Indicates that the Lockly lock is not connected to a Wi-Fi bridge. + +--- + +**`hub_disconnected`** + +Indicates that the hub is disconnected. + +--- + +**`device_removed`** + +Indicates that the device has been removed. + +--- + +**`device_offline`** + +Indicates that the device is offline. + +--- + +**`device_disconnected`** + +Indicates that the device is disconnected. + +--- + +**`account_disconnected`** + +Indicates that the account is disconnected. + +--- + +**`bridge_disconnected`** + +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system). + +--- + +## Warnings + +**`accessory_keypad_setup_required`** + +Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. + +--- + +**`device_communication_degraded`** + +Indicates that the device appears to be unresponsive. + +--- + +**`device_has_flaky_connection`** + +Indicates that the device has a flaky connection. + +--- + +**`hub_required_for_additional_capabilities`** + +Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. + +--- + +**`keynest_unsupported_locker`** + +Indicates that the key is in a locker that does not support the access codes API. + +--- + +**`lockly_time_zone_not_configured`** + +Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. + +--- + +**`many_active_backup_codes`** + +Indicates that there are too many backup codes. + +--- + +**`max_access_codes_reached`** + +Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. + +--- + +**`partial_backup_access_code_pool`** + +Indicates that the backup access code is unhealthy. + +--- + +**`power_saving_mode`** + +Indicates that the device is in power saving mode and may have limited functionality. + +--- + +**`salto_ks_office_mode`** + +Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. + +--- + +**`salto_ks_privacy_mode`** + +Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. + +--- + +**`salto_ks_subscription_limit_almost_reached`** + +Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. + +--- + +**`scheduled_maintenance_window`** + +Indicates that a scheduled maintenance window has been detected. + +--- + +**`third_party_integration_detected`** + +Indicates that a third-party integration has been detected. + +--- + +**`ttlock_lock_gateway_unlocking_not_enabled`** + +Indicates that the Remote Unlock feature is not enabled in the settings." + +--- + +**`ttlock_weak_gateway_signal`** + +Indicates that the gateway signal is weak. + +--- + +**`two_n_device_missing_timezone`** + +Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. + +--- + +**`ultraloq_time_zone_unknown`** + +Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. + +--- + +**`unreliable_online_status`** + +Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. + +--- + +**`wyze_device_missing_gateway`** + +Indicates that the Wyze Lock is not connected to a gateway. + +--- + +## Endpoints + +[**`/locks/configure_auto_lock`**](./configure_auto_lock) + +Configures the auto-lock setting for a specified [lock](/low-level-apis/smart-locks). + +[**`/locks/get`**](./get) + +Returns a specified [lock](/low-level-apis/smart-locks). + +[**`/locks/list`**](./list) + +Returns a list of all [locks](/low-level-apis/smart-locks). + +[**`/locks/lock_door`**](./lock_door) + +Locks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock). + +[**`/locks/unlock_door`**](./unlock_door) + +Unlocks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock). diff --git a/mintlify-codegen/source/api/locks/simulate/object.mdx b/mintlify-codegen/source/api/locks/simulate/object.mdx new file mode 100644 index 000000000..e9f45962e --- /dev/null +++ b/mintlify-codegen/source/api/locks/simulate/object.mdx @@ -0,0 +1,14 @@ +--- +title: 'Lock Simulations' +description: 'Use the lock simulation endpoints to mimic keypad code entry and manual locking on sandbox August devices so you can test your smart lock app.' +--- + +## Endpoints + +[**`/locks/simulate/keypad_code_entry`**](./keypad_code_entry) + +Simulates the entry of a code on a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). + +[**`/locks/simulate/manual_lock_via_keypad`**](./manual_lock_via_keypad) + +Simulates a manual lock action using a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-codegen/source/api/mcp-installation.mdx b/mintlify-codegen/source/api/mcp-installation.mdx new file mode 100644 index 000000000..3f6605c1e --- /dev/null +++ b/mintlify-codegen/source/api/mcp-installation.mdx @@ -0,0 +1,98 @@ +--- +title: 'MCP Installation' +description: "Connect the Seam Docs MCP server to Claude to search Seam's API reference and device database from inside your conversations." +--- + +![](/images/mcp-cover.png) + +The **Seam Docs MCP Server** is a public, read-only [Model Context Protocol](https://modelcontextprotocol.io/) server that gives Claude and other MCP-compatible clients access to Seam's developer documentation and device database. Connect it once, then ask Claude questions about the Seam API, capabilities, webhooks, SDK usage, and the 400+ supported device models — across smart locks, thermostats, access control systems, and noise sensors. Claude grounds its answers in the most up-to-date Seam docs. + +The server is intended for developers integrating with Seam who want Claude to answer Seam questions accurately, whether they're looking up an API endpoint, checking which lock models support mobile keys, or finding the right integration guide. It is read-only: it cannot control devices, manage access codes, create resources, or perform any other write operations against the Seam API. + +## Server Details + +| Property | Value | +| -------------- | --------------------------- | +| Server URL | `https://mcp.seam.co/mcp` | +| Transport | Streamable HTTP | +| Authentication | None — the server is public | + + + No API key, account, or sign-up is required to use the Seam Docs MCP server. + It only reads and returns Seam's public documentation. + + +## What You Can Ask + +Once connected, you can ask Claude questions like the following, and Claude will fetch the answer from the Seam docs and device database: + +- "How do I unlock a Schlage Encode lock with the Seam API?" +- "Show me the webhook payload for `lock.locked`." +- "What's the difference between an access code and an access grant?" +- "Which smart lock models support mobile keys and remote unlock?" +- "Compare August and Yale lock features for a hospitality deployment." +- "Find the right integration guide for property management workflows." +- "Does Seam support Salto KS access control systems?" +- "How do I create a Connect Webview from the Python SDK?" + +## Connect From Claude.ai + +1. Sign in to [claude.ai](https://claude.ai). +2. Open **Settings → Connectors**. +3. Click **Add custom connector**. +4. Set the **URL** to `https://mcp.seam.co/mcp`. +5. Set the **Name** to `Seam Docs`. +6. Save. No authentication is required. + +The connector is now available to Claude in any new conversation. + +## Connect From Claude Desktop + +1. Open Claude Desktop and go to **Settings → Connectors**. +2. Click **Add custom connector**. +3. Set the **URL** to `https://mcp.seam.co/mcp`. +4. Set the **Name** to `Seam Docs`. +5. Save and restart Claude Desktop if prompted. + +## Connect From Claude Code + +Run the following command from your terminal: + +```bash +claude mcp add --transport http seam-docs https://mcp.seam.co/mcp +``` + +Or add the following entry to your Claude Code MCP configuration file: + +```json +{ + "mcpServers": { + "seam-docs": { + "type": "http", + "url": "https://mcp.seam.co/mcp" + } + } +} +``` + +## Available Tools + +The Seam Docs MCP server exposes three read-only tools: + +| Tool | Display Name | Description | +| ------------------- | ----------------- | -------------------------------------------------------------------------------------------------------- | +| `search_docs` | Search Seam Docs | Semantic search across all Seam documentation and the 400+ supported device models, ranked by relevance. | +| `get_doc` | Get Doc Page | Fetch the full content of any Seam documentation or device page. | +| `list_doc_sections` | List Doc Sections | Browse the Seam documentation tree to discover available content. | + +Claude selects the appropriate tool automatically based on your prompt. + +## Troubleshooting + +- **403 Forbidden on connection** — The server only accepts requests from approved origins (`mcp.seam.co`, `claude.ai`, `app.claude.ai`, and `localhost`). Requests from other origins are rejected. +- **Empty search results** — If `search_docs` returns nothing, broaden your query. Use Seam API resource names (for example, `access_codes`) rather than SDK-specific method names, and use generic capability terms (for example, "mobile keys") when searching for devices. +- **Connection refused** — Confirm that your network allows outbound HTTPS to `mcp.seam.co`. Some corporate firewalls block custom MCP endpoints. + +## Support + +For questions or issues with the Seam Docs MCP server, contact [support@seam.co](mailto:support@seam.co). diff --git a/mintlify-codegen/source/api/noise_sensors/object.mdx b/mintlify-codegen/source/api/noise_sensors/object.mdx new file mode 100644 index 000000000..c8b9df74e --- /dev/null +++ b/mintlify-codegen/source/api/noise_sensors/object.mdx @@ -0,0 +1,21 @@ +--- +title: 'The Noise Sensor Object' +description: 'Learn how the device object represents a noise sensor that measures sound levels, lets you configure thresholds, and emits disturbance events.' +--- + +## The device Object for Noise Sensors + + +Represents a [noise sensor](/capability-guides/noise-sensors). + +Noise sensors are devices that measure that sound level in a given area. You can use noise sensors to monitor noise levels remotely and receive notifications when the noise volume is too loud. The Seam API enables you to configure the [noise thresholds](/capability-guides/noise-sensors/configure-noise-threshold-settings) of a noise sensor and receive events when a disturbance is detected. You can also [simulate triggering a noise threshold](/api/noise_sensors/simulate/trigger_noise_threshold). + +The Seam API represents a noise sensor as a `device` resource that includes both basic device properties and noise sensor-specific properties. + +--- + +## Endpoints + +[**`/noise_sensors/list`**](./list) + +Returns a list of all [noise sensors](/capability-guides/noise-sensors). diff --git a/mintlify-codegen/source/api/noise_sensors/simulate/object.mdx b/mintlify-codegen/source/api/noise_sensors/simulate/object.mdx new file mode 100644 index 000000000..ab7283be5 --- /dev/null +++ b/mintlify-codegen/source/api/noise_sensors/simulate/object.mdx @@ -0,0 +1,10 @@ +--- +title: 'Noise Sensor Simulations' +description: 'Use the noise sensor simulation endpoint to trigger a noise threshold in a sandbox workspace so you can test how your app responds to disturbances.' +--- + +## Endpoints + +[**`/noise_sensors/simulate/trigger_noise_threshold`**](./trigger_noise_threshold) + +Simulates the triggering of a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-codegen/source/api/pagination.mdx b/mintlify-codegen/source/api/pagination.mdx new file mode 100644 index 000000000..258acf815 --- /dev/null +++ b/mintlify-codegen/source/api/pagination.mdx @@ -0,0 +1,1133 @@ +--- +title: 'Pagination' +description: 'Learn how to paginate Seam API list endpoints using the limit and page_cursor parameters and the pagination response object for faster, efficient apps.' +--- + +For endpoints that can return long lists of resources, using pagination makes your app faster and more efficient. The Seam API and our JavaScript, Python, PHP, and Ruby SDKs support pagination for `list` endpoints. + + + Currently, we support pagination for access codes, access system users, + Connect Webviews, connected accounts, and devices. + + +To fetch and process resources across multiple pages in the Seam API, use the `limit` and `page_cursor` parameters, along with the `pagination` response object. The `pagination` object provides the following information: + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
+ next_page_cursor + String + Opaque value that you use to select the next page of results through the{' '} + page_cursor parameter. +
+ has_next_page + Boolean + Indicates whether there is another page of results after this one. +
+ next_page_url + String (URI)URL to get the next page of results.
+ +For pagination in the Seam SDKs, use the corresponding paginator class, for example, `SeamPaginator` in the Seam JavaScript and Python SDKs and `Paginator` in the Seam PHP and Ruby SDKs. + +The following examples show you how to use pagination in a variety of scenarios: + +## Manually Fetch Pages + +You can specify the number of records per page and the desired page of results. The first `list` request returns the first set of records, as well as the `pagination` object. If `pagination.has_next_page` is `true`, you can request an additional page of records. For all `list` requests after the first, use the `pagination.next_page_cursor` as the value for the `page_cursor` parameter. + +The following example gets the first page of 20 devices and then the second page of 20 devices: + + + + +**Code:** + +```javascript +const pages = seam.createPaginator( + seam.devices.list({ + limit: 20, + }), +) + +const [devices, { hasNextPage, nextPageCursor }] = await pages.firstPage() + +if (hasNextPage) { + const [moreDevices] = await pages.nextPage(nextPageCursor) +} +``` + +**Output:** + +```json +[ + { + device_id: '11111111-1111-1111-1111-444444444444', + ... + }, + ... +] +``` + + + + + +**Request:** + +```bash +# Use GET or POST. +curl -X 'GET' \ + 'https://connect.getseam.com/devices/list' \ + -H 'accept: application/json' \ + -H "Authorization: Bearer ${SEAM_API_KEY}" \ + -H 'Content-Type: application/json' \ + -d '{ + "limit": 20 + }' + +curl -X 'GET' \ + 'https://connect.getseam.com/devices/list' \ + -H 'accept: application/json' \ + -H "Authorization: Bearer ${SEAM_API_KEY}" \ + -H 'Content-Type: application/json' \ + -d "{ + \"limit\": 20 + \"page_cursor\": \"${next_page_cursor}\" + }" +``` + +**Response:** + +```json +{ + "devices": [ + { + "device_id": "11111111-1111-1111-1111-444444444444", + ... + }, + ... + ], + "pagination": { + "next_page_cursor": "[string]", + "has_next_page": true, + "next_page_url": "[URI]" + }, + "ok": true +} +``` + + + + + +**Code:** + +```python +paginator = seam.create_paginator(seam.devices.list, {"limit": 20}) + +devices, pagination = paginator.first_page() + +if pagination.has_next_page: + more_devices, _ = paginator.next_page(pagination.next_page_cursor) +``` + +**Output:** + +``` +[ + Device( + device_id='11111111-1111-1111-1111-444444444444', + ... + ), + ... +] +``` + + + + + +**Code:** + +```ruby +paginator = seam.create_paginator(seam.devices.method(:list), {limit: 20}) + +devices, pagination = paginator.first_page + +if pagination.has_next_page? + more_devices, _ = paginator.next_page(pagination.next_page_cursor) +end +``` + +**Output:** + +``` +[ + , + ... +] +``` + + + + + +**Code:** + +```php +$pages = $seam->createPaginator( + fn($params) => $seam->devices->list(...$params), + ["limit" => 2] +); + +[$devices, $pagination] = $pages->firstPage(); + +if ($pagination->has_next_page) { + [$moreDevices] = $pages->nextPage($pagination->next_page_cursor); +} +``` + +**Output:** + +```json +[ + { + "device_id": "11111111-1111-1111-1111-444444444444", + ... + }, + ... +] +``` + + + + + +**Code:** + +```csharp +// Coming soon! +``` + +**Output:** + +```json +// Coming soon! +``` + + + + +--- + +## Resume Pagination + +You can get the first page on initial load, store the state, and then get the next page at a later time using the stored state. + +The following example gets the first page of 20 records from the list of devices and, later, gets the next page of 20 devices: + + + + +**Code:** + +```javascript +// Get the first page of devices. +const params = { limit: 20 } + +const pages = seam.createPaginator(seam.devices.list(params)) + +const [devices, pagination] = await pages.firstPage() + +// Store the state, for example, in memory, a file, or a database. +localStorage.setItem('/seam/devices/list', JSON.stringify([params, pagination])) + +// Later, get the next page of devices. +const [params = {}, { hasNextPage = false, nextPageCursor = null } = {}] = + JSON.parse(localStorage.getItem('/seam/devices/list') ?? '[]') + +if (hasNextPage) { + const pages = seam.createPaginator(seam.devices.list(params)) + const [moreDevices] = await pages.nextPage(nextPageCursor) +} +``` + +**Output:** + +```json +[ + { + device_id: '11111111-1111-1111-1111-444444444444', + ... + }, + ... +] + +[ + { + device_id: '11111111-1111-1111-2222-444444444444', + ... + }, + ... +] +``` + + + + + +**Request:** + +```bash +# Get the first page. +# Use GET or POST. +curl -X 'GET' \ + 'https://connect.getseam.com/devices/list' \ + -H 'accept: application/json' \ + -H "Authorization: Bearer ${SEAM_API_KEY}" \ + -H 'Content-Type: application/json' \ + -d '{ + "limit": 20 + }' + +# Store the state, for example, in memory, a file, or a database. + +# At a later time, retrieve the stored state. +# Then, get the next page using the stored state. +curl -X 'GET' \ + 'https://connect.getseam.com/devices/list' \ + -H 'accept: application/json' \ + -H "Authorization: Bearer ${SEAM_API_KEY}" \ + -H 'Content-Type: application/json' \ + -d "{ + \"limit\": 20 + \"page_cursor\": \"${next_page_cursor}\" + }" +``` + +**Response:** + +```json +{ + "devices": [ + { + "device_id": "11111111-1111-1111-1111-444444444444", + ... + }, + ... + ], + "pagination": { + "next_page_cursor": "[string]", + "has_next_page": true, + "next_page_url": "[URI]" + }, + "ok": true +} + +{ + "devices": [ + { + "device_id": "11111111-1111-1111-2222-444444444444", + ... + }, + ... + ], + "pagination": { + "next_page_cursor": "[string]", + "has_next_page": true, + "next_page_url": "[URI]" + }, + "ok": true +} +``` + + + + + +**Code:** + +```python +# Get the first page. +params = {"limit": 20} +paginator = seam.create_paginator(seam.devices.list, params) + +devices, pagination = paginator.first_page() + +# Store the state, for example, in memory, a file, or a database. +pagination_state = { + "params": params, + "next_page_cursor": pagination.next_page_cursor, + "has_next_page": pagination.has_next_page, +} +with open("/tmp/seam_devices_list.json", "w") as f: + json.dump(pagination_state, f) + +# Get the next page at a later time using the stored state. +with open("/tmp/seam_devices_list.json", "r") as f: + pagination_state = json.load(f) + +if pagination_state.get("has_next_page"): + paginator = seam.create_paginator( + seam.devices.list, pagination_state["params"] + ) + more_devices, _ = paginator.next_page( + pagination_state["next_page_cursor"] + ) +``` + +**Output:** + +``` +[ + Device( + device_id='11111111-1111-1111-1111-444444444444', + ... + ), + ... +] + +[ + Device( + device_id='11111111-1111-1111-2222-444444444444', + ... + ), + ... +] +``` + + + + + +**Code:** + +```ruby +# Get the first page. +params = {limit: 20} +paginator = seam.create_paginator(seam.devices.method(:list), params) + +devices, pagination = paginator.first_page + +# Store the state, for example, in memory, a file, or a database. +pagination_state = { + "params" => params, + "next_page_cursor" => pagination.next_page_cursor, + "has_next_page" => pagination.has_next_page? +} +File.write("/tmp/seam_devices_list.json", JSON.dump(pagination_state)) + +# Get the next page at a later time using the stored state. +pagination_state_json = File.read("/tmp/seam_devices_list.json") +pagination_state = JSON.parse(pagination_state_json) + +if pagination_state["has_next_page"] + paginator = seam.create_paginator( + seam.devices.method(:list), pagination_state["params"] + ) + more_devices, _ = paginator.next_page( + pagination_state["next_page_cursor"] + ) +``` + +**Output:** + +``` +[ + , + ... +] + +[ + , + ... +] +``` + + + + + +**Code:** + +```php +// Get the first page. +$params = ["limit" => 20]; + +$pages = $seam->createPaginator( + fn($p) => $seam->devices->list(...$p), + $params +); + +[$devices, $pagination] = $pages->firstPage(); + +// Store the state, for example, in memory, a file, or a database. +file_put_contents( + "/tmp/seam_devices_list.json", + json_encode([$params, $pagination]) +); + +// Get the next page at a later time using the stored state. +$stored_data = json_decode( + file_get_contents("/tmp/seam_devices_list.json") ?: "[]", + false +); + +$params = $stored_data[0] ?? []; +$pagination = + $stored_data[1] ?? + (object) ["has_next_page" => false, "next_page_cursor" => null]; + +if ($pagination->has_next_page) { + $pages = $seam->createPaginator( + fn($p) => $seam->devices->list(...$p), + $params + ); + [$moreDevices] = $pages->nextPage($pagination->next_page_cursor); +} +``` + +**Output:** + +```json +[ + { + "device_id": "11111111-1111-1111-1111-444444444444", + ... + }, + ... +] + +[ + { + "device_id": "11111111-1111-1111-2222-444444444444", + ... + }, + ... +] +``` + + + + + +**Code:** + +```csharp +// Coming soon! +``` + +**Output:** + +```json +// Coming soon! +``` + + + + +--- + +## Iterate Over All Pages + +You can iterate over all pages of records. + +The following example uses a loop to get all pages of records for a list of 65 devices, at 20 records per page: + + + + +**Code:** + +```javascript +const pages = seam.createPaginator( + seam.devices.list({ + limit: 20, + }), +) + +for await (const devices of pages) { + console.log(`There are ${devices.length} devices on this page.`) +} +``` + +**Output:** + +``` +There are 20 devices on this page. +There are 20 devices on this page. +There are 20 devices on this page. +There are 5 devices on this page. +``` + + + + + +**Request:** + +```bash +# Get the first page. +# Use GET or POST. +response=$(curl -X 'GET' \ + 'https://connect.getseam.com/devices/list' \ + -H 'accept: application/json' \ + -H "Authorization: Bearer ${SEAM_API_KEY}" \ + -H 'Content-Type: application/json' \ + -d '{ + "limit": 20 + }') + +echo "$response" | jq -r '.devices | length' | xargs -I {} echo "There are {} devices on this page." + +# Extract pagination info. +next_cursor=$(echo "$response" | jq -r '.pagination.next_page_cursor') +has_next=$(echo "$response" | jq -r '.pagination.has_next_page') + +# Process subsequent pages. +while [ "$has_next" = "true" ] && [ ! -z "$next_cursor" ]; do + response=$(curl -X 'GET' \ + 'https://connect.getseam.com/devices/list' \ + -H 'accept: application/json' \ + -H "Authorization: Bearer ${SEAM_API_KEY}" \ + -H 'Content-Type: application/json' \ + -d "{ + \"limit\": 20, + \"page_cursor\": \"${next_cursor}\" + }") + + echo "$response" | jq -r '.devices | length' | xargs -I {} echo "There are {} devices on this page." + + # Update pagination info. + next_cursor=$(echo "$response" | jq -r '.pagination.next_page_cursor') + has_next=$(echo "$response" | jq -r '.pagination.has_next_page') +done +``` + +**Response:** + +``` +There are 20 devices on this page. +There are 20 devices on this page. +There are 20 devices on this page. +There are 5 devices on this page. +``` + + + + + +**Code:** + +```python +pages = seam.create_paginator( + seam.devices.list( + limit=20 + ) +) + +for devices in pages: + pprint(f"There are {len(devices)} devices on this page.") +``` + +**Output:** + +``` +There are 20 devices on this page. +There are 20 devices on this page. +There are 20 devices on this page. +There are 5 devices on this page. +``` + + + + + +**Code:** + +```ruby +params = {limit: 20} +pages = seam.create_paginator(seam.devices.method(:list), params) + +pages.each do |devices| + puts "There are #{devices.length} devices on this page." +end +``` + +**Output:** + +``` +There are 20 devices on this page. +There are 20 devices on this page. +There are 20 devices on this page. +There are 5 devices on this page. +``` + + + + + +**Code:** + +```php +$params = ["limit" => 20]; + +$paginator = $seam->createPaginator( + fn($p) => $seam->devices->list(...$p), + $params +); + +foreach ($paginator as $page) { + $devices = $page->devices; + echo "There are " . count($devices) . " devices on this page." . PHP_EOL; +} +``` + +**Output:** + +``` +There are 20 devices on this page. +There are 20 devices on this page. +There are 20 devices on this page. +There are 5 devices on this page. +``` + + + + + +**Code:** + +```csharp +// Coming soon! +``` + +**Output:** + +```json +// Coming soon! +``` + + + + +--- + +## Iterate Over All Resources + +You can iterate over all resources within all pages. + +The following example uses a loop to get all records for a list of devices, at 20 records per page, and then prints out the device ID for each record: + + + + +**Code:** + +```javascript +const pages = seam.createPaginator( + seam.devices.list({ + limit: 20, + }), +) + +for await (const device of pages.flatten()) { + console.log(device.device_id) +} +``` + +**Output:** + +``` +'11111111-1111-1111-1111-444444444444' +'11111111-1111-1111-2222-444444444444' +... +``` + + + + + +**Request:** + +```bash +# Get the first page. +# Use GET or POST. +response=$(curl -X 'GET' \ + 'https://connect.getseam.com/devices/list' \ + -H 'accept: application/json' \ + -H "Authorization: Bearer ${SEAM_API_KEY}" \ + -H 'Content-Type: application/json' \ + -d '{ + "limit": 20 + }') + +# Process all pages. +while true; do + # Extract and print the device IDs from the current page. + echo "$response" | jq -r '.devices[].device_id' + + # Check whether there are more pages. + has_next=$(echo "$response" | jq -r '.pagination.has_next_page') + if [ "$has_next" != "true" ]; then + break + fi + + # Get the next page cursor. + next_cursor=$(echo "$response" | jq -r '.pagination.next_page_cursor') + if [ -z "$next_cursor" ] || [ "$next_cursor" = "null" ]; then + break + fi + + # Fetch the next page. + response=$(curl -X 'GET' \ + 'https://connect.getseam.com/devices/list' \ + -H 'accept: application/json' \ + -H "Authorization: Bearer ${SEAM_API_KEY}" \ + -H 'Content-Type: application/json' \ + -d "{ + \"limit\": 20, + \"page_cursor\": \"${next_cursor}\" + }") +done +``` + +**Response:** + +``` +"11111111-1111-1111-1111-444444444444" +"11111111-1111-1111-2222-444444444444" +... +``` + + + + + +**Code:** + +```python +paginator = seam.create_paginator(seam.devices.list, {"limit": 20}) + +for device in paginator.flatten(): + print(device.device_id) +``` + +**Output:** + +``` +'11111111-1111-1111-1111-444444444444' +'11111111-1111-1111-2222-444444444444' +... +``` + + + + + +**Code:** + +```ruby +paginator = seam.create_paginator(seam.devices.method(:list), {limit: 20}) + +paginator.flatten.each do |device| + puts device.device_id +end +``` + +**Output:** + +``` +"11111111-1111-1111-1111-444444444444" +"11111111-1111-1111-2222-444444444444" +... +``` + + + + + +**Code:** + +```php +$pages = $seam->createPaginator( + fn($p) => $seam->devices->list(...$p), + ["limit" => 20] +); + +foreach ($pages->flatten() as $device) { + print $device->device_id . "\n"; +} +``` + +**Output:** + +```json +"11111111-1111-1111-1111-444444444444" +"11111111-1111-1111-2222-444444444444" +... +``` + + + + + +**Code:** + +```csharp +// Coming soon! +``` + +**Output:** + +```json +// Coming soon! +``` + + + + +--- + +## Return All Resources Across All Pages as an Array + +You can iterate over all resources within all pages and return a single array or list. + +The following example returns an array containing all devices: + + + + +**Code:** + +```javascript +const pages = seam.createPaginator( + seam.devices.list({ + limit: 20, + }), +) + +const devices = await pages.flattenToArray() +``` + +**Output:** + +```json +[ + { + device_id: '11111111-1111-1111-1111-444444444444', + ... + }, + { + device_id: '11111111-1111-1111-2222-444444444444', + ... + }, + ... +] +``` + + + + + +**Request:** + +```bash +# Get the first page. +# Use GET or POST. +response=$(curl -X 'GET' \ + 'https://connect.getseam.com/devices/list' \ + -H 'accept: application/json' \ + -H "Authorization: Bearer ${SEAM_API_KEY}" \ + -H 'Content-Type: application/json' \ + -d '{ + "limit": 20 + }') + +# Process all pages. +while true; do + # Extract all devices from the current page and add them + # the all_devices array. + devices=$(echo "$response" | jq -c '.devices[]') + while IFS= read -r device; do + [ -n "$device" ] && all_devices+=("$device") + done <<< "$devices" + + # Check whether there are more pages. + has_next=$(echo "$response" | jq -r '.pagination.has_next_page') + if [ "$has_next" != "true" ]; then + break + fi + + # Get the next page cursor. + next_cursor=$(echo "$response" | jq -r '.pagination.next_page_cursor') + if [ -z "$next_cursor" ] || [ "$next_cursor" = "null" ]; then + break + fi + + # Fetch the next page. + response=$(curl -X 'GET' \ + 'https://connect.getseam.com/devices/list' \ + -H 'accept: application/json' \ + -H "Authorization: Bearer ${SEAM_API_KEY}" \ + -H 'Content-Type: application/json' \ + -d "{ + \"limit\": 20, + \"page_cursor\": \"${next_cursor}\" + }") +done +``` + +**Response:** + +```json +[ + { + device_id: '11111111-1111-1111-1111-444444444444', + ... + }, + { + device_id: '11111111-1111-1111-2222-444444444444', + ... + }, + ... +] +``` + + + + + +**Code:** + +```python +paginator = seam.create_paginator(seam.devices.list, {"limit": 20}) + +all_devices = paginator.flatten_to_list() +``` + +**Output:** + +``` +[ + Device( + device_id='11111111-1111-1111-1111-444444444444', + ... + ), + Device( + device_id='11111111-1111-1111-2222-444444444444', + ... + ), + ... +] +``` + + + + + +**Code:** + +```ruby +paginator = seam.create_paginator(seam.devices.method(:list), {limit: 20}) + +all_devices = paginator.flatten_to_list +``` + +**Output:** + +``` +[ + , + , + ... +] +``` + + + + + +**Code:** + +```php +$pages = $seam->createPaginator( + fn($p) => $seam->devices->list(...$p), + ["limit" => 20] +); + +$deviecs = $pages->flattenToArray(); +``` + +**Output:** + +```json +[ + { + "device_id": "11111111-1111-1111-1111-444444444444", + ... + }, + { + "device_id": "11111111-1111-1111-2222-444444444444", + ... + }, + ... +] +``` + + + + + +**Code:** + +```csharp +// Coming soon! +``` + +**Output:** + +```json +// Coming soon! +``` + + + diff --git a/mintlify-codegen/source/api/phones/simulate/object.mdx b/mintlify-codegen/source/api/phones/simulate/object.mdx new file mode 100644 index 000000000..58a0f2614 --- /dev/null +++ b/mintlify-codegen/source/api/phones/simulate/object.mdx @@ -0,0 +1,10 @@ +--- +title: 'Phone Simulations' +description: 'Use the phone simulation endpoint to create a simulated phone in a sandbox workspace so you can test mobile access flows for a user identity.' +--- + +## Endpoints + +[**`/phones/simulate/create_sandbox_phone`**](./create_sandbox_phone) + +Creates a new simulated phone in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity). diff --git a/mintlify-codegen/source/api/rate-limits-and-guardrails.mdx b/mintlify-codegen/source/api/rate-limits-and-guardrails.mdx new file mode 100644 index 000000000..485767098 --- /dev/null +++ b/mintlify-codegen/source/api/rate-limits-and-guardrails.mdx @@ -0,0 +1,63 @@ +--- +title: 'Rate Limits and Guardrails' +description: 'Learn the Seam API rate limits and guardrails, how 429 Too Many Requests responses work, and how to retry requests for reliable device load.' +--- + +In order to provide reliable service for all of our customers and API load predictability for our device partners, we have a number of rate limits and guardrails in place. + +## Rate Limits + +For requests with rate limits, exceeding these limits results in the corresponding API calls failing with a `429 Too Many Requests` response. You must then retry your request after the appropriate amount of time. + +We enforce the following rate limits on a per-device basis: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OperationLimit
+ + Create an access code + + 10 access code creations per minute
+ + Update an access code + + 10 access code updates per minute
+ + Delete an access code + + 20 access code deletions per minute
+ + Lock a lock + + 15 lock requests per minute
+ + Unlock a lock + + 15 unlock requests per minute
diff --git a/mintlify-codegen/source/api/thermostats/object.mdx b/mintlify-codegen/source/api/thermostats/object.mdx new file mode 100644 index 000000000..93087e6ef --- /dev/null +++ b/mintlify-codegen/source/api/thermostats/object.mdx @@ -0,0 +1,3635 @@ +--- +title: 'The Thermostat Object' +description: 'Learn how the device object represents a thermostat connected to Seam, including its climate properties, capabilities, errors, warnings, and events.' +--- + +## The device Object for Thermostats + + +Represents a [thermostat](/capability-guides/thermostats). + +You can use the Seam API to perform the following management and monitoring actions for thermostats: + +- Monitor current thermostat settings and readings. +- Configure [temperature thresholds](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds). If the thermostat reports a temperature outside these thresholds, Seam automatically alerts you. +- Make immediate changes to [thermostat climate settings](/capability-guides/thermostats/configure-current-climate-settings), such as the HVAC mode and fan mode. +- [Create](/capability-guides/thermostats/creating-and-managing-climate-presets) and [schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) climate presets, including a fallback climate preset. +- Create daily and weekly [thermostat programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs). + +The Seam API represents a thermostat as a `device` resource that includes both basic device properties and thermostat-specific properties. + +--- + + + + +A thermostat device resource. + +```json +{ + "can_hvac_cool": true, + "can_hvac_heat": true, + "can_hvac_heat_cool": true, + "can_turn_off_hvac": true, + "capabilities_supported": ["thermostat"], + "connected_account_id": "a0b1c2d3-e4f5-6a7b-8c9d-0e1f2a3b4c5d", + "created_at": "2024-10-03T22:12:15.666Z", + "custom_metadata": { "id": "internalId1" }, + "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", + "device_type": "ecobee_thermostat", + "display_name": "Living Room", + "errors": [], + "is_managed": true, + "space_ids": [], + "location": { + "location_name": "2948 20th St, San Francisco, CA, 94110, US", + "timezone": "America/Los_Angeles" + }, + "nickname": "Living Room", + "properties": { + "active_climate_preset": { + "can_delete": true, + "can_edit": true, + "climate_preset_key": "sleep", + "cooling_set_point_celsius": 23.88888888888889, + "display_name": "Sleep", + "fan_mode_setting": "auto", + "heating_set_point_celsius": 17.77777777777778, + "hvac_mode_setting": "heat_cool", + "manual_override_allowed": true + }, + "appearance": { "name": "Living Room" }, + "available_climate_presets": [ + { + "climate_preset_key": "sleep", + "can_edit": true, + "can_delete": true, + "can_use_with_thermostat_daily_programs": false, + "name": "Sleep", + "display_name": "Sleep", + "fan_mode_setting": "auto", + "hvac_mode_setting": "heat_cool", + "manual_override_allowed": true, + "cooling_set_point_celsius": 23.88888888888889, + "heating_set_point_celsius": 17.77777777777778, + "cooling_set_point_fahrenheit": 75, + "heating_set_point_fahrenheit": 64 + }, + { + "climate_preset_key": "home", + "can_edit": true, + "can_delete": true, + "can_use_with_thermostat_daily_programs": false, + "name": "Home", + "display_name": "Home", + "fan_mode_setting": "auto", + "hvac_mode_setting": "heat_cool", + "manual_override_allowed": false, + "cooling_set_point_celsius": 23.88888888888889, + "heating_set_point_celsius": 17.77777777777778, + "cooling_set_point_fahrenheit": 75, + "heating_set_point_fahrenheit": 64 + }, + { + "climate_preset_key": "work", + "can_edit": true, + "can_delete": true, + "can_use_with_thermostat_daily_programs": false, + "name": "Work", + "display_name": "Work", + "fan_mode_setting": "auto", + "hvac_mode_setting": "heat_cool", + "manual_override_allowed": false, + "cooling_set_point_celsius": 23.88888888888889, + "heating_set_point_celsius": 17.77777777777778, + "cooling_set_point_fahrenheit": 75, + "heating_set_point_fahrenheit": 64 + } + ], + "available_fan_mode_settings": ["auto", "on"], + "available_hvac_mode_settings": ["cool", "heat", "heat_cool", "off"], + "current_climate_setting": { + "display_name": "Manual Setting", + "fan_mode_setting": "auto", + "heating_set_point_celsius": 25, + "heating_set_point_fahrenheit": 77, + "hvac_mode_setting": "heat", + "manual_override_allowed": true + }, + "ecobee_metadata": { + "device_name": "Living Room", + "ecobee_device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0" + }, + "fallback_climate_preset_key": "eco", + "fan_mode_setting": "auto", + "has_direct_power": true, + "image_alt_text": "Ecobee 3 Lite Thermostat", + "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png&q=75&w=128", + "is_cooling": false, + "is_fan_running": false, + "is_heating": false, + "is_temporary_manual_override_active": false, + "manufacturer": "ecobee", + "max_cooling_set_point_celsius": 33.333333333333336, + "max_cooling_set_point_fahrenheit": 92, + "max_heating_set_point_celsius": 26.11111111111111, + "max_heating_set_point_fahrenheit": 79, + "min_cooling_set_point_celsius": 18.333333333333336, + "min_cooling_set_point_fahrenheit": 65, + "min_heating_cooling_delta_celsius": 2.7777777777777777, + "min_heating_cooling_delta_fahrenheit": 5, + "min_heating_set_point_celsius": 7.222222222222222, + "min_heating_set_point_fahrenheit": 45, + "model": { + "display_name": "Thermostat", + "manufacturer_display_name": "Ecobee" + }, + "name": "Living Room", + "online": true, + "relative_humidity": 0.36, + "temperature_celsius": 21.11111111111111, + "temperature_fahrenheit": 70, + "temperature_threshold": { + "lower_limit_celsius": 16.66666666666667, + "lower_limit_fahrenheit": 62, + "upper_limit_celsius": 26.66666666666667, + "upper_limit_fahrenheit": 80 + }, + "thermostat_daily_programs": [ + { + "thermostat_daily_program_id": "1a2b3c4d-5e6f-7890-1234-56789abcdef1", + "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", + "name": "Weekday Program", + "periods": [ + { "starts_at_time": "00:00:00", "climate_preset_key": "sleep" }, + { "starts_at_time": "07:00:00", "climate_preset_key": "home" }, + { "starts_at_time": "09:00:00", "climate_preset_key": "work" }, + { "starts_at_time": "18:00:00", "climate_preset_key": "home" }, + { "starts_at_time": "22:00:00", "climate_preset_key": "sleep" } + ], + "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab", + "created_at": "2025-05-30T04:01:25.455Z" + }, + { + "thermostat_daily_program_id": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f90", + "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", + "name": "Weekend Program", + "periods": [ + { "starts_at_time": "00:00:00", "climate_preset_key": "sleep" }, + { "starts_at_time": "08:00:00", "climate_preset_key": "home" }, + { "starts_at_time": "23:00:00", "climate_preset_key": "sleep" } + ], + "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab", + "created_at": "2025-05-30T04:02:19.952Z" + } + ], + "thermostat_weekly_program": null + }, + "warnings": [], + "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab" +} +``` + + + + + + +```json Thermostat Device +{ + "can_hvac_cool": true, + "can_hvac_heat": true, + "can_hvac_heat_cool": true, + "can_turn_off_hvac": true, + "capabilities_supported": [ + "thermostat" + ], + "connected_account_id": "a0b1c2d3-e4f5-6a7b-8c9d-0e1f2a3b4c5d", + "created_at": "2024-10-03T22:12:15.666Z", + "custom_metadata": { + "id": "internalId1" + }, + "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", + "device_type": "ecobee_thermostat", + "display_name": "Living Room", + "errors": [], + "is_managed": true, + "space_ids": [], + "location": { + "location_name": "2948 20th St, San Francisco, CA, 94110, US", + "timezone": "America/Los_Angeles" + }, + "nickname": "Living Room", + "properties": { + "active_climate_preset": { + "can_delete": true, + "can_edit": true, + "climate_preset_key": "sleep", + "cooling_set_point_celsius": 23.88888888888889, + "display_name": "Sleep", + "fan_mode_setting": "auto", + "heating_set_point_celsius": 17.77777777777778, + "hvac_mode_setting": "heat_cool", + "manual_override_allowed": true + }, + "appearance": { + "name": "Living Room" + }, + "available_climate_presets": [ + { + "climate_preset_key": "sleep", + "can_edit": true, + "can_delete": true, + "can_use_with_thermostat_daily_programs": false, + "name": "Sleep", + "display_name": "Sleep", + "fan_mode_setting": "auto", + "hvac_mode_setting": "heat_cool", + "manual_override_allowed": true, + "cooling_set_point_celsius": 23.88888888888889, + "heating_set_point_celsius": 17.77777777777778, + "cooling_set_point_fahrenheit": 75, + "heating_set_point_fahrenheit": 64 + }, + { + "climate_preset_key": "home", + "can_edit": true, + "can_delete": true, + "can_use_with_thermostat_daily_programs": false, + "name": "Home", + "display_name": "Home", + "fan_mode_setting": "auto", + "hvac_mode_setting": "heat_cool", + "manual_override_allowed": false, + "cooling_set_point_celsius": 23.88888888888889, + "heating_set_point_celsius": 17.77777777777778, + "cooling_set_point_fahrenheit": 75, + "heating_set_point_fahrenheit": 64 + }, + { + "climate_preset_key": "work", + "can_edit": true, + "can_delete": true, + "can_use_with_thermostat_daily_programs": false, + "name": "Work", + "display_name": "Work", + "fan_mode_setting": "auto", + "hvac_mode_setting": "heat_cool", + "manual_override_allowed": false, + "cooling_set_point_celsius": 23.88888888888889, + "heating_set_point_celsius": 17.77777777777778, + "cooling_set_point_fahrenheit": 75, + "heating_set_point_fahrenheit": 64 + } + ], + "available_fan_mode_settings": [ + "auto", + "on" + ], + "available_hvac_mode_settings": [ + "cool", + "heat", + "heat_cool", + "off" + ], + "current_climate_setting": { + "display_name": "Manual Setting", + "fan_mode_setting": "auto", + "heating_set_point_celsius": 25, + "heating_set_point_fahrenheit": 77, + "hvac_mode_setting": "heat", + "manual_override_allowed": true + }, + "ecobee_metadata": { + "device_name": "Living Room", + "ecobee_device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0" + }, + "fallback_climate_preset_key": "eco", + "fan_mode_setting": "auto", + "has_direct_power": true, + "image_alt_text": "Ecobee 3 Lite Thermostat", + "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png&q=75&w=128", + "is_cooling": false, + "is_fan_running": false, + "is_heating": false, + "is_temporary_manual_override_active": false, + "manufacturer": "ecobee", + "max_cooling_set_point_celsius": 33.333333333333336, + "max_cooling_set_point_fahrenheit": 92, + "max_heating_set_point_celsius": 26.11111111111111, + "max_heating_set_point_fahrenheit": 79, + "min_cooling_set_point_celsius": 18.333333333333336, + "min_cooling_set_point_fahrenheit": 65, + "min_heating_cooling_delta_celsius": 2.7777777777777777, + "min_heating_cooling_delta_fahrenheit": 5, + "min_heating_set_point_celsius": 7.222222222222222, + "min_heating_set_point_fahrenheit": 45, + "model": { + "display_name": "Thermostat", + "manufacturer_display_name": "Ecobee" + }, + "name": "Living Room", + "online": true, + "relative_humidity": 0.36, + "temperature_celsius": 21.11111111111111, + "temperature_fahrenheit": 70, + "temperature_threshold": { + "lower_limit_celsius": 16.66666666666667, + "lower_limit_fahrenheit": 62, + "upper_limit_celsius": 26.66666666666667, + "upper_limit_fahrenheit": 80 + }, + "thermostat_daily_programs": [ + { + "thermostat_daily_program_id": "1a2b3c4d-5e6f-7890-1234-56789abcdef1", + "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", + "name": "Weekday Program", + "periods": [ + { + "starts_at_time": "00:00:00", + "climate_preset_key": "sleep" + }, + { + "starts_at_time": "07:00:00", + "climate_preset_key": "home" + }, + { + "starts_at_time": "09:00:00", + "climate_preset_key": "work" + }, + { + "starts_at_time": "18:00:00", + "climate_preset_key": "home" + }, + { + "starts_at_time": "22:00:00", + "climate_preset_key": "sleep" + } + ], + "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab", + "created_at": "2025-05-30T04:01:25.455Z" + }, + { + "thermostat_daily_program_id": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f90", + "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", + "name": "Weekend Program", + "periods": [ + { + "starts_at_time": "00:00:00", + "climate_preset_key": "sleep" + }, + { + "starts_at_time": "08:00:00", + "climate_preset_key": "home" + }, + { + "starts_at_time": "23:00:00", + "climate_preset_key": "sleep" + } + ], + "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab", + "created_at": "2025-05-30T04:02:19.952Z" + } + ], + "thermostat_weekly_program": null + }, + "warnings": [], + "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab" +} +``` + + + +--- + +## Properties + +**`can_configure_auto_lock`** _Boolean_ + +--- + +**`can_hvac_cool`** _Boolean_ + +--- + +**`can_hvac_heat`** _Boolean_ + +--- + +**`can_hvac_heat_cool`** _Boolean_ + +--- + +**`can_program_offline_access_codes`** _Boolean_ + +--- + +**`can_program_online_access_codes`** _Boolean_ + +--- + +**`can_program_thermostat_programs_as_different_each_day`** _Boolean_ + +--- + +**`can_program_thermostat_programs_as_same_each_day`** _Boolean_ + +--- + +**`can_program_thermostat_programs_as_weekday_weekend`** _Boolean_ + +--- + +**`can_remotely_lock`** _Boolean_ + +--- + +**`can_remotely_unlock`** _Boolean_ + +--- + +**`can_run_thermostat_programs`** _Boolean_ + +--- + +**`can_simulate_connection`** _Boolean_ + +--- + +**`can_simulate_disconnection`** _Boolean_ + +--- + +**`can_simulate_hub_connection`** _Boolean_ + +--- + +**`can_simulate_hub_disconnection`** _Boolean_ + +--- + +**`can_simulate_paid_subscription`** _Boolean_ + +--- + +**`can_simulate_removal`** _Boolean_ + +--- + +**`can_turn_off_hvac`** _Boolean_ + +--- + +**`can_unlock_with_code`** _Boolean_ + +--- + +**`capabilities_supported`** _List_ _of Enums_ + +Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). + +--- + +**`connected_account_id`** _UUID_ + +Unique identifier for the account associated with the device. + +--- + +**`created_at`** _Datetime_ + +Date and time at which the device object was created. + +--- + +**`custom_metadata`** _Record_ + +Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + +--- + +**`device_id`** _UUID_ + +ID of the device. + +--- + +**`device_type`** _Enum_ + +Type of the device. + + + +- akuvox_lock +- august_lock +- brivo_access_point +- butterflymx_panel +- avigilon_alta_entry +- doorking_lock +- genie_door +- igloo_lock +- linear_lock +- lockly_lock +- kwikset_lock +- nuki_lock +- salto_lock +- schlage_lock +- smartthings_lock +- wyze_lock +- yale_lock +- two_n_intercom +- controlbyweb_device +- ttlock_lock +- igloohome_lock +- four_suites_door +- dormakaba_oracode_door +- tedee_lock +- akiles_lock +- ultraloq_lock +- korelock_lock +- keynest_key +- noiseaware_activity_zone +- minut_sensor +- ecobee_thermostat +- nest_thermostat +- honeywell_resideo_thermostat +- tado_thermostat +- sensi_thermostat +- smartthings_thermostat +- ios_phone +- android_phone +- ring_camera + + +--- + +**`display_name`** _String_ + +Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. + +--- + +[**`errors`**](#errors) _List_ _of Objects_ + +Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. + +The specific structure of each object in this list depends on the value of its `error_code` field. + +Variants: + + + +Indicates that the account is disconnected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- account_disconnected + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates that the error is a [connected account](/api/connected_accounts/object) error. + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is not a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the Salto site user limit has been reached. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_subscription_limit_exceeded + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates that the error is a [connected account](/api/connected_accounts/object) error. + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is not a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the device is offline. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_offline + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the device has been removed. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_removed + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the hub is disconnected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- hub_disconnected + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the device is disconnected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_disconnected + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- empty_backup_access_code_pool + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the user is not authorized to use the August lock. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- august_lock_not_authorized + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the lock is not connected to a bridge. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- august_lock_missing_bridge + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the lock is not paired with a gateway. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- ttlock_lock_not_paired_to_gateway + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that device credentials are missing. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- missing_device_credentials + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the auxiliary heat is running. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- auxiliary_heat_running + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that a subscription is required to connect. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- subscription_required + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the Lockly lock is not connected to a Wi-Fi bridge. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- lockly_missing_wifi_bridge + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system). + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- bridge_disconnected + +--- + +**`is_bridge_error`** _Boolean_ + +Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates whether the error is related specifically to the connected account. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + +--- + +**`is_managed`** _Boolean_ + +Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices). + +--- + +**`nickname`** _String_ + +Optional nickname to describe the device, settable through Seam. + +--- + +**`space_ids`** _List_ _of UUIDs_ + +IDs of the spaces the device is in. + +--- + +[**`warnings`**](#warnings) _List_ _of Objects_ + +Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. + +The specific structure of each object in this list depends on the value of its `warning_code` field. + +Variants: + + + +Indicates that the backup access code is unhealthy. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- partial_backup_access_code_pool + + + + +Indicates that there are too many backup codes. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- many_active_backup_codes + + + + +Indicates that the Wyze Lock is not connected to a gateway. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- wyze_device_missing_gateway + + + + +Indicates that a third-party integration has been detected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- third_party_integration_detected + + + + +Indicates that the Remote Unlock feature is not enabled in the settings." + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- ttlock_lock_gateway_unlocking_not_enabled + + + + +Indicates that the gateway signal is weak. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- ttlock_weak_gateway_signal + + + + +Indicates that the device is in power saving mode and may have limited functionality. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- power_saving_mode + + + + +Indicates that the temperature threshold has been exceeded. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- temperature_threshold_exceeded + + + + +Indicates that the device appears to be unresponsive. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_communication_degraded + + + + +Indicates that a scheduled maintenance window has been detected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- scheduled_maintenance_window + + + + +Indicates that the device has a flaky connection. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_has_flaky_connection + + + + +Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_office_mode + + + + +Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_privacy_mode + + + + +Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_subscription_limit_almost_reached + + + + +Indicates that an unknown issue occurred while syncing the state of the phone with the provider. This issue may affect the proper functioning of the phone. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- unknown_issue_with_phone + + + + +Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- lockly_time_zone_not_configured + + + + +Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- ultraloq_time_zone_unknown + + + + +Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- two_n_device_missing_timezone + + + + +Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- hub_required_for_additional_capabilities + + + + +Indicates that the key is in a locker that does not support the access codes API. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- keynest_unsupported_locker + + + + +Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- accessory_keypad_setup_required + + + + +Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- unreliable_online_status + + + + +Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. + +**`active_access_code_count`** _Number_ + +Number of active access codes on the device when the warning was set. + +--- + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`max_active_access_code_count`** _Number_ + +Maximum number of active access codes supported by the device. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- max_access_codes_reached + + + +--- + +**`workspace_id`** _UUID_ + +Unique identifier for the Seam workspace associated with the device. + +--- + +## device.properties + +**`active_thermostat_schedule`** _Object_ + +Active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + **Deprecated**. Use `active_thermostat_schedule_id` with + `/thermostats/schedules/get` instead. + + + + + + Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + + + ID of the desired [thermostat](/capability-guides/thermostats) device. + + + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + + + Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + + + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + ID of the [workspace](/core-concepts/workspaces) that contains the thermostat schedule. + + + + +--- + +**`active_thermostat_schedule_id`** _UUID_ + +ID of the active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + +--- + +**`akiles_metadata`** _Object_ + +Metadata for an Akiles device. + + + + + Group ID to which to add users for an Akiles device. + + + Gadget ID for an Akiles device. + + + Gadget name for an Akiles device. + + + Product name for an Akiles device. + + + +--- + +**`assa_abloy_credential_service_metadata`** _Object_ + +ASSA ABLOY Credential Service metadata for the phone. + + + + + Endpoints associated with the phone. + + + ID of the associated endpoint. + + + Indicated whether the endpoint is active. + + Indicates whether the credential service has active endpoints associated with the phone. + + + + +--- + +**`assa_abloy_vostio_metadata`** _Object_ + +Metadata for an ASSA ABLOY Vostio system. + + + + + Encoder name for an ASSA ABLOY Vostio system. + + + +--- + +**`august_metadata`** _Object_ + +Metadata for an August device. + + + + + Indicates whether an August device has a keypad. + + + House ID for an August device. + + + House name for an August device. + + + Keypad battery level for an August device. + + + Lock ID for an August device. + + + Lock name for an August device. + + + Model for an August device. + + + +--- + +**`available_climate_preset_modes`** _List_ _of Enums_ + +Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". + +--- + +**`available_climate_presets`** _List_ _of Objects_ + +Available [climate presets](/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. + + +can_delete Boolean + +Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + can_edit + +Boolean + +Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + can_use_with_thermostat_daily_programs + +Boolean + +Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + climate_preset_key + +String + +Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + + + climate_preset_mode + +Enum + +The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + + - home + - away + - wake + - sleep + - occupied + - unoccupied + + + + + cooling_set_point_celsius + +Number + +Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + cooling_set_point_fahrenheit + +Number + +Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + display_name + +String + +Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + + + ecobee_metadata + +Object + +Metadata specific to the Ecobee climate, if applicable. + + + ecobee_metadata.climate_ref + +String + +Reference to the Ecobee climate, if applicable. + + + ecobee_metadata.is_optimized + +Boolean + +Indicates if the climate preset is optimized by Ecobee. + + + ecobee_metadata.owner + +Enum + +Indicates whether the climate preset is owned by the user or the system. + + + + - user + - system + + + + + fan_mode_setting + +Enum + +Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + + - auto + - on + - circulate + + + + + heating_set_point_celsius + +Number + +Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + heating_set_point_fahrenheit + +Number + +Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + hvac_mode_setting + +Enum + +Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + + - off + - heat + - cool + - heat_cool + - eco + + + + + manual_override_allowed + +Boolean + +Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + +**Deprecated**. Use 'thermostat_schedule.is_override_allowed' + + + name + +String + +User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + + + +--- + +**`available_fan_mode_settings`** _List_ _of Enums_ + +Fan mode settings that the thermostat supports. + +--- + +**`available_hvac_mode_settings`** _List_ _of Enums_ + +HVAC mode settings that the thermostat supports. + +--- + +**`avigilon_alta_metadata`** _Object_ + +Metadata for an Avigilon Alta system. + + + + + Entry name for an Avigilon Alta system. + + + Total count of entry relays for an Avigilon Alta system. + + + Organization name for an Avigilon Alta system. + + + Site ID for an Avigilon Alta system. + + + Site name for an Avigilon Alta system. + + + Zone ID for an Avigilon Alta system. + + + Zone name for an Avigilon Alta system. + + + +--- + +**`brivo_metadata`** _Object_ + +Metadata for a Brivo device. + + + + + Indicates whether the Brivo access point has activation (remote unlock) enabled. + + + Device name for a Brivo device. + + + +--- + +**`controlbyweb_metadata`** _Object_ + +Metadata for a ControlByWeb device. + + + + + Device ID for a ControlByWeb device. + + + Device name for a ControlByWeb device. + + + Relay name for a ControlByWeb device. + + + +--- + +**`current_climate_setting`** _Object_ + +Current climate setting. + + + + + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + + + The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + + - `home` + - `away` + - `wake` + - `sleep` + - `occupied` + - `unoccupied` + + + + + Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + + + Metadata specific to the Ecobee climate, if applicable. + + + Reference to the Ecobee climate, if applicable. + + + Indicates if the climate preset is optimized by Ecobee. + + + Indicates whether the climate preset is owned by the user or the system. + + + + - `user` + - `system` + + + + + Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + + - `auto` + - `on` + - `circulate` + + + + + Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + + - `off` + - `heat` + - `cool` + - `heat_cool` + - `eco` + + + + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + **Deprecated**. Use 'thermostat_schedule.is_override_allowed' + + + User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + + + +--- + +**`default_climate_setting`** _Object_ + + + **Deprecated**. use fallback_climate_preset_key to specify a fallback climate + preset instead. + + + + + + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + + + The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + + - `home` + - `away` + - `wake` + - `sleep` + - `occupied` + - `unoccupied` + + + + + Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + + + Metadata specific to the Ecobee climate, if applicable. + + + Reference to the Ecobee climate, if applicable. + + + Indicates if the climate preset is optimized by Ecobee. + + + Indicates whether the climate preset is owned by the user or the system. + + + + - `user` + - `system` + + + + + Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + + - `auto` + - `on` + - `circulate` + + + + + Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + + - `off` + - `heat` + - `cool` + - `heat_cool` + - `eco` + + + + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + **Deprecated**. Use 'thermostat_schedule.is_override_allowed' + + + User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + + + +--- + +**`dormakaba_oracode_metadata`** _Object_ + +Metadata for a dormakaba Oracode device. + + + + + Device ID for a dormakaba Oracode device. + + + Door ID for a dormakaba Oracode device. + + + Indicates whether a door is wireless for a dormakaba Oracode device. + + + Door name for a dormakaba Oracode device. + + + IANA time zone for a dormakaba Oracode device. + + + Predefined time slots for a dormakaba Oracode device. + + + Check in time for a time slot for a dormakaba Oracode device. + + + Checkout time for a time slot for a dormakaba Oracode device. + + + ID of a user level for a dormakaba Oracode device. + + + Prefix for a user level for a dormakaba Oracode device. + + + Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot. + + + Indicates whether a time slot for a dormakaba Oracode device is in biweekly mode. + + + Indicates whether a time slot for a dormakaba Oracode device is a master time slot. + + + Indicates whether a time slot for a dormakaba Oracode device is a one-shot time slot. + + + Name of a time slot for a dormakaba Oracode device. + + + Prefix for a time slot for a dormakaba Oracode device. + + Site ID for a dormakaba Oracode device. + + **Deprecated**. Previously marked as "@DEPRECATED."- + + site_name + + String + + Site name for a dormakaba Oracode device. + + + + +--- + +**`ecobee_metadata`** _Object_ + +Metadata for an ecobee device. + + + + + Device name for an ecobee device. + + + Device ID for an ecobee device. + + + +--- + +**`fallback_climate_preset_key`** _String_ + +Key of the [fallback climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. + +--- + +**`fan_mode_setting`** _Enum_ + + + **Deprecated**. Use `current_climate_setting.fan_mode_setting` instead. + + + + +- auto +- on +- circulate + + +--- + +**`four_suites_metadata`** _Object_ + +Metadata for a 4SUITES device. + + + + + Device ID for a 4SUITES device. + + + Device name for a 4SUITES device. + + + Reclose delay, in seconds, for a 4SUITES device. + + + +--- + +**`genie_metadata`** _Object_ + +Metadata for a Genie device. + + + + + Lock name for a Genie device. + + + Door name for a Genie device. + + + +--- + +**`honeywell_resideo_metadata`** _Object_ + +Metadata for a Honeywell Resideo device. + + + + + Device name for a Honeywell Resideo device. + + + Device ID for a Honeywell Resideo device. + + + +--- + +**`igloo_metadata`** _Object_ + +Metadata for an igloo device. + + + + + Bridge ID for an igloo device. + + + Device ID for an igloo device. + + + Model for an igloo device. + + + +--- + +**`igloohome_metadata`** _Object_ + +Metadata for an igloohome device. + + + + + Bridge ID for an igloohome device. + + + Bridge name for an igloohome device. + + + Device ID for an igloohome device. + + + Device name for an igloohome device. + + + Indicates whether a keypad is linked to a bridge for an igloohome device. + + + Keypad ID for an igloohome device. + + + +--- + +**`is_cooling`** _Boolean_ + +Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. + +--- + +**`is_fan_running`** _Boolean_ + +Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. + +--- + +**`is_heating`** _Boolean_ + +Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. + +--- + +**`is_temporary_manual_override_active`** _Boolean_ + +Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. + +--- + +**`keynest_metadata`** _Object_ + +Metadata for a KeyNest device. + + + + + Address for a KeyNest device. + + + Current or last store ID for a KeyNest device. + + + Current status for a KeyNest device. + + + Current user company for a KeyNest device. + + + Current user email for a KeyNest device. + + + Current user name for a KeyNest device. + + + Current user phone number for a KeyNest device. + + + Default office ID for a KeyNest device. + + + Device name for a KeyNest device. + + + Fob ID for a KeyNest device. + + + Handover method for a KeyNest device. + + + Whether the KeyNest device has a photo. + + + Whether the key is in a locker that does not support the access codes API. + + + Key ID for a KeyNest device. + + + Key notes for a KeyNest device. + + + KeyNest app user for a KeyNest device. + + + Last movement timestamp for a KeyNest device. + + + Property ID for a KeyNest device. + + + Property postcode for a KeyNest device. + + + Status type for a KeyNest device. + + + Subscription plan for a KeyNest device. + + + +--- + +**`korelock_metadata`** _Object_ + +Metadata for a Korelock device. + + + + + Device ID for a Korelock device. + + + Device name for a Korelock device. + + + Firmware version for a Korelock device. + + + Location ID for a Korelock device. Required for timebound access codes. + + + Model code for a Korelock device. + + + Serial number for a Korelock device. + + + WiFi signal strength (0-1) for a Korelock device. + + + +--- + +**`kwikset_metadata`** _Object_ + +Metadata for a Kwikset device. + + + + + Device ID for a Kwikset device. + + + Device name for a Kwikset device. + + + Model number for a Kwikset device. + + + +--- + +**`lockly_metadata`** _Object_ + +Metadata for a Lockly device. + + + + + Device ID for a Lockly device. + + + Device name for a Lockly device. + + + Model for a Lockly device. + + + +--- + +**`max_cooling_set_point_celsius`** _Number_ + +Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + +--- + +**`max_cooling_set_point_fahrenheit`** _Number_ + +Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + +--- + +**`max_heating_set_point_celsius`** _Number_ + +Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + +--- + +**`max_heating_set_point_fahrenheit`** _Number_ + +Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + +--- + +**`max_thermostat_daily_program_periods_per_day`** _Number_ + +Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. + +--- + +**`max_unique_climate_presets_per_thermostat_weekly_program`** _Number_ + +Maximum number of climate presets that the thermostat can support for weekly programming. + +--- + +**`min_cooling_set_point_celsius`** _Number_ + +Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + +--- + +**`min_cooling_set_point_fahrenheit`** _Number_ + +Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + +--- + +**`min_heating_cooling_delta_celsius`** _Number_ + +Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + +--- + +**`min_heating_cooling_delta_fahrenheit`** _Number_ + +Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + +--- + +**`min_heating_set_point_celsius`** _Number_ + +Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + +--- + +**`min_heating_set_point_fahrenheit`** _Number_ + +Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + +--- + +**`minut_metadata`** _Object_ + +Metadata for a Minut device. + + + + + Device ID for a Minut device. + + + Device name for a Minut device. + + + Latest sensor values for a Minut device. + + + Latest accelerometer Z-axis reading for a Minut device. + + + Time of latest accelerometer Z-axis reading for a Minut device. + + + Value of latest accelerometer Z-axis reading for a Minut device. + + + Latest humidity reading for a Minut device. + + + Time of latest humidity reading for a Minut device. + + + Value of latest humidity reading for a Minut device. + + + Latest pressure reading for a Minut device. + + + Time of latest pressure reading for a Minut device. + + + Value of latest pressure reading for a Minut device. + + + Latest sound reading for a Minut device. + + + Time of latest sound reading for a Minut device. + + + Value of latest sound reading for a Minut device. + + + Latest temperature reading for a Minut device. + + + Time of latest temperature reading for a Minut device. + + + Value of latest temperature reading for a Minut device. + + + +--- + +**`model`** _Object_ + +Device model-related properties. + + + + + + **Deprecated**. use device.properties.model.can_connect_accessory_keypad + + + + Indicates whether the device can connect a accessory keypad. + + + Display name of the device model. + + + Indicates whether the device has a built in accessory keypad. + + + Display name that corresponds to the manufacturer-specific terminology for the device. + + + **Deprecated**. use device.can_program_offline_access_codes. + + + **Deprecated**. use device.can_program_online_access_codes. + + + +--- + +**`name`** _String_ + +Name of the device. + +**Deprecated**. use device.display_name instead + +--- + +**`nest_metadata`** _Object_ + +Metadata for a Google Nest device. + + + + + Custom device name for a Google Nest device. The device owner sets this value. + + + Device name for a Google Nest device. Google sets this value. + + + Display name for a Google Nest device. + + + Device ID for a Google Nest device. + + + +--- + +**`noiseaware_metadata`** _Object_ + +Metadata for a NoiseAware device. + + + + + Device ID for a NoiseAware device. + + + Device model for a NoiseAware device. + + + + - `indoor` + - `outdoor` + + + + + Device name for a NoiseAware device. + + + Noise level, in decibels, for a NoiseAware device. + + + Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. + + + +--- + +**`nuki_metadata`** _Object_ + +Metadata for a Nuki device. + + + + + Device ID for a Nuki device. + + + Device name for a Nuki device. + + + Indicates whether keypad 2 is paired for a Nuki device. + + + Indicates whether the keypad battery is in a critical state for a Nuki device. + + + Indicates whether the keypad is paired for a Nuki device. + + + +--- + +**`online`** _Boolean_ + +Indicates whether the device is online. + +--- + +**`relative_humidity`** _Number_ + +Reported relative humidity, as a value between 0 and 1, inclusive. + +--- + +**`ring_metadata`** _Object_ + +Metadata for a Ring device. + + + + + Device ID for a Ring device. + + + Device name for a Ring device. + + + +--- + +**`salto_ks_metadata`** _Object_ + +Metadata for a Salto KS device. + + + + + Battery level for a Salto KS device. + + + Customer reference for a Salto KS device. + + + Indicates whether the site has a Salto KS subscription that supports custom PINs. + + + Lock ID for a Salto KS device. + + + Lock type for a Salto KS device. + + + Locked state for a Salto KS device. + + + Model for a Salto KS device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + +--- + +**`salto_metadata`** _Object_ + +Metada for a Salto device. + +**Deprecated**. Use `salto_ks_metadata ` instead. + + + + + Battery level for a Salto device. + + + Customer reference for a Salto device. + + + Lock ID for a Salto device. + + + Lock type for a Salto device. + + + Locked state for a Salto device. + + + Model for a Salto device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + +--- + +**`salto_space_credential_service_metadata`** _Object_ + +Salto Space credential service metadata for the phone. + + + + + Indicates whether the credential service has an active associated phone. + + + +--- + +**`schlage_metadata`** _Object_ + +Metadata for a Schlage device. + + + + + Device ID for a Schlage device. + + + Device name for a Schlage device. + + + Model for a Schlage device. + + + +--- + +**`seam_bridge_metadata`** _Object_ + +Metadata for Seam Bridge. + + + + + Device number for Seam Bridge. + + + Name for Seam Bridge. + + + Unlock method for Seam Bridge. + + + + - `bridge` + - `doorking` + + + + + +--- + +**`sensi_metadata`** _Object_ + +Metadata for a Sensi device. + + + + + Device ID for a Sensi device. + + + Device name for a Sensi device. + + + Set to true when the device does not support the /dual-setpoints API endpoint. + + + Product type for a Sensi device. + + + +--- + +**`smartthings_metadata`** _Object_ + +Metadata for a SmartThings device. + + + + + Device ID for a SmartThings device. + + + Device name for a SmartThings device. + + + Location ID for a SmartThings device. + + + Model for a SmartThings device. + + + +--- + +**`tado_metadata`** _Object_ + +Metadata for a tado° device. + + + + + Device type for a tado° device. + + + Serial number for a tado° device. + + + +--- + +**`tedee_metadata`** _Object_ + +Metadata for a Tedee device. + + + + + Bridge ID for a Tedee device. + + + Bridge name for a Tedee device. + + + Device ID for a Tedee device. + + + Device model for a Tedee device. + + + Device name for a Tedee device. + + + Keypad ID for a Tedee device. + + + Serial number for a Tedee device. + + + +--- + +**`temperature_celsius`** _Number_ + +Reported temperature in °C. + +--- + +**`temperature_fahrenheit`** _Number_ + +Reported temperature in °F. + +--- + +**`temperature_threshold`** _Object_ + +Current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + + + Lower limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Lower limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Upper limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Upper limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + +--- + +**`thermostat_daily_program_period_precision_minutes`** _Number_ + +Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. + +--- + +**`thermostat_daily_programs`** _List_ _of Objects_ + +Configured [daily programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + + +created_at Datetime + +Date and time at which the thermostat daily program was created. + + + device_id + +UUID + +ID of the thermostat device on which the thermostat daily program is configured. + + + name + +String + +User-friendly name to identify the thermostat daily program. + + + periods + +List of Objects + +Array of thermostat daily program periods. + + + Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`. + + + Time at which the thermostat daily program period starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + thermostat_daily_program_id + + UUID + + ID of the thermostat daily program. + + + workspace_id + + UUID + + ID of the [workspace](/core-concepts/workspaces) that contains the thermostat daily program. + + + +--- + +**`thermostat_weekly_program`** _Object_ + +Current [weekly program](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + + + + + Date and time at which the thermostat weekly program was created. + + + ID of the thermostat daily program to run on Fridays. + + + ID of the thermostat daily program to run on Mondays. + + + ID of the thermostat daily program to run on Saturdays. + + + ID of the thermostat daily program to run on Sundays. + + + ID of the thermostat daily program to run on Thursdays. + + + ID of the thermostat daily program to run on Tuesdays. + + + ID of the thermostat daily program to run on Wednesdays. + + + +--- + +**`ttlock_metadata`** _Object_ + +Metadata for a TTLock device. + + + + + Feature value for a TTLock device. + + + Features for a TTLock device. + + + Indicates whether a TTLock device supports auto-lock time configuration. + + + Indicates whether a TTLock device supports an incomplete keyboard passcode. + + + Indicates whether a TTLock device supports the lock command. + + + Indicates whether a TTLock device supports a passcode. + + + Indicates whether a TTLock device supports passcode management. + + + Indicates whether a TTLock device supports unlock via gateway. + + + Indicates whether a TTLock device supports Wi-Fi. + + + Indicates whether a TTLock device has a gateway. + + + Lock alias for a TTLock device. + + + Lock ID for a TTLock device. + + + Wireless keypads for a TTLock device. + + + ID for a wireless keypad for a TTLock device. + + + Name for a wireless keypad for a TTLock device. + + + +--- + +**`two_n_metadata`** _Object_ + +Metadata for a 2N device. + + + + + Device ID for a 2N device. + + + Device name for a 2N device. + + + +--- + +**`ultraloq_metadata`** _Object_ + +Metadata for an Ultraloq device. + + + + + Device ID for an Ultraloq device. + + + Device name for an Ultraloq device. + + + Device type for an Ultraloq device. + + + IANA timezone for the Ultraloq device. + + + +--- + +**`visionline_metadata`** _Object_ + +Metadata for an ASSA ABLOY Visionline system. + + + + + Encoder ID for an ASSA ABLOY Visionline system. + + + +--- + +**`wyze_metadata`** _Object_ + +Metadata for a Wyze device. + + + + + Device ID for a Wyze device. + + + Device information model for a Wyze device. + + + Device name for a Wyze device. + + + Keypad UUID for a Wyze device. + + + Locker status (hardlock) for a Wyze device. + + + Product model for a Wyze device. + + + Product name for a Wyze device. + + + Product type for a Wyze device. + + + +--- + +## Errors + +**`auxiliary_heat_running`** + +Indicates that the auxiliary heat is running. + +--- + +**`ttlock_lock_not_paired_to_gateway`** + +Indicates that the lock is not paired with a gateway. + +--- + +**`subscription_required`** + +Indicates that a subscription is required to connect. + +--- + +**`missing_device_credentials`** + +Indicates that device credentials are missing. + +--- + +**`lockly_missing_wifi_bridge`** + +Indicates that the Lockly lock is not connected to a Wi-Fi bridge. + +--- + +**`hub_disconnected`** + +Indicates that the hub is disconnected. + +--- + +**`device_removed`** + +Indicates that the device has been removed. + +--- + +**`device_offline`** + +Indicates that the device is offline. + +--- + +**`device_disconnected`** + +Indicates that the device is disconnected. + +--- + +**`account_disconnected`** + +Indicates that the account is disconnected. + +--- + +**`bridge_disconnected`** + +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system). + +--- + +## Warnings + +**`device_communication_degraded`** + +Indicates that the device appears to be unresponsive. + +--- + +**`device_has_flaky_connection`** + +Indicates that the device has a flaky connection. + +--- + +**`lockly_time_zone_not_configured`** + +Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. + +--- + +**`salto_ks_subscription_limit_almost_reached`** + +Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. + +--- + +**`scheduled_maintenance_window`** + +Indicates that a scheduled maintenance window has been detected. + +--- + +**`temperature_threshold_exceeded`** + +Indicates that the temperature threshold has been exceeded. + +--- + +**`third_party_integration_detected`** + +Indicates that a third-party integration has been detected. + +--- + +**`ttlock_weak_gateway_signal`** + +Indicates that the gateway signal is weak. + +--- + +**`two_n_device_missing_timezone`** + +Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. + +--- + +**`ultraloq_time_zone_unknown`** + +Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. + +--- + +**`wyze_device_missing_gateway`** + +Indicates that the Wyze Lock is not connected to a gateway. + +--- + +## Endpoints + +[**`/thermostats/activate_climate_preset`**](./activate_climate_preset) + +Activates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). + +[**`/thermostats/cool`**](./cool) + +Sets a specified [thermostat](/capability-guides/thermostats) to [cool mode](/capability-guides/thermostats/configure-current-climate-settings). + +[**`/thermostats/create_climate_preset`**](./create_climate_preset) + +Creates a [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). + +[**`/thermostats/delete_climate_preset`**](./delete_climate_preset) + +Deletes a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). + +[**`/thermostats/heat`**](./heat) + +Sets a specified [thermostat](/capability-guides/thermostats) to [heat mode](/capability-guides/thermostats/configure-current-climate-settings). + +[**`/thermostats/heat_cool`**](./heat_cool) + +Sets a specified [thermostat](/capability-guides/thermostats) to [heat-cool ("auto") mode](/capability-guides/thermostats/configure-current-climate-settings). + +[**`/thermostats/list`**](./list) + +Returns a list of all [thermostats](/capability-guides/thermostats). + +[**`/thermostats/off`**](./off) + +Sets a specified [thermostat](/capability-guides/thermostats) to ["off" mode](/capability-guides/thermostats/configure-current-climate-settings). + +[**`/thermostats/set_fallback_climate_preset`**](./set_fallback_climate_preset) + +Sets a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) as the ["fallback"](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) preset for a specified [thermostat](/capability-guides/thermostats). + +[**`/thermostats/set_fan_mode`**](./set_fan_mode) + +Sets the [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) for a specified [thermostat](/capability-guides/thermostats). + +[**`/thermostats/set_hvac_mode`**](./set_hvac_mode) + +Sets the [HVAC mode](/capability-guides/thermostats/configure-current-climate-settings) for a specified [thermostat](/capability-guides/thermostats). + +[**`/thermostats/set_temperature_threshold`**](./set_temperature_threshold) + +Sets a [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range. + +[**`/thermostats/update_climate_preset`**](./update_climate_preset) + +Updates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). + +[**`/thermostats/update_weekly_program`**](./update_weekly_program) + +Updates the thermostat weekly program for a thermostat device. To configure a weekly program, specify the ID of the daily program that you want to use for each day of the week. When you update a weekly program, the set of programs that you specify overwrites any previous weekly program for the thermostat. diff --git a/mintlify-codegen/source/api/thermostats/simulate/object.mdx b/mintlify-codegen/source/api/thermostats/simulate/object.mdx new file mode 100644 index 000000000..ad1c7b8b2 --- /dev/null +++ b/mintlify-codegen/source/api/thermostats/simulate/object.mdx @@ -0,0 +1,14 @@ +--- +title: 'Thermostat Simulations' +description: 'Use the thermostat simulation endpoints to mimic HVAC mode changes and reaching a target temperature on sandbox devices to test your thermostat app.' +--- + +## Endpoints + +[**`/thermostats/simulate/hvac_mode_adjusted`**](./hvac_mode_adjusted) + +Simulates having adjusted the [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](/capability-guides/thermostats). Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). + +[**`/thermostats/simulate/temperature_reached`**](./temperature_reached) + +Simulates a [thermostat](/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). diff --git a/mintlify-codegen/source/api/user_identities/unmanaged/object.mdx b/mintlify-codegen/source/api/user_identities/unmanaged/object.mdx new file mode 100644 index 000000000..262d557f5 --- /dev/null +++ b/mintlify-codegen/source/api/user_identities/unmanaged/object.mdx @@ -0,0 +1,18 @@ +--- +title: 'Unmanaged' +description: 'Use the unmanaged user identity endpoints to get, list, and update user identities that Seam tracks but does not manage (where is_managed is false).' +--- + +## Endpoints + +[**`/user_identities/unmanaged/get`**](./get) + +Returns a specified unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). + +[**`/user_identities/unmanaged/list`**](./list) + +Returns a list of all unmanaged [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). + +[**`/user_identities/unmanaged/update`**](./update) + +Updates an unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed. diff --git a/mintlify-docs/api/workspaces/object.mdx b/mintlify-docs/api/workspaces/object.mdx index bef39f41f..c9afa45dc 100644 --- a/mintlify-docs/api/workspaces/object.mdx +++ b/mintlify-docs/api/workspaces/object.mdx @@ -3,7 +3,6 @@ title: 'The Workspace Object' description: 'Learn how the workspace object represents an isolated Seam environment that holds your devices, connected accounts, and resources, with sandbox support.' --- - ## The workspace Object Represents a Seam [workspace](https://docs.seam.co/core-concepts/workspaces). A workspace is a top-level entity that encompasses all other resources below it, such as devices, connected accounts, and Connect Webviews. Seam provides two types of workspaces. A [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) is a special type of workspace designed for testing code. Sandbox workspaces offer test device accounts and virtual devices that you can connect and control. This ability to work with virtual devices is quite handy because it removes the need to own physical devices from multiple brands. To connect real devices and systems to Seam, use a [production workspace](https://docs.seam.co/core-concepts/workspaces#production-workspaces). diff --git a/package.json b/package.json index 4a01ef75e..469364109 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "format": "prettier --write --ignore-path .prettierignore .", "preformat": "eslint --fix .", "format-code-sample-tabs": "tsx codegen/format-code-sample-tabs.ts", - "generate:mintlify": "tsx mintlify-codegen/generate.ts", + "generate:mintlify": "tsx mintlify-codegen/smith.ts", "sync:logos": "tsx mintlify-codegen/sync-logos.ts", "inject:device-lists": "tsx mintlify-codegen/inject-device-list.ts", "validate:mintlify": "cd mintlify-docs && npx @mintlify/cli@latest validate 2>&1 | tsx ../mintlify-codegen/filter-validate-output.ts", From a8b608bf06d2d84dd9b771b81b7149abd52556fb Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 6 Jul 2026 21:53:45 +0000 Subject: [PATCH 2/6] feat: generate all object pages from blueprint + data YAML MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Convert the 16 formerly hand-written object pages to generated pages, completing the rule that everything under mintlify-docs/api comes from the OpenAPI spec/blueprint or authored data in object-pages.yaml: - /locks, /thermostats, /noise_sensors: filtered views of the shared device resource using the include_groups idiom from codegen/data/paths.yaml (group-filtered properties, sub-group sections, and resource samples), with authored intros in object-pages.yaml replacing their stale migrated property dumps. - /action_attempts: synthesized resource section mirroring processActionAttemptResource in codegen/lib/layout/api-route.ts, with the action_type enum built from blueprint.actionAttempts. - simulate/ and unmanaged/ routes (11 pages): endpoint-listing pages generated from the blueprint route's documented endpoints. - /acs: namespace overview page — authored intro plus every documented acs resource with its blueprint description, linking to its object page. Supporting changes: - object-pages.yaml schema v2: endpoints/namespace page kinds, resource_type, include_groups/exclude_groups, heading, and intro fields; the handwritten flag is gone. - Object-property rendering gains a general `Enum values` accordion (previously special-cased for the Event object's event_type). - mintlify-codegen/source/ now holds only the 6 truly static pages; prettier ignores it so authored MDX bytes pass through unchanged. - Suppress the missing-entry warning for routes whose resources are all undocumented. Unlike the preceding architecture port, this change intentionally updates the content of those 16 pages: stale hand-authored property data is replaced by blueprint truth, and endpoint listings pick up the current upstream descriptions. The other 26 object pages and all events/errors pages are byte-identical; the pipeline remains idempotent and passes validate:mintlify and validate:mintlify-anchors. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01P1YTCN8DidaFWzvLYyge3N --- mintlify-codegen/data/object-pages.yaml | 342 +- mintlify-codegen/layouts/endpoints.hbs | 12 + mintlify-codegen/layouts/namespace.hbs | 16 + mintlify-codegen/layouts/object.hbs | 4 +- .../layouts/partials/object-property.hbs | 14 +- mintlify-codegen/lib/layout/endpoints-page.ts | 42 + mintlify-codegen/lib/layout/namespace-page.ts | 49 + mintlify-codegen/lib/layout/object-page.ts | 184 +- mintlify-codegen/lib/object-page-metadata.ts | 44 +- mintlify-codegen/lib/reference.ts | 80 +- .../api/access_codes/simulate/object.mdx | 10 - .../api/access_grants/unmanaged/object.mdx | 18 - .../api/access_methods/unmanaged/object.mdx | 14 - .../api/acs/encoders/simulate/object.mdx | 22 - mintlify-codegen/source/api/acs/object.mdx | 90 - .../source/api/action_attempts/object.mdx | 90 - .../connected_accounts/simulate/object.mdx | 10 - .../source/api/devices/simulate/object.mdx | 41 - mintlify-codegen/source/api/locks/object.mdx | 2865 ---------- .../source/api/locks/simulate/object.mdx | 14 - .../source/api/noise_sensors/object.mdx | 21 - .../api/noise_sensors/simulate/object.mdx | 10 - .../source/api/phones/simulate/object.mdx | 10 - .../source/api/thermostats/object.mdx | 3635 ------------ .../api/thermostats/simulate/object.mdx | 14 - .../api/user_identities/unmanaged/object.mdx | 18 - .../api/access_codes/simulate/object.mdx | 4 +- .../api/access_grants/unmanaged/object.mdx | 10 +- .../api/access_methods/unmanaged/object.mdx | 4 +- .../api/acs/encoders/simulate/object.mdx | 16 +- mintlify-docs/api/acs/object.mdx | 40 +- mintlify-docs/api/action_attempts/object.mdx | 105 +- .../connected_accounts/simulate/object.mdx | 4 +- mintlify-docs/api/devices/simulate/object.mdx | 24 +- mintlify-docs/api/locks/object.mdx | 4104 +++++--------- mintlify-docs/api/locks/simulate/object.mdx | 8 +- mintlify-docs/api/noise_sensors/object.mdx | 1464 ++++- .../api/noise_sensors/simulate/object.mdx | 4 +- mintlify-docs/api/phones/simulate/object.mdx | 4 +- mintlify-docs/api/thermostats/object.mdx | 4984 ++++++----------- .../api/thermostats/simulate/object.mdx | 8 +- .../api/user_identities/unmanaged/object.mdx | 14 +- 42 files changed, 5179 insertions(+), 13287 deletions(-) create mode 100644 mintlify-codegen/layouts/endpoints.hbs create mode 100644 mintlify-codegen/layouts/namespace.hbs create mode 100644 mintlify-codegen/lib/layout/endpoints-page.ts create mode 100644 mintlify-codegen/lib/layout/namespace-page.ts delete mode 100644 mintlify-codegen/source/api/access_codes/simulate/object.mdx delete mode 100644 mintlify-codegen/source/api/access_grants/unmanaged/object.mdx delete mode 100644 mintlify-codegen/source/api/access_methods/unmanaged/object.mdx delete mode 100644 mintlify-codegen/source/api/acs/encoders/simulate/object.mdx delete mode 100644 mintlify-codegen/source/api/acs/object.mdx delete mode 100644 mintlify-codegen/source/api/action_attempts/object.mdx delete mode 100644 mintlify-codegen/source/api/connected_accounts/simulate/object.mdx delete mode 100644 mintlify-codegen/source/api/devices/simulate/object.mdx delete mode 100644 mintlify-codegen/source/api/locks/object.mdx delete mode 100644 mintlify-codegen/source/api/locks/simulate/object.mdx delete mode 100644 mintlify-codegen/source/api/noise_sensors/object.mdx delete mode 100644 mintlify-codegen/source/api/noise_sensors/simulate/object.mdx delete mode 100644 mintlify-codegen/source/api/phones/simulate/object.mdx delete mode 100644 mintlify-codegen/source/api/thermostats/object.mdx delete mode 100644 mintlify-codegen/source/api/thermostats/simulate/object.mdx delete mode 100644 mintlify-codegen/source/api/user_identities/unmanaged/object.mdx diff --git a/mintlify-codegen/data/object-pages.yaml b/mintlify-codegen/data/object-pages.yaml index 72516d97a..9fab010b4 100644 --- a/mintlify-codegen/data/object-pages.yaml +++ b/mintlify-codegen/data/object-pages.yaml @@ -1,140 +1,212 @@ # Object-page metadata for the Mintlify API reference, keyed by API route path. # Validated by mintlify-codegen/lib/object-page-metadata.ts. # -# Every route with an object page has an entry: +# Every route with an object page has an entry; all object pages are generated. # - title: the page's frontmatter title. Also the source of the noun used in # generated events/errors page titles ("The Device Object" -> "Device"). -# - description: the page's frontmatter description (generated pages only). -# - handwritten: true marks routes whose object page is authored content in -# mintlify-codegen/source/api/ rather than generated from the blueprint. -# TODO: converge these pages (especially /locks and /thermostats, which -# duplicate blueprint property data that has since drifted) onto blueprint -# sourcing with include/exclude group filtering like codegen/data/paths.yaml, -# then drop their handwritten flags. -# -'/access_codes': - title: 'The Access Code Object' - description: 'Learn how the access_code object represents a smart lock PIN code you can customize, track, and program across hundreds of supported keypad and pinpad locks.' -'/access_codes/simulate': - title: 'Access Code Simulations' - handwritten: true -'/access_codes/unmanaged': - title: 'Unmanaged Access Codes' - description: 'Learn how the unmanaged_access_code object represents an existing smart lock PIN code that Seam tracks but does not manage until you convert it.' -'/access_grants': - title: 'The Access Grant Object' - description: 'Learn how the access_grant object grants a user identity access to spaces, entrances, and devices through mobile keys, plastic cards, and PIN codes.' -'/access_grants/unmanaged': - title: 'Unmanaged' - handwritten: true -'/access_methods': - title: 'The Access Method Object' - description: 'Learn how the access_method object describes the modes of access for an Access Grant, such as PIN codes, plastic cards, and mobile keys.' -'/access_methods/unmanaged': - title: 'Unmanaged' - handwritten: true -'/acs/access_groups': - title: 'The Access Group Object' - description: 'Learn how the acs_access_group object defines the entrances a set of access system users can reach and, in some systems, their access schedule.' -'/acs/credentials': - title: 'The Credential Object' - description: 'Learn how the acs_credential object represents the means—such as key cards, mobile keys, or PIN codes—by which an access system user gains entry.' -'/acs/encoders': - title: 'The Encoder Object' - description: 'Learn how the acs_encoder object represents a hardware device that encodes credential data onto physical key cards within an access control system.' -'/acs/encoders/simulate': - title: 'Encoder Simulations' - handwritten: true -'/acs/entrances': - title: 'The Entrance Object' - description: 'Learn how the acs_entrance object represents a secured door, gate, or zone within an access control system, and how to list its credentials.' -'/acs': - title: 'Access Control Systems' - handwritten: true -'/acs/systems': - title: 'The ACS System Object' - description: 'Learn how the acs_system object represents an access control system in which you create users and credentials to grant them access at entrances.' -'/acs/users': - title: 'The ACS User Object' - description: 'Learn how the acs_user object represents an individual—such as an employee or resident—who holds one or more credentials in an access control system.' -'/action_attempts': - title: 'The Action Attempt Object' - handwritten: true -'/client_sessions': - title: 'The Client Session Object' - description: 'Learn how the client_session object restricts your users to their own devices using a custom user_identifier_key that scopes Seam API results.' -'/connect_webviews': - title: 'The Connect Webview Object' - description: 'Learn how the connect_webview object embeds a client-side flow that walks your users through linking their device or system accounts to Seam.' -'/connected_accounts': - title: 'The Connected Account Object' - description: 'Learn how the connected_account object represents an external third-party account your user has authorized Seam to access, such as an August account.' -'/connected_accounts/simulate': - title: 'Simulate' - handwritten: true -'/customers': - title: 'The Customer Object' - description: 'Learn how the customer_portal object provides a hosted, customizable interface for managing device access that you can share or embed in your product.' -'/devices': - title: 'The Device Object' - description: 'Learn how the device object represents a smart lock, thermostat, sensor, or other device connected to Seam, including its properties and events.' -'/devices/simulate': - title: 'Device Simulations' - handwritten: true -'/devices/unmanaged': - title: 'Unmanaged Devices' - description: 'Learn how the unmanaged_device object exposes a limited set of properties and events for a device you cannot control until you convert it to managed.' -'/events': - title: 'The Event Object' - description: 'Learn how the event object represents an occurrence in your workspace, such as a device action or status change, that you can list and react to.' -'/instant_keys': - title: 'The Instant Key Object' - description: 'Learn how the instant_key object lets you issue a Bluetooth mobile key with one API call and share it by link, text, or email—no app install required.' -'/locks': - title: 'The Lock Object' - handwritten: true -'/locks/simulate': - title: 'Lock Simulations' - handwritten: true -'/noise_sensors/noise_thresholds': - title: 'Noise Thresholds' - description: 'Learn how the noise_threshold object sets the limits of noise tolerated at a property, customizable for each hour of the day on a noise sensor.' -'/noise_sensors': - title: 'The Noise Sensor Object' - handwritten: true -'/noise_sensors/simulate': - title: 'Noise Sensor Simulations' - handwritten: true -'/phones': - title: 'The Phone Object' - description: 'Learn how the phone object represents an app user mobile phone that holds mobile credentials, including its properties and lifecycle events.' -'/phones/simulate': - title: 'Phone Simulations' - handwritten: true -'/spaces': - title: 'The Space Object' - description: 'Learn how the space object groups devices and entrances together so you can assign access to an entire space and grant access more efficiently.' -'/thermostats/daily_programs': - title: 'Daily Programs' - description: 'Learn how the thermostat_daily_program object defines periods that each apply a climate preset at a starting time to automate a thermostat day.' -'/thermostats': - title: 'The Thermostat Object' - handwritten: true -'/thermostats/schedules': - title: 'Thermostat Schedules' - description: 'Learn how the thermostat_schedule object activates a climate preset on a thermostat at a starting time and deactivates it at a specified ending time.' -'/thermostats/simulate': - title: 'Thermostat Simulations' - handwritten: true -'/user_identities': - title: 'The User Identity Object' - description: 'Learn how the user_identity object links a person to their application user account so you can manage their mobile credentials and access in Seam.' -'/user_identities/unmanaged': - title: 'Unmanaged' - handwritten: true -'/webhooks': - title: 'The Webhook Object' - description: 'Learn how the webhook object lets you receive event notifications at an endpoint URL you specify, for the set of event types you choose to subscribe to.' -'/workspaces': - title: 'The Workspace Object' - description: 'Learn how the workspace object represents an isolated Seam environment that holds your devices, connected accounts, and resources, with sandbox support.' +# - description: the page's frontmatter description. +# - endpoints: true renders an endpoint-listing page from the blueprint route +# (simulate/ and unmanaged/ routes). +# - namespace: true renders a resource-listing page for a namespace route. +# - resource_type: backs the page with a specific blueprint resource when the +# route has no resource of its own (e.g. /locks is a filtered view of the +# shared device resource). +# - include_groups / exclude_groups: property-group filter for the backing +# resource, following the codegen/data/paths.yaml idiom. +# - heading: overrides the section heading (default: 'The Object'). +# - intro: authored MDX rendered in place of the blueprint resource +# description (or above a namespace's resource list). + +/access_codes: + title: The Access Code Object + description: Learn how the access_code object represents a smart lock PIN code you can customize, track, and program across hundreds of supported keypad and pinpad locks. +/access_codes/simulate: + title: Access Code Simulations + description: Use the access code simulation endpoints to create unmanaged access codes in a sandbox workspace and test your access code migration flows safely. + endpoints: true +/access_codes/unmanaged: + title: Unmanaged Access Codes + description: Learn how the unmanaged_access_code object represents an existing smart lock PIN code that Seam tracks but does not manage until you convert it. +/access_grants: + title: The Access Grant Object + description: Learn how the access_grant object grants a user identity access to spaces, entrances, and devices through mobile keys, plastic cards, and PIN codes. +/access_grants/unmanaged: + title: Unmanaged + description: Use the unmanaged Access Grant endpoints to get, list, and update Access Grants that Seam tracks but does not manage (where is_managed is false). + endpoints: true +/access_methods: + title: The Access Method Object + description: Learn how the access_method object describes the modes of access for an Access Grant, such as PIN codes, plastic cards, and mobile keys. +/access_methods/unmanaged: + title: Unmanaged + description: Use the unmanaged access method endpoints to get and list access methods that Seam tracks but does not manage, usually filtered by Access Grant. + endpoints: true +/acs/access_groups: + title: The Access Group Object + description: Learn how the acs_access_group object defines the entrances a set of access system users can reach and, in some systems, their access schedule. +/acs/credentials: + title: The Credential Object + description: Learn how the acs_credential object represents the means—such as key cards, mobile keys, or PIN codes—by which an access system user gains entry. +/acs/encoders: + title: The Encoder Object + description: Learn how the acs_encoder object represents a hardware device that encodes credential data onto physical key cards within an access control system. +/acs/encoders/simulate: + title: Encoder Simulations + description: Use the encoder simulation endpoints to make the next credential encode or scan succeed or fail, so you can test card encoder flows in a sandbox. + endpoints: true +/acs/entrances: + title: The Entrance Object + description: Learn how the acs_entrance object represents a secured door, gate, or zone within an access control system, and how to list its credentials. +/acs: + title: Access Control Systems + description: Systems for managing and monitoring access to physical spaces + namespace: true + intro: | + Access control systems centralize access authorization for buildings, which means that you can use a single system to grant users access to one or more entrances. An access control system manages the following elements: + + - Who has access + - The entrances to which users have access + - The access schedule for each user and entrance + - The access mechanism—PIN codes, mobile keys, or plastic cards—for each access grant + + To grant access using the Seam access control system API, use the following basic process: + + 1. Create `acs_user`s. + 2. Configure access for these users. + For some access control systems, configure the allowed entrances and access schedule. For other systems, use `acs_access_group`s. For details, see the [system integration guide](/device-and-system-integration-guides#access-control-systems) for your access control system. + 3. Create `acs_credential`s, which are the digital means of granting access to users, such as PIN codes, mobile keys, and plastic (RFID) cards. + If you are developing a mobile app to provide access for your users, you can also use [Seam's iOS and Android SDKs](/capability-guides/mobile-access/mobile-device-sdks) that pair with the Seam API to create and manage mobile keys. +/acs/systems: + title: The ACS System Object + description: Learn how the acs_system object represents an access control system in which you create users and credentials to grant them access at entrances. +/acs/users: + title: The ACS User Object + description: Learn how the acs_user object represents an individual—such as an employee or resident—who holds one or more credentials in an access control system. +/action_attempts: + title: The Action Attempt Object + description: Learn how the action_attempt object tracks an attempt to perform an action against a device, letting you monitor its status and final result. + resource_type: action_attempt +/client_sessions: + title: The Client Session Object + description: Learn how the client_session object restricts your users to their own devices using a custom user_identifier_key that scopes Seam API results. +/connect_webviews: + title: The Connect Webview Object + description: Learn how the connect_webview object embeds a client-side flow that walks your users through linking their device or system accounts to Seam. +/connected_accounts: + title: The Connected Account Object + description: Learn how the connected_account object represents an external third-party account your user has authorized Seam to access, such as an August account. +/connected_accounts/simulate: + title: Simulate + description: Use the connected account simulation endpoint to disconnect an account from Seam in a sandbox workspace and test how your app handles disconnections. + endpoints: true +/customers: + title: The Customer Object + description: Learn how the customer_portal object provides a hosted, customizable interface for managing device access that you can share or embed in your product. +/devices: + title: The Device Object + description: Learn how the device object represents a smart lock, thermostat, sensor, or other device connected to Seam, including its properties and events. +/devices/simulate: + title: Device Simulations + description: Use the device simulation endpoints to connect, disconnect, and remove sandbox devices so you can test how your app handles device state changes. + endpoints: true +/devices/unmanaged: + title: Unmanaged Devices + description: Learn how the unmanaged_device object exposes a limited set of properties and events for a device you cannot control until you convert it to managed. +/events: + title: The Event Object + description: Learn how the event object represents an occurrence in your workspace, such as a device action or status change, that you can list and react to. +/instant_keys: + title: The Instant Key Object + description: Learn how the instant_key object lets you issue a Bluetooth mobile key with one API call and share it by link, text, or email—no app install required. +/locks: + title: The Lock Object + description: Learn how the device object represents a smart lock connected to Seam, including its lock-specific properties, capabilities, errors, and events. + resource_type: device + include_groups: + - locks + - access_codes + heading: The device Object for Locks + intro: | + Represents a [lock](/low-level-apis/smart-locks). + + The Seam API enables you to control connected smart locks from a wide variety of manufacturers, including locks that provide online and offline [access code](/low-level-apis/smart-locks/access-codes) programming. + + Depending on the smart lock brand and model, actions that you can perform include remote unlock, remote lock, and programming access codes. You can also view a lock's properties, capabilities, and status. Further, you can monitor for unlock and lock events. + + See also [Webhooks](/developer-tools/webhooks). +/locks/simulate: + title: Lock Simulations + description: Use the lock simulation endpoints to mimic keypad code entry and manual locking on sandbox August devices so you can test your smart lock app. + endpoints: true +/noise_sensors/noise_thresholds: + title: Noise Thresholds + description: Learn how the noise_threshold object sets the limits of noise tolerated at a property, customizable for each hour of the day on a noise sensor. +/noise_sensors: + title: The Noise Sensor Object + description: Learn how the device object represents a noise sensor that measures sound levels, lets you configure thresholds, and emits disturbance events. + resource_type: device + include_groups: + - noise_sensors + heading: The device Object for Noise Sensors + intro: | + Represents a [noise sensor](/capability-guides/noise-sensors). + + Noise sensors are devices that measure that sound level in a given area. You can use noise sensors to monitor noise levels remotely and receive notifications when the noise volume is too loud. The Seam API enables you to configure the [noise thresholds](/capability-guides/noise-sensors/configure-noise-threshold-settings) of a noise sensor and receive events when a disturbance is detected. You can also [simulate triggering a noise threshold](/api/noise_sensors/simulate/trigger_noise_threshold). + + The Seam API represents a noise sensor as a `device` resource that includes both basic device properties and noise sensor-specific properties. +/noise_sensors/simulate: + title: Noise Sensor Simulations + description: Use the noise sensor simulation endpoint to trigger a noise threshold in a sandbox workspace so you can test how your app responds to disturbances. + endpoints: true +/phones: + title: The Phone Object + description: Learn how the phone object represents an app user mobile phone that holds mobile credentials, including its properties and lifecycle events. +/phones/simulate: + title: Phone Simulations + description: Use the phone simulation endpoint to create a simulated phone in a sandbox workspace so you can test mobile access flows for a user identity. + endpoints: true +/spaces: + title: The Space Object + description: Learn how the space object groups devices and entrances together so you can assign access to an entire space and grant access more efficiently. +/thermostats/daily_programs: + title: Daily Programs + description: Learn how the thermostat_daily_program object defines periods that each apply a climate preset at a starting time to automate a thermostat day. +/thermostats: + title: The Thermostat Object + description: Learn how the device object represents a thermostat connected to Seam, including its climate properties, capabilities, errors, warnings, and events. + resource_type: device + include_groups: + - thermostats + heading: The device Object for Thermostats + intro: | + Represents a [thermostat](/capability-guides/thermostats). + + You can use the Seam API to perform the following management and monitoring actions for thermostats: + + - Monitor current thermostat settings and readings. + - Configure [temperature thresholds](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds). If the thermostat reports a temperature outside these thresholds, Seam automatically alerts you. + - Make immediate changes to [thermostat climate settings](/capability-guides/thermostats/configure-current-climate-settings), such as the HVAC mode and fan mode. + - [Create](/capability-guides/thermostats/creating-and-managing-climate-presets) and [schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) climate presets, including a fallback climate preset. + - Create daily and weekly [thermostat programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs). + + The Seam API represents a thermostat as a `device` resource that includes both basic device properties and thermostat-specific properties. +/thermostats/schedules: + title: Thermostat Schedules + description: Learn how the thermostat_schedule object activates a climate preset on a thermostat at a starting time and deactivates it at a specified ending time. +/thermostats/simulate: + title: Thermostat Simulations + description: Use the thermostat simulation endpoints to mimic HVAC mode changes and reaching a target temperature on sandbox devices to test your thermostat app. + endpoints: true +/user_identities: + title: The User Identity Object + description: Learn how the user_identity object links a person to their application user account so you can manage their mobile credentials and access in Seam. +/user_identities/unmanaged: + title: Unmanaged + description: Use the unmanaged user identity endpoints to get, list, and update user identities that Seam tracks but does not manage (where is_managed is false). + endpoints: true +/webhooks: + title: The Webhook Object + description: Learn how the webhook object lets you receive event notifications at an endpoint URL you specify, for the set of event types you choose to subscribe to. +/workspaces: + title: The Workspace Object + description: Learn how the workspace object represents an isolated Seam environment that holds your devices, connected accounts, and resources, with sandbox support. diff --git a/mintlify-codegen/layouts/endpoints.hbs b/mintlify-codegen/layouts/endpoints.hbs new file mode 100644 index 000000000..ce8c2ef7e --- /dev/null +++ b/mintlify-codegen/layouts/endpoints.hbs @@ -0,0 +1,12 @@ +{{> frontmatter}} + +## Endpoints + +{{#each endpoints}} +[**`{{path}}`**](/api{{path}}) + +{{description}} +{{#unless @last}} + +{{/unless}} +{{/each}} diff --git a/mintlify-codegen/layouts/namespace.hbs b/mintlify-codegen/layouts/namespace.hbs new file mode 100644 index 000000000..96129fb4d --- /dev/null +++ b/mintlify-codegen/layouts/namespace.hbs @@ -0,0 +1,16 @@ +{{> frontmatter}} + +{{intro}} + +## Resources + +{{#each resources}} +### [`{{resourceType}}`](/api{{routePath}}/object) + +{{description}} + +--- +{{#unless @last}} + +{{/unless}} +{{/each}} diff --git a/mintlify-codegen/layouts/object.hbs b/mintlify-codegen/layouts/object.hbs index 3997d8ca7..ac9a68cf2 100644 --- a/mintlify-codegen/layouts/object.hbs +++ b/mintlify-codegen/layouts/object.hbs @@ -1,10 +1,11 @@ {{> frontmatter}} {{#each resources}} -## The {{resourceType}} Object +## {{heading}} {{description}} +{{#if samples.length}} {{#each samples}} @@ -18,6 +19,7 @@ +{{/if}} --- ## Properties diff --git a/mintlify-codegen/layouts/partials/object-property.hbs b/mintlify-codegen/layouts/partials/object-property.hbs index bb40d488e..b8381493d 100644 --- a/mintlify-codegen/layouts/partials/object-property.hbs +++ b/mintlify-codegen/layouts/partials/object-property.hbs @@ -1,16 +1,13 @@ -{{#if eventTypeEnum}} - - The event type. + + {{description}} +{{#if enumValues}} -{{#each eventTypeEnum}} +{{#each enumValues}} - `{{this}}` {{/each}} - -{{else}} - - {{description}} +{{/if}} {{#if children.length}} {{#each children}} @@ -21,4 +18,3 @@ {{/if}} -{{/if}} diff --git a/mintlify-codegen/lib/layout/endpoints-page.ts b/mintlify-codegen/lib/layout/endpoints-page.ts new file mode 100644 index 000000000..20ab5af18 --- /dev/null +++ b/mintlify-codegen/lib/layout/endpoints-page.ts @@ -0,0 +1,42 @@ +import type { Blueprint } from '@seamapi/blueprint' + +import type { ObjectPageEntry } from '../object-page-metadata.js' + +export interface EndpointsPageLayoutContext { + layout: string + contents: Buffer + title: string + description: string + endpoints: Array<{ path: string; description: string }> +} + +/** + * Build the layout context for an endpoint-listing page (`endpoints: true` in + * object-pages.yaml) from the blueprint route at the page's route path — the + * Mintlify analog of the GitBook route README's Endpoints section. Returns + * null when the blueprint has no such route or it has no documented endpoints. + */ +export function setEndpointsPageLayoutContext( + blueprint: Blueprint, + routePath: string, + meta: ObjectPageEntry, +): EndpointsPageLayoutContext | null { + const route = blueprint.routes.find((r) => r.path === routePath) + if (route == null) return null + + const endpoints = route.endpoints + .filter((endpoint) => !endpoint.isUndocumented) + .map((endpoint) => ({ + path: endpoint.path, + description: endpoint.description.trim(), + })) + if (endpoints.length === 0) return null + + return { + layout: 'endpoints.hbs', + contents: Buffer.from(''), + title: meta.title, + description: meta.description, + endpoints, + } +} diff --git a/mintlify-codegen/lib/layout/namespace-page.ts b/mintlify-codegen/lib/layout/namespace-page.ts new file mode 100644 index 000000000..6d513639d --- /dev/null +++ b/mintlify-codegen/lib/layout/namespace-page.ts @@ -0,0 +1,49 @@ +import type { Blueprint } from '@seamapi/blueprint' + +import type { ObjectPageEntry } from '../object-page-metadata.js' + +export interface NamespacePageLayoutContext { + layout: string + contents: Buffer + title: string + description: string + intro: string + resources: Array<{ + resourceType: string + routePath: string + description: string + }> +} + +/** + * Build the layout context for a namespace overview page (`namespace: true` + * in object-pages.yaml, e.g. /acs): the authored intro followed by every + * documented resource under the namespace with its blueprint description, + * linking to the resource's object page. + */ +export function setNamespacePageLayoutContext( + blueprint: Blueprint, + routePath: string, + meta: ObjectPageEntry, +): NamespacePageLayoutContext { + const resources = blueprint.resources + .filter( + (resource) => + resource.routePath.startsWith(`${routePath}/`) && + !resource.isUndocumented, + ) + .map((resource) => ({ + resourceType: resource.resourceType, + routePath: resource.routePath, + description: resource.description, + })) + + return { + layout: 'namespace.hbs', + contents: Buffer.from(''), + title: meta.title, + description: meta.description, + intro: meta.intro?.trim() ?? '', + resources, + } +} diff --git a/mintlify-codegen/lib/layout/object-page.ts b/mintlify-codegen/lib/layout/object-page.ts index eff70e1c6..4ca5b0198 100644 --- a/mintlify-codegen/lib/layout/object-page.ts +++ b/mintlify-codegen/lib/layout/object-page.ts @@ -2,6 +2,7 @@ import type { Blueprint } from '@seamapi/blueprint' import { hiddenProperties } from '../config.js' import { formatTypeBasic } from '../format-type.js' +import type { ObjectPageEntry } from '../object-page-metadata.js' type Resource = Blueprint['resources'][number] @@ -23,14 +24,15 @@ export interface PropertyFieldContext { deprecated: boolean description: string children: PropertyFieldContext[] - // Set only on the Event object page's `event_type` field: the full list of - // event types, rendered as an `Enum values` accordion instead of the - // description body. - eventTypeEnum?: string[] + // Renders an `Enum values` accordion after the description. Set on the Event + // object page's `event_type` field (the full event-type list) and on the + // synthesized action_attempt enums. + enumValues?: string[] } interface ResourceSectionContext { resourceType: string + heading: string description: string samples: Array<{ title: string; json: string }> fields: PropertyFieldContext[] @@ -45,6 +47,42 @@ export interface ObjectPageLayoutContext { resources: ResourceSectionContext[] } +interface GroupOptions { + include?: string[] | undefined + exclude?: string[] | undefined +} + +/** Property-group filter following the codegen/data/paths.yaml idiom: the + * ungrouped properties are always kept; `include` keeps only the listed + * groups; `exclude` drops the listed groups. */ +const keepGroup = + ({ include, exclude }: GroupOptions) => + (propertyGroupKey: string | null | undefined): boolean => { + if (propertyGroupKey == null) return true + if (include != null && !include.includes(propertyGroupKey)) return false + if (exclude != null && exclude.includes(propertyGroupKey)) return false + return true + } + +/** Resource-sample filter for group-filtered pages, ported verbatim from + * codegen/lib/layout/api-route.ts `resourceSampleFilter` (fuzzy title match on + * the singularized group key). */ +const resourceSampleFilter = + ({ include, exclude }: GroupOptions) => + ({ title }: { title: string }): boolean => { + if (include != null) { + return include.some((x) => + title.toLowerCase().includes(x.split('_')[0]?.slice(0, -1) ?? ''), + ) + } + if (exclude != null) { + return !exclude.some((x) => + title.toLowerCase().includes(x.split('_')[0]?.slice(0, -1) ?? ''), + ) + } + return true + } + function shouldHide(resourceType: string, prop: BlueprintProperty): boolean { if (prop.isUndocumented) return true return hiddenProperties[resourceType]?.has(prop.name) ?? false @@ -80,13 +118,23 @@ function buildField( * first, then the grouped properties in group insertion order (both rendered * as one `## Properties` run of fields), then the nested `properties` * sub-group sections (e.g. Hardware, Locks on the device resource). + * + * `groupOptions` narrows a shared resource to a sub-category view (e.g. the + * /locks page keeps only the `locks` and `access_codes` property groups and + * samples of the `device` resource). */ function buildResourceSection( resource: Resource, eventTypes: string[] | undefined, + meta: ObjectPageEntry, ): ResourceSectionContext { const { resourceType } = resource const properties = resource.properties as unknown as BlueprintProperty[] + const groupOptions: GroupOptions = { + include: meta.include_groups, + exclude: meta.exclude_groups, + } + const keep = keepGroup(groupOptions) const ungrouped = properties.filter( (p) => !shouldHide(resourceType, p) && !p.propertyGroupKey, @@ -94,6 +142,7 @@ function buildResourceSection( const grouped = new Map() for (const p of properties) { if (shouldHide(resourceType, p) || !p.propertyGroupKey) continue + if (!keep(p.propertyGroupKey)) continue const existing = grouped.get(p.propertyGroupKey) if (existing) existing.push(p) else grouped.set(p.propertyGroupKey, [p]) @@ -106,7 +155,10 @@ function buildResourceSection( // The Event object page's `event_type` field carries the full enum. if (eventTypes != null) { const eventTypeField = fields.find((f) => f.name === 'event_type') - if (eventTypeField != null) eventTypeField.eventTypeEnum = eventTypes + if (eventTypeField != null) { + eventTypeField.enumValues = eventTypes + eventTypeField.description = 'The event type.' + } } const subGroups: ResourceSectionContext['subGroups'] = [] @@ -114,7 +166,9 @@ function buildResourceSection( (p) => p.name === 'properties' && p.format === 'object', ) if (propsField?.properties && propsField.properties.length > 0) { - const groups = propsField.propertyGroups ?? [] + const groups = (propsField.propertyGroups ?? []).filter((g) => + keep(g.propertyGroupKey), + ) if (groups.length > 0) { for (const group of groups) { const groupProps = propsField.properties.filter( @@ -128,7 +182,7 @@ function buildResourceSection( fields: groupProps.map((p) => buildField(p, resourceType)), }) } - } else { + } else if ((propsField.propertyGroups ?? []).length === 0) { const visibleChildren = propsField.properties.filter( (p) => !shouldHide(resourceType, p), ) @@ -143,11 +197,14 @@ function buildResourceSection( return { resourceType, - description: resource.description, - samples: resource.resourceSamples.map((s) => ({ - title: s.title, - json: JSON.stringify(s.properties, null, 2), - })), + heading: meta.heading ?? `The ${resourceType} Object`, + description: meta.intro?.trim() ?? resource.description, + samples: resource.resourceSamples + .filter(resourceSampleFilter(groupOptions)) + .map((s) => ({ + title: s.title, + json: JSON.stringify(s.properties, null, 2), + })), fields, subGroups, } @@ -155,7 +212,7 @@ function buildResourceSection( export function setObjectPageLayoutContext( resources: Resource[], - meta: { title: string; description: string }, + meta: ObjectPageEntry, eventTypes: string[] | undefined, ): ObjectPageLayoutContext { return { @@ -163,6 +220,105 @@ export function setObjectPageLayoutContext( contents: Buffer.from(''), title: meta.title, description: meta.description, - resources: resources.map((r) => buildResourceSection(r, eventTypes)), + resources: resources.map((r) => buildResourceSection(r, eventTypes, meta)), + } +} + +/** + * The action_attempt object page. The blueprint has no action_attempt + * resource — it models action attempts as `blueprint.actionAttempts` variants — + * so the section is synthesized, mirroring `processActionAttemptResource` in + * codegen/lib/layout/api-route.ts (including its hardcoded core properties and + * the `action_type` enum built from the non-deprecated, documented attempts). + */ +export function setActionAttemptPageLayoutContext( + blueprint: Blueprint, + meta: ObjectPageEntry, +): ObjectPageLayoutContext { + const actionTypes = blueprint.actionAttempts + .filter( + ({ isDeprecated, isUndocumented }) => !(isUndocumented || isDeprecated), + ) + .filter( + ({ actionAttemptType }) => + !['CREATE', 'DELETE', 'UPDATE', 'SYNC'].includes( + actionAttemptType.split('_')[0] ?? '', + ), + ) + .map(({ actionAttemptType }) => actionAttemptType) + + const field = ( + name: string, + type: string, + description: string, + enumValues?: string[], + ): PropertyFieldContext => ({ + name, + type, + deprecated: false, + description, + children: [], + ...(enumValues == null ? {} : { enumValues }), + }) + + return { + layout: 'object.hbs', + contents: Buffer.from(''), + title: meta.title, + description: meta.description, + resources: [ + { + resourceType: 'action_attempt', + heading: meta.heading ?? 'The action_attempt Object', + description: + meta.intro?.trim() ?? + 'Represents an attempt to perform an action against a device.', + samples: [ + { + title: 'Action Attempt', + json: JSON.stringify( + { + action_attempt_id: '3f2b1c8d-1b5e-4f8c-9c7d-9a8b7c6d5e4f', + action_type: 'LOCK_DOOR', + error: null, + result: {}, + status: 'success', + }, + null, + 2, + ), + }, + ], + fields: [ + field( + 'action_attempt_id', + 'String (UUID)', + 'ID of the action attempt.', + ), + field('status', 'Enum (String)', 'Status of the action attempt.', [ + 'pending', + 'success', + 'error', + ]), + field( + 'action_type', + 'Enum (String)', + 'Type of the action attempt.', + actionTypes, + ), + field( + 'error', + 'Object', + 'Error associated with the action attempt. Null for pending and successful action attempts.', + ), + field( + 'result', + 'Object', + 'Result of the action attempt. Null for pending and errored action attempts.', + ), + ], + subGroups: [], + }, + ], } } diff --git a/mintlify-codegen/lib/object-page-metadata.ts b/mintlify-codegen/lib/object-page-metadata.ts index 7af4cc68a..2097bb44c 100644 --- a/mintlify-codegen/lib/object-page-metadata.ts +++ b/mintlify-codegen/lib/object-page-metadata.ts @@ -3,26 +3,38 @@ import { z } from 'zod' /** * Schema for data/object-pages.yaml: per-route metadata for the API-reference * object pages, keyed by API route path (e.g. `/access_codes`). Mirrors the - * codegen/lib/path-metadata.ts pattern. + * codegen/lib/path-metadata.ts pattern (including its `include_groups` / + * `exclude_groups` group-filtering idiom). * - * Routes without `handwritten` get a fully generated object page (frontmatter - * from `title`/`description`, body from the blueprint). Routes with - * `handwritten: true` are authored pages living in mintlify-codegen/source/; - * their entry only supplies the noun for generated events/errors page titles. + * Every object page is generated; the entry decides the page kind: + * - default: a resource object page. The backing resources come from the + * blueprint resources at the route (those with samples), or from + * `resource_type` when the route has no resource of its own (e.g. /locks + * is a filtered view of the shared `device` resource). + * - `endpoints: true`: an endpoint-listing page built from the blueprint + * route (simulate/ and unmanaged/ routes). + * - `namespace: true`: a resource-listing page for a namespace route + * (e.g. /acs). + * + * `title` also supplies the noun for generated events/errors page titles + * ("The Device Object" -> "Device"). `intro` is authored MDX rendered in + * place of the blueprint resource description (or above a namespace's + * resource list). */ export const ObjectPageMetadataSchema = z.record( z.string().startsWith('/'), - z.union([ - z.object({ - title: z.string().trim().min(1), - description: z.string().trim().min(1), - handwritten: z.undefined().optional(), - }), - z.object({ - title: z.string().trim().min(1), - handwritten: z.literal(true), - }), - ]), + z.object({ + title: z.string().trim().min(1), + description: z.string().trim().min(1), + endpoints: z.literal(true).optional(), + namespace: z.literal(true).optional(), + resource_type: z.string().trim().min(1).optional(), + include_groups: z.array(z.string()).optional(), + exclude_groups: z.array(z.string()).optional(), + heading: z.string().trim().min(1).optional(), + intro: z.string().trim().min(1).optional(), + }), ) export type ObjectPageMetadata = z.infer +export type ObjectPageEntry = ObjectPageMetadata[string] diff --git a/mintlify-codegen/lib/reference.ts b/mintlify-codegen/lib/reference.ts index 24516842b..5a43a1892 100644 --- a/mintlify-codegen/lib/reference.ts +++ b/mintlify-codegen/lib/reference.ts @@ -8,6 +8,7 @@ import { eventObjectRoute, inheritedErrorGroupAllowlist, } from './config.js' +import { setEndpointsPageLayoutContext } from './layout/endpoints-page.js' import { type ErrorsPageOptions, groupCodes, @@ -20,7 +21,11 @@ import { groupEventsByRoutePath, setEventsPageLayoutContext, } from './layout/events-page.js' -import { setObjectPageLayoutContext } from './layout/object-page.js' +import { setNamespacePageLayoutContext } from './layout/namespace-page.js' +import { + setActionAttemptPageLayoutContext, + setObjectPageLayoutContext, +} from './layout/object-page.js' import { type ObjectPageMetadata, ObjectPageMetadataSchema, @@ -64,9 +69,10 @@ export const reference: Metalsmith.Plugin = (files, metalsmith) => { updateErrorPages(files, blueprint, objectPages, nounFor, mintlify) } -/** One object page per route whose resources carry samples, gated on a - * non-handwritten object-pages.yaml entry (handwritten pages are authored - * content in mintlify-codegen/source/). */ +/** One object page per object-pages.yaml entry. The entry decides the page + * kind: endpoint listing, namespace overview, a view of an explicit + * `resource_type` (optionally group-filtered), or the default — the route's + * blueprint resources that carry samples. */ function updateObjectPages( files: Metalsmith.Files, blueprint: Blueprint, @@ -91,27 +97,69 @@ function updateObjectPages( ), ] - const generated: string[] = [] - for (const [routePath, resources] of resourcesByRoute) { - const meta = objectPages[routePath] - if (meta == null) { + const buildPage = ( + routePath: string, + meta: ObjectPageMetadata[string], + ): object | null => { + if (meta.endpoints) { + const context = setEndpointsPageLayoutContext(blueprint, routePath, meta) + if (context == null) { + console.log( + ` WARNING: no blueprint route with documented endpoints for ` + + `${routePath} — skipping its endpoint-listing page.`, + ) + } + return context + } + + if (meta.namespace) { + return setNamespacePageLayoutContext(blueprint, routePath, meta) + } + + if (meta.resource_type === 'action_attempt') { + // The blueprint has no action_attempt resource; the page is synthesized. + return setActionAttemptPageLayoutContext(blueprint, meta) + } + + const resources = + meta.resource_type == null + ? resourcesByRoute.get(routePath) + : blueprint.resources.filter( + (r) => r.resourceType === meta.resource_type, + ) + if (resources == null || resources.length === 0) { console.log( - ` WARNING: no object-pages.yaml entry for ${routePath} — its ` + - `resources have samples but no object page is generated. Add an ` + - `entry to mintlify-codegen/data/object-pages.yaml.`, + ` WARNING: no blueprint resources back the object page for ` + + `${routePath} — skipping. Fix its object-pages.yaml entry.`, ) - continue + return null } - if (meta.handwritten) continue - - files[objectPageKey(routePath)] = setObjectPageLayoutContext( + return setObjectPageLayoutContext( resources, meta, routePath === eventObjectRoute ? eventTypes : undefined, - ) as unknown as Metalsmith.Files[string] + ) + } + + const generated: string[] = [] + for (const [routePath, meta] of Object.entries(objectPages)) { + const context = buildPage(routePath, meta) + if (context == null) continue + files[objectPageKey(routePath)] = context as Metalsmith.Files[string] generated.push(routePath) } + // Surface blueprint routes whose resources have samples but no object page. + for (const [routePath, resources] of resourcesByRoute) { + if (objectPages[routePath] != null) continue + if (resources.every((r) => r.isUndocumented)) continue + console.log( + ` WARNING: no object-pages.yaml entry for ${routePath} — its ` + + `resources have samples but no object page is generated. Add an ` + + `entry to mintlify-codegen/data/object-pages.yaml.`, + ) + } + if (generated.length > 0) { console.log( ` Generated ${generated.length} object pages: ${generated.join(', ')}`, diff --git a/mintlify-codegen/source/api/access_codes/simulate/object.mdx b/mintlify-codegen/source/api/access_codes/simulate/object.mdx deleted file mode 100644 index 76cca742e..000000000 --- a/mintlify-codegen/source/api/access_codes/simulate/object.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: 'Access Code Simulations' -description: 'Use the access code simulation endpoints to create unmanaged access codes in a sandbox workspace and test your access code migration flows safely.' ---- - -## Endpoints - -[**`/access_codes/simulate/create_unmanaged_access_code`**](./create_unmanaged_access_code) - -Simulates the creation of an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-codegen/source/api/access_grants/unmanaged/object.mdx b/mintlify-codegen/source/api/access_grants/unmanaged/object.mdx deleted file mode 100644 index 910ad2e66..000000000 --- a/mintlify-codegen/source/api/access_grants/unmanaged/object.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 'Unmanaged' -description: 'Use the unmanaged Access Grant endpoints to get, list, and update Access Grants that Seam tracks but does not manage (where is_managed is false).' ---- - -## Endpoints - -[**`/access_grants/unmanaged/get`**](./get) - -Get an unmanaged Access Grant (where is_managed = false). - -[**`/access_grants/unmanaged/list`**](./list) - -Gets unmanaged Access Grants (where is_managed = false). - -[**`/access_grants/unmanaged/update`**](./update) - -Updates an unmanaged Access Grant to make it managed. diff --git a/mintlify-codegen/source/api/access_methods/unmanaged/object.mdx b/mintlify-codegen/source/api/access_methods/unmanaged/object.mdx deleted file mode 100644 index 03a57c2d7..000000000 --- a/mintlify-codegen/source/api/access_methods/unmanaged/object.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: 'Unmanaged' -description: 'Use the unmanaged access method endpoints to get and list access methods that Seam tracks but does not manage, usually filtered by Access Grant.' ---- - -## Endpoints - -[**`/access_methods/unmanaged/get`**](./get) - -Gets an unmanaged access method (where is_managed = false). - -[**`/access_methods/unmanaged/list`**](./list) - -Lists all unmanaged access methods (where is_managed = false), usually filtered by Access Grant. diff --git a/mintlify-codegen/source/api/acs/encoders/simulate/object.mdx b/mintlify-codegen/source/api/acs/encoders/simulate/object.mdx deleted file mode 100644 index 24f7bb24e..000000000 --- a/mintlify-codegen/source/api/acs/encoders/simulate/object.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: 'Encoder Simulations' -description: 'Use the encoder simulation endpoints to make the next credential encode or scan succeed or fail, so you can test card encoder flows in a sandbox.' ---- - -## Endpoints - -[**`/acs/encoders/simulate/next_credential_encode_will_fail`**](./next_credential_encode_will_fail) - -Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). - -[**`/acs/encoders/simulate/next_credential_encode_will_succeed`**](./next_credential_encode_will_succeed) - -Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). - -[**`/acs/encoders/simulate/next_credential_scan_will_fail`**](./next_credential_scan_will_fail) - -Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). - -[**`/acs/encoders/simulate/next_credential_scan_will_succeed`**](./next_credential_scan_will_succeed) - -Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-codegen/source/api/acs/object.mdx b/mintlify-codegen/source/api/acs/object.mdx deleted file mode 100644 index a4185d6da..000000000 --- a/mintlify-codegen/source/api/acs/object.mdx +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: 'Access Control Systems' -description: 'Systems for managing and monitoring access to physical spaces' ---- - -Access control systems centralize access authorization for buildings, which means that you can use a single system to grant users access to one or more entrances. An access control system manages the following elements: - -- Who has access -- The entrances to which users have access -- The access schedule for each user and entrance -- The access mechanism—PIN codes, mobile keys, or plastic cards—for each access grant - -To grant access using the Seam access control system API, use the following basic process: - -1. Create `acs_user`s. -2. Configure access for these users. - For some access control systems, configure the allowed entrances and access schedule. For other systems, use `acs_access_group`s. For details, see the [system integration guide](/device-and-system-integration-guides#access-control-systems) for your access control system. -3. Create `acs_credential`s, which are the digital means of granting access to users, such as PIN codes, mobile keys, and plastic (RFID) cards. - If you are developing a mobile app to provide access for your users, you can also use [Seam's iOS and Android SDKs](/capability-guides/mobile-access/mobile-device-sdks) that pair with the Seam API to create and manage mobile keys. - -## Resources - -The Access Control Systems (ACS) namespace contains the following resources: - -### [`acs_access_group`](#acs_access_group) - -Group that defines the entrances to which a set of users has access and, in some cases, the access schedule for these entrances and users. - -Some access control systems use [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. - -To learn whether your access control system supports access groups, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). - ---- - -### [`acs_credential`](#acs_credential) - -Means by which an [access control system user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems). - -An access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs. - -For each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type. - ---- - -### [`acs_encoder`](#acs_encoder) - -Represents a hardware device that encodes [credential](/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](/low-level-apis/access-systems). - -Some access control systems require credentials to be encoded onto plastic key cards using a card encoder. This process involves the following two key steps: - -1. Credential creation - Configure the access parameters for the credential. -2. Card encoding - Write the credential data onto the card using a compatible card encoder. - -Separately, the Seam API also supports card scanning, which enables you to scan and read the encoded data on a card. You can use this action to confirm consistency with access control system records or diagnose discrepancies if needed. - -See [Working with Card Encoders and Scanners](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - -To verify if your access control system requires a card encoder, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). - ---- - -### [`acs_entrance`](#acs_entrance) - -Represents an [entrance](/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](/low-level-apis/access-systems). - -In an access control system, an entrance is a secured door, gate, zone, or other method of entry. You can list details for all the `acs_entrance` resources in your workspace or get these details for a specific `acs_entrance`. You can also list all entrances associated with a specific credential, and you can list all credentials associated with a specific entrance. - ---- - -### [`acs_system`](#acs_system) - -Represents an [access control system](/low-level-apis/access-systems). - -Within an `acs_system`, create [`acs_user`s](/api/acs/users/object) and [`acs_credential`s](/api/acs/credentials/object) to grant access to the `acs_user`s. - -For details about the resources associated with an access control system, see the [access control systems namespace](/api/acs/object). - ---- - -### [`acs_user`](#acs_user) - -Represents a [user](/low-level-apis/access-systems/user-management) in an [access system](/low-level-apis/access-systems). - -An access system user typically refers to an individual who requires access, like an employee or resident. Each user can possess multiple credentials that serve as their keys or identifiers for access. The type of credential can vary widely. For example, in the Salto system, a user can have a PIN code, a mobile app account, and a fob. In other platforms, it is not uncommon for a user to have more than one of the same credential type, such as multiple key cards. Additionally, these credentials can have a schedule or validity period. - -For details about how to configure users in your access system, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). - ---- diff --git a/mintlify-codegen/source/api/action_attempts/object.mdx b/mintlify-codegen/source/api/action_attempts/object.mdx deleted file mode 100644 index d2bf35a6c..000000000 --- a/mintlify-codegen/source/api/action_attempts/object.mdx +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: 'The Action Attempt Object' -description: 'Learn how the action_attempt object tracks an attempt to perform an action against a device, letting you monitor its status and final result.' ---- - -## The action_attempt Object - - -Represents an attempt to perform an action against a device. - - - -```json Action Attempt -{ - "action_attempt_id": "3f2b1c8d-1b5e-4f8c-9c7d-9a8b7c6d5e4f", - "action_type": "LOCK_DOOR", - "error": null, - "result": {}, - "status": "success" -} -``` - - - ---- - -## Properties - -**`action_attempt_id`** _UUID_ - -ID of the action attempt. - ---- - -**`status`** _Enum_ - -Status of the action attempt. - - - -- pending -- success -- error - - ---- - -**`action_type`** _Enum_ - -Type of the action attempt. - - - -- LOCK_DOOR -- UNLOCK_DOOR -- SCAN_CREDENTIAL -- ENCODE_CREDENTIAL -- RESET_SANDBOX_WORKSPACE -- SET_FAN_MODE -- SET_HVAC_MODE -- ACTIVATE_CLIMATE_PRESET -- SIMULATE_KEYPAD_CODE_ENTRY -- SIMULATE_MANUAL_LOCK_VIA_KEYPAD -- PUSH_THERMOSTAT_PROGRAMS -- CONFIGURE_AUTO_LOCK - - ---- - -**`error`** _Object_ - -Error associated with the action attempt. Null for pending and successful action attempts. - ---- - -**`result`** _Object_ - -Result of the action attempt. Null for pending and errored action attempts. - ---- - -## Endpoints - -[**`/action_attempts/get`**](./get) - -Returns a specified [action attempt](/core-concepts/action-attempts). - -[**`/action_attempts/list`**](./list) - -Returns a list of the [action attempts](/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s. diff --git a/mintlify-codegen/source/api/connected_accounts/simulate/object.mdx b/mintlify-codegen/source/api/connected_accounts/simulate/object.mdx deleted file mode 100644 index 3533e7347..000000000 --- a/mintlify-codegen/source/api/connected_accounts/simulate/object.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: 'Simulate' -description: 'Use the connected account simulation endpoint to disconnect an account from Seam in a sandbox workspace and test how your app handles disconnections.' ---- - -## Endpoints - -[**`/connected_accounts/simulate/disconnect`**](./disconnect) - -Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-codegen/source/api/devices/simulate/object.mdx b/mintlify-codegen/source/api/devices/simulate/object.mdx deleted file mode 100644 index 14b248969..000000000 --- a/mintlify-codegen/source/api/devices/simulate/object.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: 'Device Simulations' -description: 'Use the device simulation endpoints to connect, disconnect, and remove sandbox devices so you can test how your app handles device state changes.' ---- - -## Endpoints - -[**`/devices/simulate/connect`**](./connect) - -Simulates connecting a device to Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). - -[**`/devices/simulate/connect_to_hub`**](./connect_to_hub) - -Simulates bringing the Wi‑Fi hub (bridge) back online for a device. -Only applicable for sandbox workspaces and currently -implemented for August and TTLock locks. -This will clear the corresponding `hub_disconnected` or -`ttlock_lock_not_paired_to_gateway` error on the device. - -[**`/devices/simulate/disconnect`**](./disconnect) - -Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). - -[**`/devices/simulate/disconnect_from_hub`**](./disconnect_from_hub) - -Simulates taking the Wi‑Fi hub (bridge) offline for a device. -Only applicable for sandbox workspaces and currently -implemented for August, TTLock, and IglooHome devices. -This will set the corresponding `hub_disconnected` or -`ttlock_lock_not_paired_to_gateway` error on the device, or mark the -IglooHome bridge offline in sandbox. - -[**`/devices/simulate/paid_subscription`**](./paid_subscription) - -Toggle the simulated Nuki Smart Hosting subscription for a device (sandbox only). -Send `is_expired: true` to simulate an expired subscription, or `false` to simulate an active subscription. -The actual device error is created/cleared by the poller after this state change. - -[**`/devices/simulate/remove`**](./remove) - -Simulates removing a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). diff --git a/mintlify-codegen/source/api/locks/object.mdx b/mintlify-codegen/source/api/locks/object.mdx deleted file mode 100644 index 24cf10f38..000000000 --- a/mintlify-codegen/source/api/locks/object.mdx +++ /dev/null @@ -1,2865 +0,0 @@ ---- -title: 'The Lock Object' -description: 'Learn how the device object represents a smart lock connected to Seam, including its lock-specific properties, capabilities, errors, and events.' ---- - -## The device Object for Locks - - -Represents a [lock](/low-level-apis/smart-locks). - -The Seam API enables you to control connected smart locks from a wide variety of manufacturers, including locks that provide online and offline [access code](/low-level-apis/smart-locks/access-codes) programming. - -Depending on the smart lock brand and model, actions that you can perform include remote unlock, remote lock, and programming access codes. You can also view a lock's properties, capabilities, and status. Further, you can monitor for unlock and lock events. - -See also [Webhooks](/developer-tools/webhooks). - - - - -A lock device resource. - -```json -{ - "can_program_online_access_codes": true, - "can_remotely_lock": true, - "can_remotely_unlock": true, - "capabilities_supported": ["access_code", "lock"], - "connected_account_id": "8e3a4f1b-2c7d-4a9e-8b5f-3d2c1a0b9e8f", - "created_at": "2025-03-27T02:08:16.418Z", - "space_ids": [], - "custom_metadata": { "id": "internalId1" }, - "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", - "device_type": "schlage_lock", - "display_name": "FRONT DOOR", - "errors": [], - "is_managed": true, - "location": { "location_name": "Front Door", "timezone": "America/New_York" }, - "nickname": "Front Door", - "properties": { - "appearance": { "name": "FRONT DOOR" }, - "battery": { "level": 0.48, "status": "good" }, - "battery_level": 0.48, - "code_constraints": [{ "constraint_type": "name_length", "max_length": 9 }], - "has_native_entry_events": true, - "image_alt_text": "Schlage Sense Smart Deadbolt with Camelot Trim, Front", - "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/schlage_sense-smart-deadbolt-with-camelot-trim_front.png&q=75&w=128", - "locked": false, - "manufacturer": "schlage", - "model": { - "accessory_keypad_supported": false, - "can_connect_accessory_keypad": false, - "display_name": "Encode", - "has_built_in_keypad": true, - "manufacturer_display_name": "Schlage", - "offline_access_codes_supported": false, - "online_access_codes_supported": true - }, - "name": "FRONT DOOR", - "offline_access_codes_enabled": false, - "online": true, - "online_access_codes_enabled": true, - "schlage_metadata": { - "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", - "device_name": "FRONT DOOR", - "model": "Encode" - }, - "serial_number": "34000000000531e0", - "supported_code_lengths": [4, 5, 6, 7, 8], - "supports_backup_access_code_pool": true, - "supports_offline_access_codes": false - }, - "warnings": [], - "workspace_id": "5d7f2e1a-9c8b-4f3e-8d2c-1a0b9e8f7c6d" -} -``` - - - - - - -```json Lock Device -{ - "can_program_online_access_codes": true, - "can_remotely_lock": true, - "can_remotely_unlock": true, - "capabilities_supported": [ - "access_code", - "lock" - ], - "connected_account_id": "8e3a4f1b-2c7d-4a9e-8b5f-3d2c1a0b9e8f", - "created_at": "2025-03-27T02:08:16.418Z", - "space_ids": [], - "custom_metadata": { - "id": "internalId1" - }, - "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", - "device_type": "schlage_lock", - "display_name": "FRONT DOOR", - "errors": [], - "is_managed": true, - "location": { - "location_name": "Front Door", - "timezone": "America/New_York" - }, - "nickname": "Front Door", - "properties": { - "appearance": { - "name": "FRONT DOOR" - }, - "battery": { - "level": 0.48, - "status": "good" - }, - "battery_level": 0.48, - "code_constraints": [ - { - "constraint_type": "name_length", - "max_length": 9 - } - ], - "has_native_entry_events": true, - "image_alt_text": "Schlage Sense Smart Deadbolt with Camelot Trim, Front", - "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/schlage_sense-smart-deadbolt-with-camelot-trim_front.png&q=75&w=128", - "locked": false, - "manufacturer": "schlage", - "model": { - "accessory_keypad_supported": false, - "can_connect_accessory_keypad": false, - "display_name": "Encode", - "has_built_in_keypad": true, - "manufacturer_display_name": "Schlage", - "offline_access_codes_supported": false, - "online_access_codes_supported": true - }, - "name": "FRONT DOOR", - "offline_access_codes_enabled": false, - "online": true, - "online_access_codes_enabled": true, - "schlage_metadata": { - "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", - "device_name": "FRONT DOOR", - "model": "Encode" - }, - "serial_number": "34000000000531e0", - "supported_code_lengths": [ - 4, - 5, - 6, - 7, - 8 - ], - "supports_backup_access_code_pool": true, - "supports_offline_access_codes": false - }, - "warnings": [], - "workspace_id": "5d7f2e1a-9c8b-4f3e-8d2c-1a0b9e8f7c6d" -} -``` - - - ---- - -## Properties - -**`can_configure_auto_lock`** _Boolean_ - ---- - -**`can_hvac_cool`** _Boolean_ - ---- - -**`can_hvac_heat`** _Boolean_ - ---- - -**`can_hvac_heat_cool`** _Boolean_ - ---- - -**`can_program_offline_access_codes`** _Boolean_ - ---- - -**`can_program_online_access_codes`** _Boolean_ - ---- - -**`can_program_thermostat_programs_as_different_each_day`** _Boolean_ - ---- - -**`can_program_thermostat_programs_as_same_each_day`** _Boolean_ - ---- - -**`can_program_thermostat_programs_as_weekday_weekend`** _Boolean_ - ---- - -**`can_remotely_lock`** _Boolean_ - ---- - -**`can_remotely_unlock`** _Boolean_ - ---- - -**`can_run_thermostat_programs`** _Boolean_ - ---- - -**`can_simulate_connection`** _Boolean_ - ---- - -**`can_simulate_disconnection`** _Boolean_ - ---- - -**`can_simulate_hub_connection`** _Boolean_ - ---- - -**`can_simulate_hub_disconnection`** _Boolean_ - ---- - -**`can_simulate_paid_subscription`** _Boolean_ - ---- - -**`can_simulate_removal`** _Boolean_ - ---- - -**`can_turn_off_hvac`** _Boolean_ - ---- - -**`can_unlock_with_code`** _Boolean_ - ---- - -**`capabilities_supported`** _List_ _of Enums_ - -Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). - ---- - -**`connected_account_id`** _UUID_ - -Unique identifier for the account associated with the device. - ---- - -**`created_at`** _Datetime_ - -Date and time at which the device object was created. - ---- - -**`custom_metadata`** _Record_ - -Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. - ---- - -**`device_id`** _UUID_ - -ID of the device. - ---- - -**`device_type`** _Enum_ - -Type of the device. - - - -- akuvox_lock -- august_lock -- brivo_access_point -- butterflymx_panel -- avigilon_alta_entry -- doorking_lock -- genie_door -- igloo_lock -- linear_lock -- lockly_lock -- kwikset_lock -- nuki_lock -- salto_lock -- schlage_lock -- smartthings_lock -- wyze_lock -- yale_lock -- two_n_intercom -- controlbyweb_device -- ttlock_lock -- igloohome_lock -- four_suites_door -- dormakaba_oracode_door -- tedee_lock -- akiles_lock -- ultraloq_lock -- korelock_lock -- keynest_key -- noiseaware_activity_zone -- minut_sensor -- ecobee_thermostat -- nest_thermostat -- honeywell_resideo_thermostat -- tado_thermostat -- sensi_thermostat -- smartthings_thermostat -- ios_phone -- android_phone -- ring_camera - - ---- - -**`display_name`** _String_ - -Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. - ---- - -[**`errors`**](#errors) _List_ _of Objects_ - -Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. - -The specific structure of each object in this list depends on the value of its `error_code` field. - -Variants: - - - -Indicates that the account is disconnected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- account_disconnected - ---- - -**`is_connected_account_error`** _Boolean_ - -Indicates that the error is a [connected account](/api/connected_accounts/object) error. - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is not a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the Salto site user limit has been reached. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_subscription_limit_exceeded - ---- - -**`is_connected_account_error`** _Boolean_ - -Indicates that the error is a [connected account](/api/connected_accounts/object) error. - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is not a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the device is offline. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_offline - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the device has been removed. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_removed - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the hub is disconnected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- hub_disconnected - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the device is disconnected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_disconnected - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- empty_backup_access_code_pool - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the user is not authorized to use the August lock. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- august_lock_not_authorized - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the lock is not connected to a bridge. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- august_lock_missing_bridge - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the lock is not paired with a gateway. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- ttlock_lock_not_paired_to_gateway - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that device credentials are missing. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- missing_device_credentials - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the auxiliary heat is running. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- auxiliary_heat_running - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that a subscription is required to connect. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- subscription_required - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the Lockly lock is not connected to a Wi-Fi bridge. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- lockly_missing_wifi_bridge - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system). - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- bridge_disconnected - ---- - -**`is_bridge_error`** _Boolean_ - -Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). - ---- - -**`is_connected_account_error`** _Boolean_ - -Indicates whether the error is related specifically to the connected account. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - ---- - -**`is_managed`** _Boolean_ - -Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices). - ---- - -**`nickname`** _String_ - -Optional nickname to describe the device, settable through Seam. - ---- - -**`space_ids`** _List_ _of UUIDs_ - -IDs of the spaces the device is in. - ---- - -[**`warnings`**](#warnings) _List_ _of Objects_ - -Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. - -The specific structure of each object in this list depends on the value of its `warning_code` field. - -Variants: - - - -Indicates that the backup access code is unhealthy. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- partial_backup_access_code_pool - - - - -Indicates that there are too many backup codes. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- many_active_backup_codes - - - - -Indicates that the Wyze Lock is not connected to a gateway. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- wyze_device_missing_gateway - - - - -Indicates that a third-party integration has been detected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- third_party_integration_detected - - - - -Indicates that the Remote Unlock feature is not enabled in the settings." - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- ttlock_lock_gateway_unlocking_not_enabled - - - - -Indicates that the gateway signal is weak. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- ttlock_weak_gateway_signal - - - - -Indicates that the device is in power saving mode and may have limited functionality. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- power_saving_mode - - - - -Indicates that the temperature threshold has been exceeded. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- temperature_threshold_exceeded - - - - -Indicates that the device appears to be unresponsive. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_communication_degraded - - - - -Indicates that a scheduled maintenance window has been detected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- scheduled_maintenance_window - - - - -Indicates that the device has a flaky connection. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_has_flaky_connection - - - - -Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_office_mode - - - - -Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_privacy_mode - - - - -Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_subscription_limit_almost_reached - - - - -Indicates that an unknown issue occurred while syncing the state of the phone with the provider. This issue may affect the proper functioning of the phone. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- unknown_issue_with_phone - - - - -Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- lockly_time_zone_not_configured - - - - -Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- ultraloq_time_zone_unknown - - - - -Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- two_n_device_missing_timezone - - - - -Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- hub_required_for_additional_capabilities - - - - -Indicates that the key is in a locker that does not support the access codes API. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- keynest_unsupported_locker - - - - -Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- accessory_keypad_setup_required - - - - -Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- unreliable_online_status - - - - -Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. - -**`active_access_code_count`** _Number_ - -Number of active access codes on the device when the warning was set. - ---- - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`max_active_access_code_count`** _Number_ - -Maximum number of active access codes supported by the device. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- max_access_codes_reached - - - ---- - -**`workspace_id`** _UUID_ - -Unique identifier for the Seam workspace associated with the device. - ---- - -## device.properties - -**`akiles_metadata`** _Object_ - -Metadata for an Akiles device. - - - - - Group ID to which to add users for an Akiles device. - - - Gadget ID for an Akiles device. - - - Gadget name for an Akiles device. - - - Product name for an Akiles device. - - - ---- - -**`assa_abloy_credential_service_metadata`** _Object_ - -ASSA ABLOY Credential Service metadata for the phone. - - - - - Endpoints associated with the phone. - - - ID of the associated endpoint. - - - Indicated whether the endpoint is active. - - Indicates whether the credential service has active endpoints associated with the phone. - - - - ---- - -**`assa_abloy_vostio_metadata`** _Object_ - -Metadata for an ASSA ABLOY Vostio system. - - - - - Encoder name for an ASSA ABLOY Vostio system. - - - ---- - -**`august_metadata`** _Object_ - -Metadata for an August device. - - - - - Indicates whether an August device has a keypad. - - - House ID for an August device. - - - House name for an August device. - - - Keypad battery level for an August device. - - - Lock ID for an August device. - - - Lock name for an August device. - - - Model for an August device. - - - ---- - -**`auto_lock_delay_seconds`** _Number_ - -The delay in seconds before the lock automatically locks after being unlocked. - ---- - -**`auto_lock_enabled`** _Boolean_ - -Indicates whether automatic locking is enabled. - ---- - -**`avigilon_alta_metadata`** _Object_ - -Metadata for an Avigilon Alta system. - - - - - Entry name for an Avigilon Alta system. - - - Total count of entry relays for an Avigilon Alta system. - - - Organization name for an Avigilon Alta system. - - - Site ID for an Avigilon Alta system. - - - Site name for an Avigilon Alta system. - - - Zone ID for an Avigilon Alta system. - - - Zone name for an Avigilon Alta system. - - - ---- - -**`brivo_metadata`** _Object_ - -Metadata for a Brivo device. - - - - - Indicates whether the Brivo access point has activation (remote unlock) enabled. - - - Device name for a Brivo device. - - - ---- - -**`code_constraints`** _List_ _of Objects_ - -Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. - - -constraint_type Enum - - - - no_zeros - - cannot_start_with_12 - - no_triple_consecutive_ints - - cannot_specify_pin_code - - pin_code_matches_existing_set - - start_date_in_future - - no_ascending_or_descending_sequence - - at_least_three_unique_digits - - cannot_contain_089 - - cannot_contain_0789 - - unique_first_four_digits - - no_all_same_digits - - name_length - - name_must_be_unique - - - - - max_length - -Number - -Maximum name length constraint for access codes. - - - min_length - -Number - -Minimum name length constraint for access codes. - - - ---- - -**`controlbyweb_metadata`** _Object_ - -Metadata for a ControlByWeb device. - - - - - Device ID for a ControlByWeb device. - - - Device name for a ControlByWeb device. - - - Relay name for a ControlByWeb device. - - - ---- - -**`door_open`** _Boolean_ - -Indicates whether the door is open. - ---- - -**`dormakaba_oracode_metadata`** _Object_ - -Metadata for a dormakaba Oracode device. - - - - - Device ID for a dormakaba Oracode device. - - - Door ID for a dormakaba Oracode device. - - - Indicates whether a door is wireless for a dormakaba Oracode device. - - - Door name for a dormakaba Oracode device. - - - IANA time zone for a dormakaba Oracode device. - - - Predefined time slots for a dormakaba Oracode device. - - - Check in time for a time slot for a dormakaba Oracode device. - - - Checkout time for a time slot for a dormakaba Oracode device. - - - ID of a user level for a dormakaba Oracode device. - - - Prefix for a user level for a dormakaba Oracode device. - - - Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot. - - - Indicates whether a time slot for a dormakaba Oracode device is in biweekly mode. - - - Indicates whether a time slot for a dormakaba Oracode device is a master time slot. - - - Indicates whether a time slot for a dormakaba Oracode device is a one-shot time slot. - - - Name of a time slot for a dormakaba Oracode device. - - - Prefix for a time slot for a dormakaba Oracode device. - - Site ID for a dormakaba Oracode device. - - **Deprecated**. Previously marked as "@DEPRECATED."- - - site_name - - String - - Site name for a dormakaba Oracode device. - - - - ---- - -**`ecobee_metadata`** _Object_ - -Metadata for an ecobee device. - - - - - Device name for an ecobee device. - - - Device ID for an ecobee device. - - - ---- - -**`four_suites_metadata`** _Object_ - -Metadata for a 4SUITES device. - - - - - Device ID for a 4SUITES device. - - - Device name for a 4SUITES device. - - - Reclose delay, in seconds, for a 4SUITES device. - - - ---- - -**`genie_metadata`** _Object_ - -Metadata for a Genie device. - - - - - Lock name for a Genie device. - - - Door name for a Genie device. - - - ---- - -**`has_native_entry_events`** _Boolean_ - -Indicates whether the device supports native entry events. - ---- - -**`honeywell_resideo_metadata`** _Object_ - -Metadata for a Honeywell Resideo device. - - - - - Device name for a Honeywell Resideo device. - - - Device ID for a Honeywell Resideo device. - - - ---- - -**`igloo_metadata`** _Object_ - -Metadata for an igloo device. - - - - - Bridge ID for an igloo device. - - - Device ID for an igloo device. - - - Model for an igloo device. - - - ---- - -**`igloohome_metadata`** _Object_ - -Metadata for an igloohome device. - - - - - Bridge ID for an igloohome device. - - - Bridge name for an igloohome device. - - - Device ID for an igloohome device. - - - Device name for an igloohome device. - - - Indicates whether a keypad is linked to a bridge for an igloohome device. - - - Keypad ID for an igloohome device. - - - ---- - -**`keynest_metadata`** _Object_ - -Metadata for a KeyNest device. - - - - - Address for a KeyNest device. - - - Current or last store ID for a KeyNest device. - - - Current status for a KeyNest device. - - - Current user company for a KeyNest device. - - - Current user email for a KeyNest device. - - - Current user name for a KeyNest device. - - - Current user phone number for a KeyNest device. - - - Default office ID for a KeyNest device. - - - Device name for a KeyNest device. - - - Fob ID for a KeyNest device. - - - Handover method for a KeyNest device. - - - Whether the KeyNest device has a photo. - - - Whether the key is in a locker that does not support the access codes API. - - - Key ID for a KeyNest device. - - - Key notes for a KeyNest device. - - - KeyNest app user for a KeyNest device. - - - Last movement timestamp for a KeyNest device. - - - Property ID for a KeyNest device. - - - Property postcode for a KeyNest device. - - - Status type for a KeyNest device. - - - Subscription plan for a KeyNest device. - - - ---- - -**`keypad_battery`** _Object_ - -Keypad battery status. - - - - - Keypad battery charge level. - - - ---- - -**`korelock_metadata`** _Object_ - -Metadata for a Korelock device. - - - - - Device ID for a Korelock device. - - - Device name for a Korelock device. - - - Firmware version for a Korelock device. - - - Location ID for a Korelock device. Required for timebound access codes. - - - Model code for a Korelock device. - - - Serial number for a Korelock device. - - - WiFi signal strength (0-1) for a Korelock device. - - - ---- - -**`kwikset_metadata`** _Object_ - -Metadata for a Kwikset device. - - - - - Device ID for a Kwikset device. - - - Device name for a Kwikset device. - - - Model number for a Kwikset device. - - - ---- - -**`locked`** _Boolean_ - -Indicates whether the lock is locked. - ---- - -**`lockly_metadata`** _Object_ - -Metadata for a Lockly device. - - - - - Device ID for a Lockly device. - - - Device name for a Lockly device. - - - Model for a Lockly device. - - - ---- - -**`max_active_codes_supported`** _Number_ - -Maximum number of active access codes that the device supports. - ---- - -**`minut_metadata`** _Object_ - -Metadata for a Minut device. - - - - - Device ID for a Minut device. - - - Device name for a Minut device. - - - Latest sensor values for a Minut device. - - - Latest accelerometer Z-axis reading for a Minut device. - - - Time of latest accelerometer Z-axis reading for a Minut device. - - - Value of latest accelerometer Z-axis reading for a Minut device. - - - Latest humidity reading for a Minut device. - - - Time of latest humidity reading for a Minut device. - - - Value of latest humidity reading for a Minut device. - - - Latest pressure reading for a Minut device. - - - Time of latest pressure reading for a Minut device. - - - Value of latest pressure reading for a Minut device. - - - Latest sound reading for a Minut device. - - - Time of latest sound reading for a Minut device. - - - Value of latest sound reading for a Minut device. - - - Latest temperature reading for a Minut device. - - - Time of latest temperature reading for a Minut device. - - - Value of latest temperature reading for a Minut device. - - - ---- - -**`model`** _Object_ - -Device model-related properties. - - - - - - **Deprecated**. use device.properties.model.can_connect_accessory_keypad - - - - Indicates whether the device can connect a accessory keypad. - - - Display name of the device model. - - - Indicates whether the device has a built in accessory keypad. - - - Display name that corresponds to the manufacturer-specific terminology for the device. - - - **Deprecated**. use device.can_program_offline_access_codes. - - - **Deprecated**. use device.can_program_online_access_codes. - - - ---- - -**`name`** _String_ - -Name of the device. - -**Deprecated**. use device.display_name instead - ---- - -**`nest_metadata`** _Object_ - -Metadata for a Google Nest device. - - - - - Custom device name for a Google Nest device. The device owner sets this value. - - - Device name for a Google Nest device. Google sets this value. - - - Display name for a Google Nest device. - - - Device ID for a Google Nest device. - - - ---- - -**`noiseaware_metadata`** _Object_ - -Metadata for a NoiseAware device. - - - - - Device ID for a NoiseAware device. - - - Device model for a NoiseAware device. - - - - - `indoor` - - `outdoor` - - - - - Device name for a NoiseAware device. - - - Noise level, in decibels, for a NoiseAware device. - - - Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. - - - ---- - -**`nuki_metadata`** _Object_ - -Metadata for a Nuki device. - - - - - Device ID for a Nuki device. - - - Device name for a Nuki device. - - - Indicates whether keypad 2 is paired for a Nuki device. - - - Indicates whether the keypad battery is in a critical state for a Nuki device. - - - Indicates whether the keypad is paired for a Nuki device. - - - ---- - -**`offline_access_codes_enabled`** _Boolean_ - -Indicates whether it is currently possible to use offline access codes for the device. - -**Deprecated**. use device.can_program_offline_access_codes - ---- - -**`online`** _Boolean_ - -Indicates whether the device is online. - ---- - -**`online_access_codes_enabled`** _Boolean_ - -Indicates whether it is currently possible to use online access codes for the device. - -**Deprecated**. use device.can_program_online_access_codes - ---- - -**`ring_metadata`** _Object_ - -Metadata for a Ring device. - - - - - Device ID for a Ring device. - - - Device name for a Ring device. - - - ---- - -**`salto_ks_metadata`** _Object_ - -Metadata for a Salto KS device. - - - - - Battery level for a Salto KS device. - - - Customer reference for a Salto KS device. - - - Indicates whether the site has a Salto KS subscription that supports custom PINs. - - - Lock ID for a Salto KS device. - - - Lock type for a Salto KS device. - - - Locked state for a Salto KS device. - - - Model for a Salto KS device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - ---- - -**`salto_metadata`** _Object_ - -Metada for a Salto device. - -**Deprecated**. Use `salto_ks_metadata ` instead. - - - - - Battery level for a Salto device. - - - Customer reference for a Salto device. - - - Lock ID for a Salto device. - - - Lock type for a Salto device. - - - Locked state for a Salto device. - - - Model for a Salto device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - ---- - -**`salto_space_credential_service_metadata`** _Object_ - -Salto Space credential service metadata for the phone. - - - - - Indicates whether the credential service has an active associated phone. - - - ---- - -**`schlage_metadata`** _Object_ - -Metadata for a Schlage device. - - - - - Device ID for a Schlage device. - - - Device name for a Schlage device. - - - Model for a Schlage device. - - - ---- - -**`seam_bridge_metadata`** _Object_ - -Metadata for Seam Bridge. - - - - - Device number for Seam Bridge. - - - Name for Seam Bridge. - - - Unlock method for Seam Bridge. - - - - - `bridge` - - `doorking` - - - - - ---- - -**`sensi_metadata`** _Object_ - -Metadata for a Sensi device. - - - - - Device ID for a Sensi device. - - - Device name for a Sensi device. - - - Set to true when the device does not support the /dual-setpoints API endpoint. - - - Product type for a Sensi device. - - - ---- - -**`smartthings_metadata`** _Object_ - -Metadata for a SmartThings device. - - - - - Device ID for a SmartThings device. - - - Device name for a SmartThings device. - - - Location ID for a SmartThings device. - - - Model for a SmartThings device. - - - ---- - -**`supported_code_lengths`** _List_ _of Numbers_ - -Supported code lengths for access codes. - ---- - -**`supports_accessory_keypad`** _Boolean_ - - - **Deprecated**. use device.properties.model.can_connect_accessory_keypad - - ---- - -**`supports_backup_access_code_pool`** _Boolean_ - -Indicates whether the device supports a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes). - ---- - -**`supports_offline_access_codes`** _Boolean_ - -**Deprecated**. use offline_access_codes_enabled - ---- - -**`tado_metadata`** _Object_ - -Metadata for a tado° device. - - - - - Device type for a tado° device. - - - Serial number for a tado° device. - - - ---- - -**`tedee_metadata`** _Object_ - -Metadata for a Tedee device. - - - - - Bridge ID for a Tedee device. - - - Bridge name for a Tedee device. - - - Device ID for a Tedee device. - - - Device model for a Tedee device. - - - Device name for a Tedee device. - - - Keypad ID for a Tedee device. - - - Serial number for a Tedee device. - - - ---- - -**`ttlock_metadata`** _Object_ - -Metadata for a TTLock device. - - - - - Feature value for a TTLock device. - - - Features for a TTLock device. - - - Indicates whether a TTLock device supports auto-lock time configuration. - - - Indicates whether a TTLock device supports an incomplete keyboard passcode. - - - Indicates whether a TTLock device supports the lock command. - - - Indicates whether a TTLock device supports a passcode. - - - Indicates whether a TTLock device supports passcode management. - - - Indicates whether a TTLock device supports unlock via gateway. - - - Indicates whether a TTLock device supports Wi-Fi. - - - Indicates whether a TTLock device has a gateway. - - - Lock alias for a TTLock device. - - - Lock ID for a TTLock device. - - - Wireless keypads for a TTLock device. - - - ID for a wireless keypad for a TTLock device. - - - Name for a wireless keypad for a TTLock device. - - - ---- - -**`two_n_metadata`** _Object_ - -Metadata for a 2N device. - - - - - Device ID for a 2N device. - - - Device name for a 2N device. - - - ---- - -**`ultraloq_metadata`** _Object_ - -Metadata for an Ultraloq device. - - - - - Device ID for an Ultraloq device. - - - Device name for an Ultraloq device. - - - Device type for an Ultraloq device. - - - IANA timezone for the Ultraloq device. - - - ---- - -**`visionline_metadata`** _Object_ - -Metadata for an ASSA ABLOY Visionline system. - - - - - Encoder ID for an ASSA ABLOY Visionline system. - - - ---- - -**`wyze_metadata`** _Object_ - -Metadata for a Wyze device. - - - - - Device ID for a Wyze device. - - - Device information model for a Wyze device. - - - Device name for a Wyze device. - - - Keypad UUID for a Wyze device. - - - Locker status (hardlock) for a Wyze device. - - - Product model for a Wyze device. - - - Product name for a Wyze device. - - - Product type for a Wyze device. - - - ---- - -## Errors - -**`salto_ks_subscription_limit_exceeded`** - -Indicates that the Salto site user limit has been reached. - ---- - -**`august_lock_not_authorized`** - -Indicates that the user is not authorized to use the August lock. - ---- - -**`august_lock_missing_bridge`** - -Indicates that the lock is not connected to a bridge. - ---- - -**`empty_backup_access_code_pool`** - -Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. - ---- - -**`ttlock_lock_not_paired_to_gateway`** - -Indicates that the lock is not paired with a gateway. - ---- - -**`subscription_required`** - -Indicates that a subscription is required to connect. - ---- - -**`missing_device_credentials`** - -Indicates that device credentials are missing. - ---- - -**`lockly_missing_wifi_bridge`** - -Indicates that the Lockly lock is not connected to a Wi-Fi bridge. - ---- - -**`hub_disconnected`** - -Indicates that the hub is disconnected. - ---- - -**`device_removed`** - -Indicates that the device has been removed. - ---- - -**`device_offline`** - -Indicates that the device is offline. - ---- - -**`device_disconnected`** - -Indicates that the device is disconnected. - ---- - -**`account_disconnected`** - -Indicates that the account is disconnected. - ---- - -**`bridge_disconnected`** - -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system). - ---- - -## Warnings - -**`accessory_keypad_setup_required`** - -Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. - ---- - -**`device_communication_degraded`** - -Indicates that the device appears to be unresponsive. - ---- - -**`device_has_flaky_connection`** - -Indicates that the device has a flaky connection. - ---- - -**`hub_required_for_additional_capabilities`** - -Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. - ---- - -**`keynest_unsupported_locker`** - -Indicates that the key is in a locker that does not support the access codes API. - ---- - -**`lockly_time_zone_not_configured`** - -Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. - ---- - -**`many_active_backup_codes`** - -Indicates that there are too many backup codes. - ---- - -**`max_access_codes_reached`** - -Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. - ---- - -**`partial_backup_access_code_pool`** - -Indicates that the backup access code is unhealthy. - ---- - -**`power_saving_mode`** - -Indicates that the device is in power saving mode and may have limited functionality. - ---- - -**`salto_ks_office_mode`** - -Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. - ---- - -**`salto_ks_privacy_mode`** - -Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. - ---- - -**`salto_ks_subscription_limit_almost_reached`** - -Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. - ---- - -**`scheduled_maintenance_window`** - -Indicates that a scheduled maintenance window has been detected. - ---- - -**`third_party_integration_detected`** - -Indicates that a third-party integration has been detected. - ---- - -**`ttlock_lock_gateway_unlocking_not_enabled`** - -Indicates that the Remote Unlock feature is not enabled in the settings." - ---- - -**`ttlock_weak_gateway_signal`** - -Indicates that the gateway signal is weak. - ---- - -**`two_n_device_missing_timezone`** - -Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. - ---- - -**`ultraloq_time_zone_unknown`** - -Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. - ---- - -**`unreliable_online_status`** - -Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. - ---- - -**`wyze_device_missing_gateway`** - -Indicates that the Wyze Lock is not connected to a gateway. - ---- - -## Endpoints - -[**`/locks/configure_auto_lock`**](./configure_auto_lock) - -Configures the auto-lock setting for a specified [lock](/low-level-apis/smart-locks). - -[**`/locks/get`**](./get) - -Returns a specified [lock](/low-level-apis/smart-locks). - -[**`/locks/list`**](./list) - -Returns a list of all [locks](/low-level-apis/smart-locks). - -[**`/locks/lock_door`**](./lock_door) - -Locks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock). - -[**`/locks/unlock_door`**](./unlock_door) - -Unlocks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock). diff --git a/mintlify-codegen/source/api/locks/simulate/object.mdx b/mintlify-codegen/source/api/locks/simulate/object.mdx deleted file mode 100644 index e9f45962e..000000000 --- a/mintlify-codegen/source/api/locks/simulate/object.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: 'Lock Simulations' -description: 'Use the lock simulation endpoints to mimic keypad code entry and manual locking on sandbox August devices so you can test your smart lock app.' ---- - -## Endpoints - -[**`/locks/simulate/keypad_code_entry`**](./keypad_code_entry) - -Simulates the entry of a code on a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). - -[**`/locks/simulate/manual_lock_via_keypad`**](./manual_lock_via_keypad) - -Simulates a manual lock action using a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-codegen/source/api/noise_sensors/object.mdx b/mintlify-codegen/source/api/noise_sensors/object.mdx deleted file mode 100644 index c8b9df74e..000000000 --- a/mintlify-codegen/source/api/noise_sensors/object.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: 'The Noise Sensor Object' -description: 'Learn how the device object represents a noise sensor that measures sound levels, lets you configure thresholds, and emits disturbance events.' ---- - -## The device Object for Noise Sensors - - -Represents a [noise sensor](/capability-guides/noise-sensors). - -Noise sensors are devices that measure that sound level in a given area. You can use noise sensors to monitor noise levels remotely and receive notifications when the noise volume is too loud. The Seam API enables you to configure the [noise thresholds](/capability-guides/noise-sensors/configure-noise-threshold-settings) of a noise sensor and receive events when a disturbance is detected. You can also [simulate triggering a noise threshold](/api/noise_sensors/simulate/trigger_noise_threshold). - -The Seam API represents a noise sensor as a `device` resource that includes both basic device properties and noise sensor-specific properties. - ---- - -## Endpoints - -[**`/noise_sensors/list`**](./list) - -Returns a list of all [noise sensors](/capability-guides/noise-sensors). diff --git a/mintlify-codegen/source/api/noise_sensors/simulate/object.mdx b/mintlify-codegen/source/api/noise_sensors/simulate/object.mdx deleted file mode 100644 index ab7283be5..000000000 --- a/mintlify-codegen/source/api/noise_sensors/simulate/object.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: 'Noise Sensor Simulations' -description: 'Use the noise sensor simulation endpoint to trigger a noise threshold in a sandbox workspace so you can test how your app responds to disturbances.' ---- - -## Endpoints - -[**`/noise_sensors/simulate/trigger_noise_threshold`**](./trigger_noise_threshold) - -Simulates the triggering of a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-codegen/source/api/phones/simulate/object.mdx b/mintlify-codegen/source/api/phones/simulate/object.mdx deleted file mode 100644 index 58a0f2614..000000000 --- a/mintlify-codegen/source/api/phones/simulate/object.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: 'Phone Simulations' -description: 'Use the phone simulation endpoint to create a simulated phone in a sandbox workspace so you can test mobile access flows for a user identity.' ---- - -## Endpoints - -[**`/phones/simulate/create_sandbox_phone`**](./create_sandbox_phone) - -Creates a new simulated phone in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity). diff --git a/mintlify-codegen/source/api/thermostats/object.mdx b/mintlify-codegen/source/api/thermostats/object.mdx deleted file mode 100644 index 93087e6ef..000000000 --- a/mintlify-codegen/source/api/thermostats/object.mdx +++ /dev/null @@ -1,3635 +0,0 @@ ---- -title: 'The Thermostat Object' -description: 'Learn how the device object represents a thermostat connected to Seam, including its climate properties, capabilities, errors, warnings, and events.' ---- - -## The device Object for Thermostats - - -Represents a [thermostat](/capability-guides/thermostats). - -You can use the Seam API to perform the following management and monitoring actions for thermostats: - -- Monitor current thermostat settings and readings. -- Configure [temperature thresholds](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds). If the thermostat reports a temperature outside these thresholds, Seam automatically alerts you. -- Make immediate changes to [thermostat climate settings](/capability-guides/thermostats/configure-current-climate-settings), such as the HVAC mode and fan mode. -- [Create](/capability-guides/thermostats/creating-and-managing-climate-presets) and [schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) climate presets, including a fallback climate preset. -- Create daily and weekly [thermostat programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs). - -The Seam API represents a thermostat as a `device` resource that includes both basic device properties and thermostat-specific properties. - ---- - - - - -A thermostat device resource. - -```json -{ - "can_hvac_cool": true, - "can_hvac_heat": true, - "can_hvac_heat_cool": true, - "can_turn_off_hvac": true, - "capabilities_supported": ["thermostat"], - "connected_account_id": "a0b1c2d3-e4f5-6a7b-8c9d-0e1f2a3b4c5d", - "created_at": "2024-10-03T22:12:15.666Z", - "custom_metadata": { "id": "internalId1" }, - "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", - "device_type": "ecobee_thermostat", - "display_name": "Living Room", - "errors": [], - "is_managed": true, - "space_ids": [], - "location": { - "location_name": "2948 20th St, San Francisco, CA, 94110, US", - "timezone": "America/Los_Angeles" - }, - "nickname": "Living Room", - "properties": { - "active_climate_preset": { - "can_delete": true, - "can_edit": true, - "climate_preset_key": "sleep", - "cooling_set_point_celsius": 23.88888888888889, - "display_name": "Sleep", - "fan_mode_setting": "auto", - "heating_set_point_celsius": 17.77777777777778, - "hvac_mode_setting": "heat_cool", - "manual_override_allowed": true - }, - "appearance": { "name": "Living Room" }, - "available_climate_presets": [ - { - "climate_preset_key": "sleep", - "can_edit": true, - "can_delete": true, - "can_use_with_thermostat_daily_programs": false, - "name": "Sleep", - "display_name": "Sleep", - "fan_mode_setting": "auto", - "hvac_mode_setting": "heat_cool", - "manual_override_allowed": true, - "cooling_set_point_celsius": 23.88888888888889, - "heating_set_point_celsius": 17.77777777777778, - "cooling_set_point_fahrenheit": 75, - "heating_set_point_fahrenheit": 64 - }, - { - "climate_preset_key": "home", - "can_edit": true, - "can_delete": true, - "can_use_with_thermostat_daily_programs": false, - "name": "Home", - "display_name": "Home", - "fan_mode_setting": "auto", - "hvac_mode_setting": "heat_cool", - "manual_override_allowed": false, - "cooling_set_point_celsius": 23.88888888888889, - "heating_set_point_celsius": 17.77777777777778, - "cooling_set_point_fahrenheit": 75, - "heating_set_point_fahrenheit": 64 - }, - { - "climate_preset_key": "work", - "can_edit": true, - "can_delete": true, - "can_use_with_thermostat_daily_programs": false, - "name": "Work", - "display_name": "Work", - "fan_mode_setting": "auto", - "hvac_mode_setting": "heat_cool", - "manual_override_allowed": false, - "cooling_set_point_celsius": 23.88888888888889, - "heating_set_point_celsius": 17.77777777777778, - "cooling_set_point_fahrenheit": 75, - "heating_set_point_fahrenheit": 64 - } - ], - "available_fan_mode_settings": ["auto", "on"], - "available_hvac_mode_settings": ["cool", "heat", "heat_cool", "off"], - "current_climate_setting": { - "display_name": "Manual Setting", - "fan_mode_setting": "auto", - "heating_set_point_celsius": 25, - "heating_set_point_fahrenheit": 77, - "hvac_mode_setting": "heat", - "manual_override_allowed": true - }, - "ecobee_metadata": { - "device_name": "Living Room", - "ecobee_device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0" - }, - "fallback_climate_preset_key": "eco", - "fan_mode_setting": "auto", - "has_direct_power": true, - "image_alt_text": "Ecobee 3 Lite Thermostat", - "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png&q=75&w=128", - "is_cooling": false, - "is_fan_running": false, - "is_heating": false, - "is_temporary_manual_override_active": false, - "manufacturer": "ecobee", - "max_cooling_set_point_celsius": 33.333333333333336, - "max_cooling_set_point_fahrenheit": 92, - "max_heating_set_point_celsius": 26.11111111111111, - "max_heating_set_point_fahrenheit": 79, - "min_cooling_set_point_celsius": 18.333333333333336, - "min_cooling_set_point_fahrenheit": 65, - "min_heating_cooling_delta_celsius": 2.7777777777777777, - "min_heating_cooling_delta_fahrenheit": 5, - "min_heating_set_point_celsius": 7.222222222222222, - "min_heating_set_point_fahrenheit": 45, - "model": { - "display_name": "Thermostat", - "manufacturer_display_name": "Ecobee" - }, - "name": "Living Room", - "online": true, - "relative_humidity": 0.36, - "temperature_celsius": 21.11111111111111, - "temperature_fahrenheit": 70, - "temperature_threshold": { - "lower_limit_celsius": 16.66666666666667, - "lower_limit_fahrenheit": 62, - "upper_limit_celsius": 26.66666666666667, - "upper_limit_fahrenheit": 80 - }, - "thermostat_daily_programs": [ - { - "thermostat_daily_program_id": "1a2b3c4d-5e6f-7890-1234-56789abcdef1", - "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", - "name": "Weekday Program", - "periods": [ - { "starts_at_time": "00:00:00", "climate_preset_key": "sleep" }, - { "starts_at_time": "07:00:00", "climate_preset_key": "home" }, - { "starts_at_time": "09:00:00", "climate_preset_key": "work" }, - { "starts_at_time": "18:00:00", "climate_preset_key": "home" }, - { "starts_at_time": "22:00:00", "climate_preset_key": "sleep" } - ], - "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab", - "created_at": "2025-05-30T04:01:25.455Z" - }, - { - "thermostat_daily_program_id": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f90", - "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", - "name": "Weekend Program", - "periods": [ - { "starts_at_time": "00:00:00", "climate_preset_key": "sleep" }, - { "starts_at_time": "08:00:00", "climate_preset_key": "home" }, - { "starts_at_time": "23:00:00", "climate_preset_key": "sleep" } - ], - "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab", - "created_at": "2025-05-30T04:02:19.952Z" - } - ], - "thermostat_weekly_program": null - }, - "warnings": [], - "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab" -} -``` - - - - - - -```json Thermostat Device -{ - "can_hvac_cool": true, - "can_hvac_heat": true, - "can_hvac_heat_cool": true, - "can_turn_off_hvac": true, - "capabilities_supported": [ - "thermostat" - ], - "connected_account_id": "a0b1c2d3-e4f5-6a7b-8c9d-0e1f2a3b4c5d", - "created_at": "2024-10-03T22:12:15.666Z", - "custom_metadata": { - "id": "internalId1" - }, - "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", - "device_type": "ecobee_thermostat", - "display_name": "Living Room", - "errors": [], - "is_managed": true, - "space_ids": [], - "location": { - "location_name": "2948 20th St, San Francisco, CA, 94110, US", - "timezone": "America/Los_Angeles" - }, - "nickname": "Living Room", - "properties": { - "active_climate_preset": { - "can_delete": true, - "can_edit": true, - "climate_preset_key": "sleep", - "cooling_set_point_celsius": 23.88888888888889, - "display_name": "Sleep", - "fan_mode_setting": "auto", - "heating_set_point_celsius": 17.77777777777778, - "hvac_mode_setting": "heat_cool", - "manual_override_allowed": true - }, - "appearance": { - "name": "Living Room" - }, - "available_climate_presets": [ - { - "climate_preset_key": "sleep", - "can_edit": true, - "can_delete": true, - "can_use_with_thermostat_daily_programs": false, - "name": "Sleep", - "display_name": "Sleep", - "fan_mode_setting": "auto", - "hvac_mode_setting": "heat_cool", - "manual_override_allowed": true, - "cooling_set_point_celsius": 23.88888888888889, - "heating_set_point_celsius": 17.77777777777778, - "cooling_set_point_fahrenheit": 75, - "heating_set_point_fahrenheit": 64 - }, - { - "climate_preset_key": "home", - "can_edit": true, - "can_delete": true, - "can_use_with_thermostat_daily_programs": false, - "name": "Home", - "display_name": "Home", - "fan_mode_setting": "auto", - "hvac_mode_setting": "heat_cool", - "manual_override_allowed": false, - "cooling_set_point_celsius": 23.88888888888889, - "heating_set_point_celsius": 17.77777777777778, - "cooling_set_point_fahrenheit": 75, - "heating_set_point_fahrenheit": 64 - }, - { - "climate_preset_key": "work", - "can_edit": true, - "can_delete": true, - "can_use_with_thermostat_daily_programs": false, - "name": "Work", - "display_name": "Work", - "fan_mode_setting": "auto", - "hvac_mode_setting": "heat_cool", - "manual_override_allowed": false, - "cooling_set_point_celsius": 23.88888888888889, - "heating_set_point_celsius": 17.77777777777778, - "cooling_set_point_fahrenheit": 75, - "heating_set_point_fahrenheit": 64 - } - ], - "available_fan_mode_settings": [ - "auto", - "on" - ], - "available_hvac_mode_settings": [ - "cool", - "heat", - "heat_cool", - "off" - ], - "current_climate_setting": { - "display_name": "Manual Setting", - "fan_mode_setting": "auto", - "heating_set_point_celsius": 25, - "heating_set_point_fahrenheit": 77, - "hvac_mode_setting": "heat", - "manual_override_allowed": true - }, - "ecobee_metadata": { - "device_name": "Living Room", - "ecobee_device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0" - }, - "fallback_climate_preset_key": "eco", - "fan_mode_setting": "auto", - "has_direct_power": true, - "image_alt_text": "Ecobee 3 Lite Thermostat", - "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png&q=75&w=128", - "is_cooling": false, - "is_fan_running": false, - "is_heating": false, - "is_temporary_manual_override_active": false, - "manufacturer": "ecobee", - "max_cooling_set_point_celsius": 33.333333333333336, - "max_cooling_set_point_fahrenheit": 92, - "max_heating_set_point_celsius": 26.11111111111111, - "max_heating_set_point_fahrenheit": 79, - "min_cooling_set_point_celsius": 18.333333333333336, - "min_cooling_set_point_fahrenheit": 65, - "min_heating_cooling_delta_celsius": 2.7777777777777777, - "min_heating_cooling_delta_fahrenheit": 5, - "min_heating_set_point_celsius": 7.222222222222222, - "min_heating_set_point_fahrenheit": 45, - "model": { - "display_name": "Thermostat", - "manufacturer_display_name": "Ecobee" - }, - "name": "Living Room", - "online": true, - "relative_humidity": 0.36, - "temperature_celsius": 21.11111111111111, - "temperature_fahrenheit": 70, - "temperature_threshold": { - "lower_limit_celsius": 16.66666666666667, - "lower_limit_fahrenheit": 62, - "upper_limit_celsius": 26.66666666666667, - "upper_limit_fahrenheit": 80 - }, - "thermostat_daily_programs": [ - { - "thermostat_daily_program_id": "1a2b3c4d-5e6f-7890-1234-56789abcdef1", - "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", - "name": "Weekday Program", - "periods": [ - { - "starts_at_time": "00:00:00", - "climate_preset_key": "sleep" - }, - { - "starts_at_time": "07:00:00", - "climate_preset_key": "home" - }, - { - "starts_at_time": "09:00:00", - "climate_preset_key": "work" - }, - { - "starts_at_time": "18:00:00", - "climate_preset_key": "home" - }, - { - "starts_at_time": "22:00:00", - "climate_preset_key": "sleep" - } - ], - "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab", - "created_at": "2025-05-30T04:01:25.455Z" - }, - { - "thermostat_daily_program_id": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f90", - "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", - "name": "Weekend Program", - "periods": [ - { - "starts_at_time": "00:00:00", - "climate_preset_key": "sleep" - }, - { - "starts_at_time": "08:00:00", - "climate_preset_key": "home" - }, - { - "starts_at_time": "23:00:00", - "climate_preset_key": "sleep" - } - ], - "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab", - "created_at": "2025-05-30T04:02:19.952Z" - } - ], - "thermostat_weekly_program": null - }, - "warnings": [], - "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab" -} -``` - - - ---- - -## Properties - -**`can_configure_auto_lock`** _Boolean_ - ---- - -**`can_hvac_cool`** _Boolean_ - ---- - -**`can_hvac_heat`** _Boolean_ - ---- - -**`can_hvac_heat_cool`** _Boolean_ - ---- - -**`can_program_offline_access_codes`** _Boolean_ - ---- - -**`can_program_online_access_codes`** _Boolean_ - ---- - -**`can_program_thermostat_programs_as_different_each_day`** _Boolean_ - ---- - -**`can_program_thermostat_programs_as_same_each_day`** _Boolean_ - ---- - -**`can_program_thermostat_programs_as_weekday_weekend`** _Boolean_ - ---- - -**`can_remotely_lock`** _Boolean_ - ---- - -**`can_remotely_unlock`** _Boolean_ - ---- - -**`can_run_thermostat_programs`** _Boolean_ - ---- - -**`can_simulate_connection`** _Boolean_ - ---- - -**`can_simulate_disconnection`** _Boolean_ - ---- - -**`can_simulate_hub_connection`** _Boolean_ - ---- - -**`can_simulate_hub_disconnection`** _Boolean_ - ---- - -**`can_simulate_paid_subscription`** _Boolean_ - ---- - -**`can_simulate_removal`** _Boolean_ - ---- - -**`can_turn_off_hvac`** _Boolean_ - ---- - -**`can_unlock_with_code`** _Boolean_ - ---- - -**`capabilities_supported`** _List_ _of Enums_ - -Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). - ---- - -**`connected_account_id`** _UUID_ - -Unique identifier for the account associated with the device. - ---- - -**`created_at`** _Datetime_ - -Date and time at which the device object was created. - ---- - -**`custom_metadata`** _Record_ - -Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. - ---- - -**`device_id`** _UUID_ - -ID of the device. - ---- - -**`device_type`** _Enum_ - -Type of the device. - - - -- akuvox_lock -- august_lock -- brivo_access_point -- butterflymx_panel -- avigilon_alta_entry -- doorking_lock -- genie_door -- igloo_lock -- linear_lock -- lockly_lock -- kwikset_lock -- nuki_lock -- salto_lock -- schlage_lock -- smartthings_lock -- wyze_lock -- yale_lock -- two_n_intercom -- controlbyweb_device -- ttlock_lock -- igloohome_lock -- four_suites_door -- dormakaba_oracode_door -- tedee_lock -- akiles_lock -- ultraloq_lock -- korelock_lock -- keynest_key -- noiseaware_activity_zone -- minut_sensor -- ecobee_thermostat -- nest_thermostat -- honeywell_resideo_thermostat -- tado_thermostat -- sensi_thermostat -- smartthings_thermostat -- ios_phone -- android_phone -- ring_camera - - ---- - -**`display_name`** _String_ - -Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. - ---- - -[**`errors`**](#errors) _List_ _of Objects_ - -Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. - -The specific structure of each object in this list depends on the value of its `error_code` field. - -Variants: - - - -Indicates that the account is disconnected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- account_disconnected - ---- - -**`is_connected_account_error`** _Boolean_ - -Indicates that the error is a [connected account](/api/connected_accounts/object) error. - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is not a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the Salto site user limit has been reached. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_subscription_limit_exceeded - ---- - -**`is_connected_account_error`** _Boolean_ - -Indicates that the error is a [connected account](/api/connected_accounts/object) error. - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is not a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the device is offline. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_offline - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the device has been removed. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_removed - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the hub is disconnected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- hub_disconnected - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the device is disconnected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_disconnected - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- empty_backup_access_code_pool - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the user is not authorized to use the August lock. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- august_lock_not_authorized - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the lock is not connected to a bridge. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- august_lock_missing_bridge - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the lock is not paired with a gateway. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- ttlock_lock_not_paired_to_gateway - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that device credentials are missing. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- missing_device_credentials - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the auxiliary heat is running. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- auxiliary_heat_running - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that a subscription is required to connect. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- subscription_required - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the Lockly lock is not connected to a Wi-Fi bridge. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- lockly_missing_wifi_bridge - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system). - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- bridge_disconnected - ---- - -**`is_bridge_error`** _Boolean_ - -Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). - ---- - -**`is_connected_account_error`** _Boolean_ - -Indicates whether the error is related specifically to the connected account. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - ---- - -**`is_managed`** _Boolean_ - -Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices). - ---- - -**`nickname`** _String_ - -Optional nickname to describe the device, settable through Seam. - ---- - -**`space_ids`** _List_ _of UUIDs_ - -IDs of the spaces the device is in. - ---- - -[**`warnings`**](#warnings) _List_ _of Objects_ - -Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. - -The specific structure of each object in this list depends on the value of its `warning_code` field. - -Variants: - - - -Indicates that the backup access code is unhealthy. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- partial_backup_access_code_pool - - - - -Indicates that there are too many backup codes. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- many_active_backup_codes - - - - -Indicates that the Wyze Lock is not connected to a gateway. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- wyze_device_missing_gateway - - - - -Indicates that a third-party integration has been detected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- third_party_integration_detected - - - - -Indicates that the Remote Unlock feature is not enabled in the settings." - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- ttlock_lock_gateway_unlocking_not_enabled - - - - -Indicates that the gateway signal is weak. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- ttlock_weak_gateway_signal - - - - -Indicates that the device is in power saving mode and may have limited functionality. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- power_saving_mode - - - - -Indicates that the temperature threshold has been exceeded. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- temperature_threshold_exceeded - - - - -Indicates that the device appears to be unresponsive. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_communication_degraded - - - - -Indicates that a scheduled maintenance window has been detected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- scheduled_maintenance_window - - - - -Indicates that the device has a flaky connection. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_has_flaky_connection - - - - -Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_office_mode - - - - -Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_privacy_mode - - - - -Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_subscription_limit_almost_reached - - - - -Indicates that an unknown issue occurred while syncing the state of the phone with the provider. This issue may affect the proper functioning of the phone. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- unknown_issue_with_phone - - - - -Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- lockly_time_zone_not_configured - - - - -Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- ultraloq_time_zone_unknown - - - - -Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- two_n_device_missing_timezone - - - - -Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- hub_required_for_additional_capabilities - - - - -Indicates that the key is in a locker that does not support the access codes API. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- keynest_unsupported_locker - - - - -Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- accessory_keypad_setup_required - - - - -Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- unreliable_online_status - - - - -Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. - -**`active_access_code_count`** _Number_ - -Number of active access codes on the device when the warning was set. - ---- - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`max_active_access_code_count`** _Number_ - -Maximum number of active access codes supported by the device. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- max_access_codes_reached - - - ---- - -**`workspace_id`** _UUID_ - -Unique identifier for the Seam workspace associated with the device. - ---- - -## device.properties - -**`active_thermostat_schedule`** _Object_ - -Active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - **Deprecated**. Use `active_thermostat_schedule_id` with - `/thermostats/schedules/get` instead. - - - - - - Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - - - ID of the desired [thermostat](/capability-guides/thermostats) device. - - - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - - - Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - - - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - ID of the [workspace](/core-concepts/workspaces) that contains the thermostat schedule. - - - - ---- - -**`active_thermostat_schedule_id`** _UUID_ - -ID of the active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - ---- - -**`akiles_metadata`** _Object_ - -Metadata for an Akiles device. - - - - - Group ID to which to add users for an Akiles device. - - - Gadget ID for an Akiles device. - - - Gadget name for an Akiles device. - - - Product name for an Akiles device. - - - ---- - -**`assa_abloy_credential_service_metadata`** _Object_ - -ASSA ABLOY Credential Service metadata for the phone. - - - - - Endpoints associated with the phone. - - - ID of the associated endpoint. - - - Indicated whether the endpoint is active. - - Indicates whether the credential service has active endpoints associated with the phone. - - - - ---- - -**`assa_abloy_vostio_metadata`** _Object_ - -Metadata for an ASSA ABLOY Vostio system. - - - - - Encoder name for an ASSA ABLOY Vostio system. - - - ---- - -**`august_metadata`** _Object_ - -Metadata for an August device. - - - - - Indicates whether an August device has a keypad. - - - House ID for an August device. - - - House name for an August device. - - - Keypad battery level for an August device. - - - Lock ID for an August device. - - - Lock name for an August device. - - - Model for an August device. - - - ---- - -**`available_climate_preset_modes`** _List_ _of Enums_ - -Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". - ---- - -**`available_climate_presets`** _List_ _of Objects_ - -Available [climate presets](/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. - - -can_delete Boolean - -Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - can_edit - -Boolean - -Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - can_use_with_thermostat_daily_programs - -Boolean - -Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - climate_preset_key - -String - -Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - climate_preset_mode - -Enum - -The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - - - home - - away - - wake - - sleep - - occupied - - unoccupied - - - - - cooling_set_point_celsius - -Number - -Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - cooling_set_point_fahrenheit - -Number - -Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - display_name - -String - -Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - ecobee_metadata - -Object - -Metadata specific to the Ecobee climate, if applicable. - - - ecobee_metadata.climate_ref - -String - -Reference to the Ecobee climate, if applicable. - - - ecobee_metadata.is_optimized - -Boolean - -Indicates if the climate preset is optimized by Ecobee. - - - ecobee_metadata.owner - -Enum - -Indicates whether the climate preset is owned by the user or the system. - - - - - user - - system - - - - - fan_mode_setting - -Enum - -Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - - - auto - - on - - circulate - - - - - heating_set_point_celsius - -Number - -Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - heating_set_point_fahrenheit - -Number - -Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - hvac_mode_setting - -Enum - -Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - - - off - - heat - - cool - - heat_cool - - eco - - - - - manual_override_allowed - -Boolean - -Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - -**Deprecated**. Use 'thermostat_schedule.is_override_allowed' - - - name - -String - -User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - ---- - -**`available_fan_mode_settings`** _List_ _of Enums_ - -Fan mode settings that the thermostat supports. - ---- - -**`available_hvac_mode_settings`** _List_ _of Enums_ - -HVAC mode settings that the thermostat supports. - ---- - -**`avigilon_alta_metadata`** _Object_ - -Metadata for an Avigilon Alta system. - - - - - Entry name for an Avigilon Alta system. - - - Total count of entry relays for an Avigilon Alta system. - - - Organization name for an Avigilon Alta system. - - - Site ID for an Avigilon Alta system. - - - Site name for an Avigilon Alta system. - - - Zone ID for an Avigilon Alta system. - - - Zone name for an Avigilon Alta system. - - - ---- - -**`brivo_metadata`** _Object_ - -Metadata for a Brivo device. - - - - - Indicates whether the Brivo access point has activation (remote unlock) enabled. - - - Device name for a Brivo device. - - - ---- - -**`controlbyweb_metadata`** _Object_ - -Metadata for a ControlByWeb device. - - - - - Device ID for a ControlByWeb device. - - - Device name for a ControlByWeb device. - - - Relay name for a ControlByWeb device. - - - ---- - -**`current_climate_setting`** _Object_ - -Current climate setting. - - - - - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - - - `home` - - `away` - - `wake` - - `sleep` - - `occupied` - - `unoccupied` - - - - - Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - Metadata specific to the Ecobee climate, if applicable. - - - Reference to the Ecobee climate, if applicable. - - - Indicates if the climate preset is optimized by Ecobee. - - - Indicates whether the climate preset is owned by the user or the system. - - - - - `user` - - `system` - - - - - Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - - - `auto` - - `on` - - `circulate` - - - - - Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - - - `off` - - `heat` - - `cool` - - `heat_cool` - - `eco` - - - - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - - - User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - ---- - -**`default_climate_setting`** _Object_ - - - **Deprecated**. use fallback_climate_preset_key to specify a fallback climate - preset instead. - - - - - - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - - - `home` - - `away` - - `wake` - - `sleep` - - `occupied` - - `unoccupied` - - - - - Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - Metadata specific to the Ecobee climate, if applicable. - - - Reference to the Ecobee climate, if applicable. - - - Indicates if the climate preset is optimized by Ecobee. - - - Indicates whether the climate preset is owned by the user or the system. - - - - - `user` - - `system` - - - - - Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - - - `auto` - - `on` - - `circulate` - - - - - Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - - - `off` - - `heat` - - `cool` - - `heat_cool` - - `eco` - - - - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - - - User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - ---- - -**`dormakaba_oracode_metadata`** _Object_ - -Metadata for a dormakaba Oracode device. - - - - - Device ID for a dormakaba Oracode device. - - - Door ID for a dormakaba Oracode device. - - - Indicates whether a door is wireless for a dormakaba Oracode device. - - - Door name for a dormakaba Oracode device. - - - IANA time zone for a dormakaba Oracode device. - - - Predefined time slots for a dormakaba Oracode device. - - - Check in time for a time slot for a dormakaba Oracode device. - - - Checkout time for a time slot for a dormakaba Oracode device. - - - ID of a user level for a dormakaba Oracode device. - - - Prefix for a user level for a dormakaba Oracode device. - - - Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot. - - - Indicates whether a time slot for a dormakaba Oracode device is in biweekly mode. - - - Indicates whether a time slot for a dormakaba Oracode device is a master time slot. - - - Indicates whether a time slot for a dormakaba Oracode device is a one-shot time slot. - - - Name of a time slot for a dormakaba Oracode device. - - - Prefix for a time slot for a dormakaba Oracode device. - - Site ID for a dormakaba Oracode device. - - **Deprecated**. Previously marked as "@DEPRECATED."- - - site_name - - String - - Site name for a dormakaba Oracode device. - - - - ---- - -**`ecobee_metadata`** _Object_ - -Metadata for an ecobee device. - - - - - Device name for an ecobee device. - - - Device ID for an ecobee device. - - - ---- - -**`fallback_climate_preset_key`** _String_ - -Key of the [fallback climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. - ---- - -**`fan_mode_setting`** _Enum_ - - - **Deprecated**. Use `current_climate_setting.fan_mode_setting` instead. - - - - -- auto -- on -- circulate - - ---- - -**`four_suites_metadata`** _Object_ - -Metadata for a 4SUITES device. - - - - - Device ID for a 4SUITES device. - - - Device name for a 4SUITES device. - - - Reclose delay, in seconds, for a 4SUITES device. - - - ---- - -**`genie_metadata`** _Object_ - -Metadata for a Genie device. - - - - - Lock name for a Genie device. - - - Door name for a Genie device. - - - ---- - -**`honeywell_resideo_metadata`** _Object_ - -Metadata for a Honeywell Resideo device. - - - - - Device name for a Honeywell Resideo device. - - - Device ID for a Honeywell Resideo device. - - - ---- - -**`igloo_metadata`** _Object_ - -Metadata for an igloo device. - - - - - Bridge ID for an igloo device. - - - Device ID for an igloo device. - - - Model for an igloo device. - - - ---- - -**`igloohome_metadata`** _Object_ - -Metadata for an igloohome device. - - - - - Bridge ID for an igloohome device. - - - Bridge name for an igloohome device. - - - Device ID for an igloohome device. - - - Device name for an igloohome device. - - - Indicates whether a keypad is linked to a bridge for an igloohome device. - - - Keypad ID for an igloohome device. - - - ---- - -**`is_cooling`** _Boolean_ - -Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. - ---- - -**`is_fan_running`** _Boolean_ - -Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. - ---- - -**`is_heating`** _Boolean_ - -Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. - ---- - -**`is_temporary_manual_override_active`** _Boolean_ - -Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. - ---- - -**`keynest_metadata`** _Object_ - -Metadata for a KeyNest device. - - - - - Address for a KeyNest device. - - - Current or last store ID for a KeyNest device. - - - Current status for a KeyNest device. - - - Current user company for a KeyNest device. - - - Current user email for a KeyNest device. - - - Current user name for a KeyNest device. - - - Current user phone number for a KeyNest device. - - - Default office ID for a KeyNest device. - - - Device name for a KeyNest device. - - - Fob ID for a KeyNest device. - - - Handover method for a KeyNest device. - - - Whether the KeyNest device has a photo. - - - Whether the key is in a locker that does not support the access codes API. - - - Key ID for a KeyNest device. - - - Key notes for a KeyNest device. - - - KeyNest app user for a KeyNest device. - - - Last movement timestamp for a KeyNest device. - - - Property ID for a KeyNest device. - - - Property postcode for a KeyNest device. - - - Status type for a KeyNest device. - - - Subscription plan for a KeyNest device. - - - ---- - -**`korelock_metadata`** _Object_ - -Metadata for a Korelock device. - - - - - Device ID for a Korelock device. - - - Device name for a Korelock device. - - - Firmware version for a Korelock device. - - - Location ID for a Korelock device. Required for timebound access codes. - - - Model code for a Korelock device. - - - Serial number for a Korelock device. - - - WiFi signal strength (0-1) for a Korelock device. - - - ---- - -**`kwikset_metadata`** _Object_ - -Metadata for a Kwikset device. - - - - - Device ID for a Kwikset device. - - - Device name for a Kwikset device. - - - Model number for a Kwikset device. - - - ---- - -**`lockly_metadata`** _Object_ - -Metadata for a Lockly device. - - - - - Device ID for a Lockly device. - - - Device name for a Lockly device. - - - Model for a Lockly device. - - - ---- - -**`max_cooling_set_point_celsius`** _Number_ - -Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - ---- - -**`max_cooling_set_point_fahrenheit`** _Number_ - -Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - ---- - -**`max_heating_set_point_celsius`** _Number_ - -Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - ---- - -**`max_heating_set_point_fahrenheit`** _Number_ - -Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. - ---- - -**`max_thermostat_daily_program_periods_per_day`** _Number_ - -Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. - ---- - -**`max_unique_climate_presets_per_thermostat_weekly_program`** _Number_ - -Maximum number of climate presets that the thermostat can support for weekly programming. - ---- - -**`min_cooling_set_point_celsius`** _Number_ - -Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - ---- - -**`min_cooling_set_point_fahrenheit`** _Number_ - -Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - ---- - -**`min_heating_cooling_delta_celsius`** _Number_ - -Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. - ---- - -**`min_heating_cooling_delta_fahrenheit`** _Number_ - -Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. - ---- - -**`min_heating_set_point_celsius`** _Number_ - -Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - ---- - -**`min_heating_set_point_fahrenheit`** _Number_ - -Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. - ---- - -**`minut_metadata`** _Object_ - -Metadata for a Minut device. - - - - - Device ID for a Minut device. - - - Device name for a Minut device. - - - Latest sensor values for a Minut device. - - - Latest accelerometer Z-axis reading for a Minut device. - - - Time of latest accelerometer Z-axis reading for a Minut device. - - - Value of latest accelerometer Z-axis reading for a Minut device. - - - Latest humidity reading for a Minut device. - - - Time of latest humidity reading for a Minut device. - - - Value of latest humidity reading for a Minut device. - - - Latest pressure reading for a Minut device. - - - Time of latest pressure reading for a Minut device. - - - Value of latest pressure reading for a Minut device. - - - Latest sound reading for a Minut device. - - - Time of latest sound reading for a Minut device. - - - Value of latest sound reading for a Minut device. - - - Latest temperature reading for a Minut device. - - - Time of latest temperature reading for a Minut device. - - - Value of latest temperature reading for a Minut device. - - - ---- - -**`model`** _Object_ - -Device model-related properties. - - - - - - **Deprecated**. use device.properties.model.can_connect_accessory_keypad - - - - Indicates whether the device can connect a accessory keypad. - - - Display name of the device model. - - - Indicates whether the device has a built in accessory keypad. - - - Display name that corresponds to the manufacturer-specific terminology for the device. - - - **Deprecated**. use device.can_program_offline_access_codes. - - - **Deprecated**. use device.can_program_online_access_codes. - - - ---- - -**`name`** _String_ - -Name of the device. - -**Deprecated**. use device.display_name instead - ---- - -**`nest_metadata`** _Object_ - -Metadata for a Google Nest device. - - - - - Custom device name for a Google Nest device. The device owner sets this value. - - - Device name for a Google Nest device. Google sets this value. - - - Display name for a Google Nest device. - - - Device ID for a Google Nest device. - - - ---- - -**`noiseaware_metadata`** _Object_ - -Metadata for a NoiseAware device. - - - - - Device ID for a NoiseAware device. - - - Device model for a NoiseAware device. - - - - - `indoor` - - `outdoor` - - - - - Device name for a NoiseAware device. - - - Noise level, in decibels, for a NoiseAware device. - - - Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. - - - ---- - -**`nuki_metadata`** _Object_ - -Metadata for a Nuki device. - - - - - Device ID for a Nuki device. - - - Device name for a Nuki device. - - - Indicates whether keypad 2 is paired for a Nuki device. - - - Indicates whether the keypad battery is in a critical state for a Nuki device. - - - Indicates whether the keypad is paired for a Nuki device. - - - ---- - -**`online`** _Boolean_ - -Indicates whether the device is online. - ---- - -**`relative_humidity`** _Number_ - -Reported relative humidity, as a value between 0 and 1, inclusive. - ---- - -**`ring_metadata`** _Object_ - -Metadata for a Ring device. - - - - - Device ID for a Ring device. - - - Device name for a Ring device. - - - ---- - -**`salto_ks_metadata`** _Object_ - -Metadata for a Salto KS device. - - - - - Battery level for a Salto KS device. - - - Customer reference for a Salto KS device. - - - Indicates whether the site has a Salto KS subscription that supports custom PINs. - - - Lock ID for a Salto KS device. - - - Lock type for a Salto KS device. - - - Locked state for a Salto KS device. - - - Model for a Salto KS device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - ---- - -**`salto_metadata`** _Object_ - -Metada for a Salto device. - -**Deprecated**. Use `salto_ks_metadata ` instead. - - - - - Battery level for a Salto device. - - - Customer reference for a Salto device. - - - Lock ID for a Salto device. - - - Lock type for a Salto device. - - - Locked state for a Salto device. - - - Model for a Salto device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - ---- - -**`salto_space_credential_service_metadata`** _Object_ - -Salto Space credential service metadata for the phone. - - - - - Indicates whether the credential service has an active associated phone. - - - ---- - -**`schlage_metadata`** _Object_ - -Metadata for a Schlage device. - - - - - Device ID for a Schlage device. - - - Device name for a Schlage device. - - - Model for a Schlage device. - - - ---- - -**`seam_bridge_metadata`** _Object_ - -Metadata for Seam Bridge. - - - - - Device number for Seam Bridge. - - - Name for Seam Bridge. - - - Unlock method for Seam Bridge. - - - - - `bridge` - - `doorking` - - - - - ---- - -**`sensi_metadata`** _Object_ - -Metadata for a Sensi device. - - - - - Device ID for a Sensi device. - - - Device name for a Sensi device. - - - Set to true when the device does not support the /dual-setpoints API endpoint. - - - Product type for a Sensi device. - - - ---- - -**`smartthings_metadata`** _Object_ - -Metadata for a SmartThings device. - - - - - Device ID for a SmartThings device. - - - Device name for a SmartThings device. - - - Location ID for a SmartThings device. - - - Model for a SmartThings device. - - - ---- - -**`tado_metadata`** _Object_ - -Metadata for a tado° device. - - - - - Device type for a tado° device. - - - Serial number for a tado° device. - - - ---- - -**`tedee_metadata`** _Object_ - -Metadata for a Tedee device. - - - - - Bridge ID for a Tedee device. - - - Bridge name for a Tedee device. - - - Device ID for a Tedee device. - - - Device model for a Tedee device. - - - Device name for a Tedee device. - - - Keypad ID for a Tedee device. - - - Serial number for a Tedee device. - - - ---- - -**`temperature_celsius`** _Number_ - -Reported temperature in °C. - ---- - -**`temperature_fahrenheit`** _Number_ - -Reported temperature in °F. - ---- - -**`temperature_threshold`** _Object_ - -Current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - - - Lower limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Lower limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Upper limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Upper limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - ---- - -**`thermostat_daily_program_period_precision_minutes`** _Number_ - -Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. - ---- - -**`thermostat_daily_programs`** _List_ _of Objects_ - -Configured [daily programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - - -created_at Datetime - -Date and time at which the thermostat daily program was created. - - - device_id - -UUID - -ID of the thermostat device on which the thermostat daily program is configured. - - - name - -String - -User-friendly name to identify the thermostat daily program. - - - periods - -List of Objects - -Array of thermostat daily program periods. - - - Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`. - - - Time at which the thermostat daily program period starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - thermostat_daily_program_id - - UUID - - ID of the thermostat daily program. - - - workspace_id - - UUID - - ID of the [workspace](/core-concepts/workspaces) that contains the thermostat daily program. - - - ---- - -**`thermostat_weekly_program`** _Object_ - -Current [weekly program](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - - - - - Date and time at which the thermostat weekly program was created. - - - ID of the thermostat daily program to run on Fridays. - - - ID of the thermostat daily program to run on Mondays. - - - ID of the thermostat daily program to run on Saturdays. - - - ID of the thermostat daily program to run on Sundays. - - - ID of the thermostat daily program to run on Thursdays. - - - ID of the thermostat daily program to run on Tuesdays. - - - ID of the thermostat daily program to run on Wednesdays. - - - ---- - -**`ttlock_metadata`** _Object_ - -Metadata for a TTLock device. - - - - - Feature value for a TTLock device. - - - Features for a TTLock device. - - - Indicates whether a TTLock device supports auto-lock time configuration. - - - Indicates whether a TTLock device supports an incomplete keyboard passcode. - - - Indicates whether a TTLock device supports the lock command. - - - Indicates whether a TTLock device supports a passcode. - - - Indicates whether a TTLock device supports passcode management. - - - Indicates whether a TTLock device supports unlock via gateway. - - - Indicates whether a TTLock device supports Wi-Fi. - - - Indicates whether a TTLock device has a gateway. - - - Lock alias for a TTLock device. - - - Lock ID for a TTLock device. - - - Wireless keypads for a TTLock device. - - - ID for a wireless keypad for a TTLock device. - - - Name for a wireless keypad for a TTLock device. - - - ---- - -**`two_n_metadata`** _Object_ - -Metadata for a 2N device. - - - - - Device ID for a 2N device. - - - Device name for a 2N device. - - - ---- - -**`ultraloq_metadata`** _Object_ - -Metadata for an Ultraloq device. - - - - - Device ID for an Ultraloq device. - - - Device name for an Ultraloq device. - - - Device type for an Ultraloq device. - - - IANA timezone for the Ultraloq device. - - - ---- - -**`visionline_metadata`** _Object_ - -Metadata for an ASSA ABLOY Visionline system. - - - - - Encoder ID for an ASSA ABLOY Visionline system. - - - ---- - -**`wyze_metadata`** _Object_ - -Metadata for a Wyze device. - - - - - Device ID for a Wyze device. - - - Device information model for a Wyze device. - - - Device name for a Wyze device. - - - Keypad UUID for a Wyze device. - - - Locker status (hardlock) for a Wyze device. - - - Product model for a Wyze device. - - - Product name for a Wyze device. - - - Product type for a Wyze device. - - - ---- - -## Errors - -**`auxiliary_heat_running`** - -Indicates that the auxiliary heat is running. - ---- - -**`ttlock_lock_not_paired_to_gateway`** - -Indicates that the lock is not paired with a gateway. - ---- - -**`subscription_required`** - -Indicates that a subscription is required to connect. - ---- - -**`missing_device_credentials`** - -Indicates that device credentials are missing. - ---- - -**`lockly_missing_wifi_bridge`** - -Indicates that the Lockly lock is not connected to a Wi-Fi bridge. - ---- - -**`hub_disconnected`** - -Indicates that the hub is disconnected. - ---- - -**`device_removed`** - -Indicates that the device has been removed. - ---- - -**`device_offline`** - -Indicates that the device is offline. - ---- - -**`device_disconnected`** - -Indicates that the device is disconnected. - ---- - -**`account_disconnected`** - -Indicates that the account is disconnected. - ---- - -**`bridge_disconnected`** - -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system). - ---- - -## Warnings - -**`device_communication_degraded`** - -Indicates that the device appears to be unresponsive. - ---- - -**`device_has_flaky_connection`** - -Indicates that the device has a flaky connection. - ---- - -**`lockly_time_zone_not_configured`** - -Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. - ---- - -**`salto_ks_subscription_limit_almost_reached`** - -Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. - ---- - -**`scheduled_maintenance_window`** - -Indicates that a scheduled maintenance window has been detected. - ---- - -**`temperature_threshold_exceeded`** - -Indicates that the temperature threshold has been exceeded. - ---- - -**`third_party_integration_detected`** - -Indicates that a third-party integration has been detected. - ---- - -**`ttlock_weak_gateway_signal`** - -Indicates that the gateway signal is weak. - ---- - -**`two_n_device_missing_timezone`** - -Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. - ---- - -**`ultraloq_time_zone_unknown`** - -Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. - ---- - -**`wyze_device_missing_gateway`** - -Indicates that the Wyze Lock is not connected to a gateway. - ---- - -## Endpoints - -[**`/thermostats/activate_climate_preset`**](./activate_climate_preset) - -Activates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/cool`**](./cool) - -Sets a specified [thermostat](/capability-guides/thermostats) to [cool mode](/capability-guides/thermostats/configure-current-climate-settings). - -[**`/thermostats/create_climate_preset`**](./create_climate_preset) - -Creates a [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/delete_climate_preset`**](./delete_climate_preset) - -Deletes a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/heat`**](./heat) - -Sets a specified [thermostat](/capability-guides/thermostats) to [heat mode](/capability-guides/thermostats/configure-current-climate-settings). - -[**`/thermostats/heat_cool`**](./heat_cool) - -Sets a specified [thermostat](/capability-guides/thermostats) to [heat-cool ("auto") mode](/capability-guides/thermostats/configure-current-climate-settings). - -[**`/thermostats/list`**](./list) - -Returns a list of all [thermostats](/capability-guides/thermostats). - -[**`/thermostats/off`**](./off) - -Sets a specified [thermostat](/capability-guides/thermostats) to ["off" mode](/capability-guides/thermostats/configure-current-climate-settings). - -[**`/thermostats/set_fallback_climate_preset`**](./set_fallback_climate_preset) - -Sets a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) as the ["fallback"](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) preset for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/set_fan_mode`**](./set_fan_mode) - -Sets the [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/set_hvac_mode`**](./set_hvac_mode) - -Sets the [HVAC mode](/capability-guides/thermostats/configure-current-climate-settings) for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/set_temperature_threshold`**](./set_temperature_threshold) - -Sets a [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range. - -[**`/thermostats/update_climate_preset`**](./update_climate_preset) - -Updates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/update_weekly_program`**](./update_weekly_program) - -Updates the thermostat weekly program for a thermostat device. To configure a weekly program, specify the ID of the daily program that you want to use for each day of the week. When you update a weekly program, the set of programs that you specify overwrites any previous weekly program for the thermostat. diff --git a/mintlify-codegen/source/api/thermostats/simulate/object.mdx b/mintlify-codegen/source/api/thermostats/simulate/object.mdx deleted file mode 100644 index ad1c7b8b2..000000000 --- a/mintlify-codegen/source/api/thermostats/simulate/object.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: 'Thermostat Simulations' -description: 'Use the thermostat simulation endpoints to mimic HVAC mode changes and reaching a target temperature on sandbox devices to test your thermostat app.' ---- - -## Endpoints - -[**`/thermostats/simulate/hvac_mode_adjusted`**](./hvac_mode_adjusted) - -Simulates having adjusted the [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](/capability-guides/thermostats). Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). - -[**`/thermostats/simulate/temperature_reached`**](./temperature_reached) - -Simulates a [thermostat](/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). diff --git a/mintlify-codegen/source/api/user_identities/unmanaged/object.mdx b/mintlify-codegen/source/api/user_identities/unmanaged/object.mdx deleted file mode 100644 index 262d557f5..000000000 --- a/mintlify-codegen/source/api/user_identities/unmanaged/object.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 'Unmanaged' -description: 'Use the unmanaged user identity endpoints to get, list, and update user identities that Seam tracks but does not manage (where is_managed is false).' ---- - -## Endpoints - -[**`/user_identities/unmanaged/get`**](./get) - -Returns a specified unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). - -[**`/user_identities/unmanaged/list`**](./list) - -Returns a list of all unmanaged [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). - -[**`/user_identities/unmanaged/update`**](./update) - -Updates an unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed. diff --git a/mintlify-docs/api/access_codes/simulate/object.mdx b/mintlify-docs/api/access_codes/simulate/object.mdx index 76cca742e..aef95bd3c 100644 --- a/mintlify-docs/api/access_codes/simulate/object.mdx +++ b/mintlify-docs/api/access_codes/simulate/object.mdx @@ -5,6 +5,6 @@ description: 'Use the access code simulation endpoints to create unmanaged acces ## Endpoints -[**`/access_codes/simulate/create_unmanaged_access_code`**](./create_unmanaged_access_code) +[**`/access_codes/simulate/create_unmanaged_access_code`**](/api/access_codes/simulate/create_unmanaged_access_code) -Simulates the creation of an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). +Simulates the creation of an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/access_grants/unmanaged/object.mdx b/mintlify-docs/api/access_grants/unmanaged/object.mdx index 910ad2e66..00703bc94 100644 --- a/mintlify-docs/api/access_grants/unmanaged/object.mdx +++ b/mintlify-docs/api/access_grants/unmanaged/object.mdx @@ -5,14 +5,18 @@ description: 'Use the unmanaged Access Grant endpoints to get, list, and update ## Endpoints -[**`/access_grants/unmanaged/get`**](./get) +[**`/access_grants/unmanaged/get`**](/api/access_grants/unmanaged/get) Get an unmanaged Access Grant (where is_managed = false). -[**`/access_grants/unmanaged/list`**](./list) +[**`/access_grants/unmanaged/list`**](/api/access_grants/unmanaged/list) Gets unmanaged Access Grants (where is_managed = false). -[**`/access_grants/unmanaged/update`**](./update) +[**`/access_grants/unmanaged/update`**](/api/access_grants/unmanaged/update) Updates an unmanaged Access Grant to make it managed. + +This endpoint can only be used to convert unmanaged access grants to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed access grants back to unmanaged. + +When converting an unmanaged access grant to managed, all associated access methods will also be converted to managed. diff --git a/mintlify-docs/api/access_methods/unmanaged/object.mdx b/mintlify-docs/api/access_methods/unmanaged/object.mdx index 03a57c2d7..709071a59 100644 --- a/mintlify-docs/api/access_methods/unmanaged/object.mdx +++ b/mintlify-docs/api/access_methods/unmanaged/object.mdx @@ -5,10 +5,10 @@ description: 'Use the unmanaged access method endpoints to get and list access m ## Endpoints -[**`/access_methods/unmanaged/get`**](./get) +[**`/access_methods/unmanaged/get`**](/api/access_methods/unmanaged/get) Gets an unmanaged access method (where is_managed = false). -[**`/access_methods/unmanaged/list`**](./list) +[**`/access_methods/unmanaged/list`**](/api/access_methods/unmanaged/list) Lists all unmanaged access methods (where is_managed = false), usually filtered by Access Grant. diff --git a/mintlify-docs/api/acs/encoders/simulate/object.mdx b/mintlify-docs/api/acs/encoders/simulate/object.mdx index 24f7bb24e..fabece93e 100644 --- a/mintlify-docs/api/acs/encoders/simulate/object.mdx +++ b/mintlify-docs/api/acs/encoders/simulate/object.mdx @@ -5,18 +5,18 @@ description: 'Use the encoder simulation endpoints to make the next credential e ## Endpoints -[**`/acs/encoders/simulate/next_credential_encode_will_fail`**](./next_credential_encode_will_fail) +[**`/acs/encoders/simulate/next_credential_encode_will_fail`**](/api/acs/encoders/simulate/next_credential_encode_will_fail) -Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). +Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). -[**`/acs/encoders/simulate/next_credential_encode_will_succeed`**](./next_credential_encode_will_succeed) +[**`/acs/encoders/simulate/next_credential_encode_will_succeed`**](/api/acs/encoders/simulate/next_credential_encode_will_succeed) -Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). +Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). -[**`/acs/encoders/simulate/next_credential_scan_will_fail`**](./next_credential_scan_will_fail) +[**`/acs/encoders/simulate/next_credential_scan_will_fail`**](/api/acs/encoders/simulate/next_credential_scan_will_fail) -Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). +Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). -[**`/acs/encoders/simulate/next_credential_scan_will_succeed`**](./next_credential_scan_will_succeed) +[**`/acs/encoders/simulate/next_credential_scan_will_succeed`**](/api/acs/encoders/simulate/next_credential_scan_will_succeed) -Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). +Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/acs/object.mdx b/mintlify-docs/api/acs/object.mdx index a4185d6da..9a5d1e020 100644 --- a/mintlify-docs/api/acs/object.mdx +++ b/mintlify-docs/api/acs/object.mdx @@ -20,31 +20,31 @@ To grant access using the Seam access control system API, use the following basi ## Resources -The Access Control Systems (ACS) namespace contains the following resources: - -### [`acs_access_group`](#acs_access_group) +### [`acs_access_group`](/api/acs/access_groups/object) Group that defines the entrances to which a set of users has access and, in some cases, the access schedule for these entrances and users. -Some access control systems use [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. +Some access control systems use [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. -To learn whether your access control system supports access groups, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). +To learn whether your access control system supports access groups, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). --- -### [`acs_credential`](#acs_credential) +### [`acs_credential`](/api/acs/credentials/object) -Means by which an [access control system user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems). +Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems). An access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs. For each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type. +For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials. + --- -### [`acs_encoder`](#acs_encoder) +### [`acs_encoder`](/api/acs/encoders/object) -Represents a hardware device that encodes [credential](/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](/low-level-apis/access-systems). +Represents a hardware device that encodes [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](https://docs.seam.co/low-level-apis/access-systems). Some access control systems require credentials to be encoded onto plastic key cards using a card encoder. This process involves the following two key steps: @@ -55,36 +55,36 @@ Some access control systems require credentials to be encoded onto plastic key c Separately, the Seam API also supports card scanning, which enables you to scan and read the encoded data on a card. You can use this action to confirm consistency with access control system records or diagnose discrepancies if needed. -See [Working with Card Encoders and Scanners](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). +See [Working with Card Encoders and Scanners](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). -To verify if your access control system requires a card encoder, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). +To verify if your access control system requires a card encoder, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). --- -### [`acs_entrance`](#acs_entrance) +### [`acs_entrance`](/api/acs/entrances/object) -Represents an [entrance](/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](/low-level-apis/access-systems). +Represents an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/low-level-apis/access-systems). In an access control system, an entrance is a secured door, gate, zone, or other method of entry. You can list details for all the `acs_entrance` resources in your workspace or get these details for a specific `acs_entrance`. You can also list all entrances associated with a specific credential, and you can list all credentials associated with a specific entrance. --- -### [`acs_system`](#acs_system) +### [`acs_system`](/api/acs/systems/object) -Represents an [access control system](/low-level-apis/access-systems). +Represents an [access control system](https://docs.seam.co/low-level-apis/access-systems). -Within an `acs_system`, create [`acs_user`s](/api/acs/users/object) and [`acs_credential`s](/api/acs/credentials/object) to grant access to the `acs_user`s. +Within an `acs_system`, create [`acs_user`s](https://docs.seam.co/api/acs/users/object#acs_user) and [`acs_credential`s](https://docs.seam.co/api/acs/credentials/object#acs_credential) to grant access to the `acs_user`s. -For details about the resources associated with an access control system, see the [access control systems namespace](/api/acs/object). +For details about the resources associated with an access control system, see the [access control systems namespace](https://docs.seam.co/api/acs/object). --- -### [`acs_user`](#acs_user) +### [`acs_user`](/api/acs/users/object) -Represents a [user](/low-level-apis/access-systems/user-management) in an [access system](/low-level-apis/access-systems). +Represents a [user](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access system](https://docs.seam.co/low-level-apis/access-systems). An access system user typically refers to an individual who requires access, like an employee or resident. Each user can possess multiple credentials that serve as their keys or identifiers for access. The type of credential can vary widely. For example, in the Salto system, a user can have a PIN code, a mobile app account, and a fob. In other platforms, it is not uncommon for a user to have more than one of the same credential type, such as multiple key cards. Additionally, these credentials can have a schedule or validity period. -For details about how to configure users in your access system, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). +For details about how to configure users in your access system, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). --- diff --git a/mintlify-docs/api/action_attempts/object.mdx b/mintlify-docs/api/action_attempts/object.mdx index d2bf35a6c..e0f5f684b 100644 --- a/mintlify-docs/api/action_attempts/object.mdx +++ b/mintlify-docs/api/action_attempts/object.mdx @@ -5,7 +5,6 @@ description: 'Learn how the action_attempt object tracks an attempt to perform a ## The action_attempt Object - Represents an attempt to perform an action against a device. @@ -26,65 +25,45 @@ Represents an attempt to perform an action against a device. ## Properties -**`action_attempt_id`** _UUID_ - -ID of the action attempt. - ---- - -**`status`** _Enum_ - -Status of the action attempt. - - - -- pending -- success -- error - - ---- - -**`action_type`** _Enum_ - -Type of the action attempt. - - - -- LOCK_DOOR -- UNLOCK_DOOR -- SCAN_CREDENTIAL -- ENCODE_CREDENTIAL -- RESET_SANDBOX_WORKSPACE -- SET_FAN_MODE -- SET_HVAC_MODE -- ACTIVATE_CLIMATE_PRESET -- SIMULATE_KEYPAD_CODE_ENTRY -- SIMULATE_MANUAL_LOCK_VIA_KEYPAD -- PUSH_THERMOSTAT_PROGRAMS -- CONFIGURE_AUTO_LOCK - - ---- - -**`error`** _Object_ - -Error associated with the action attempt. Null for pending and successful action attempts. - ---- - -**`result`** _Object_ - -Result of the action attempt. Null for pending and errored action attempts. - ---- - -## Endpoints - -[**`/action_attempts/get`**](./get) - -Returns a specified [action attempt](/core-concepts/action-attempts). - -[**`/action_attempts/list`**](./list) - -Returns a list of the [action attempts](/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s. + + ID of the action attempt. + + + + Status of the action attempt. + + + - `pending` + - `success` + - `error` + + + + + Type of the action attempt. + + + - `LOCK_DOOR` + - `UNLOCK_DOOR` + - `SCAN_CREDENTIAL` + - `ENCODE_CREDENTIAL` + - `SCAN_TO_ASSIGN_CREDENTIAL` + - `ASSIGN_CREDENTIAL` + - `RESET_SANDBOX_WORKSPACE` + - `SET_FAN_MODE` + - `SET_HVAC_MODE` + - `ACTIVATE_CLIMATE_PRESET` + - `SIMULATE_KEYPAD_CODE_ENTRY` + - `SIMULATE_MANUAL_LOCK_VIA_KEYPAD` + - `PUSH_THERMOSTAT_PROGRAMS` + - `CONFIGURE_AUTO_LOCK` + + + + + Error associated with the action attempt. Null for pending and successful action attempts. + + + + Result of the action attempt. Null for pending and errored action attempts. + diff --git a/mintlify-docs/api/connected_accounts/simulate/object.mdx b/mintlify-docs/api/connected_accounts/simulate/object.mdx index 3533e7347..c171eeef2 100644 --- a/mintlify-docs/api/connected_accounts/simulate/object.mdx +++ b/mintlify-docs/api/connected_accounts/simulate/object.mdx @@ -5,6 +5,6 @@ description: 'Use the connected account simulation endpoint to disconnect an acc ## Endpoints -[**`/connected_accounts/simulate/disconnect`**](./disconnect) +[**`/connected_accounts/simulate/disconnect`**](/api/connected_accounts/simulate/disconnect) -Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). +Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/devices/simulate/object.mdx b/mintlify-docs/api/devices/simulate/object.mdx index 14b248969..2e4661298 100644 --- a/mintlify-docs/api/devices/simulate/object.mdx +++ b/mintlify-docs/api/devices/simulate/object.mdx @@ -5,37 +5,35 @@ description: 'Use the device simulation endpoints to connect, disconnect, and re ## Endpoints -[**`/devices/simulate/connect`**](./connect) +[**`/devices/simulate/connect`**](/api/devices/simulate/connect) -Simulates connecting a device to Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). +Simulates connecting a device to Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). -[**`/devices/simulate/connect_to_hub`**](./connect_to_hub) +[**`/devices/simulate/connect_to_hub`**](/api/devices/simulate/connect_to_hub) Simulates bringing the Wi‑Fi hub (bridge) back online for a device. Only applicable for sandbox workspaces and currently implemented for August and TTLock locks. -This will clear the corresponding `hub_disconnected` or -`ttlock_lock_not_paired_to_gateway` error on the device. +This will clear the `hub_disconnected` error on the device. -[**`/devices/simulate/disconnect`**](./disconnect) +[**`/devices/simulate/disconnect`**](/api/devices/simulate/disconnect) -Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). +Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). -[**`/devices/simulate/disconnect_from_hub`**](./disconnect_from_hub) +[**`/devices/simulate/disconnect_from_hub`**](/api/devices/simulate/disconnect_from_hub) Simulates taking the Wi‑Fi hub (bridge) offline for a device. Only applicable for sandbox workspaces and currently implemented for August, TTLock, and IglooHome devices. -This will set the corresponding `hub_disconnected` or -`ttlock_lock_not_paired_to_gateway` error on the device, or mark the +This will set the `hub_disconnected` error on the device, or mark the IglooHome bridge offline in sandbox. -[**`/devices/simulate/paid_subscription`**](./paid_subscription) +[**`/devices/simulate/paid_subscription`**](/api/devices/simulate/paid_subscription) Toggle the simulated Nuki Smart Hosting subscription for a device (sandbox only). Send `is_expired: true` to simulate an expired subscription, or `false` to simulate an active subscription. The actual device error is created/cleared by the poller after this state change. -[**`/devices/simulate/remove`**](./remove) +[**`/devices/simulate/remove`**](/api/devices/simulate/remove) -Simulates removing a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). +Simulates removing a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). diff --git a/mintlify-docs/api/locks/object.mdx b/mintlify-docs/api/locks/object.mdx index 24cf10f38..a8870229f 100644 --- a/mintlify-docs/api/locks/object.mdx +++ b/mintlify-docs/api/locks/object.mdx @@ -5,7 +5,6 @@ description: 'Learn how the device object represents a smart lock connected to S ## The device Object for Locks - Represents a [lock](/low-level-apis/smart-locks). The Seam API enables you to control connected smart locks from a wide variety of manufacturers, including locks that provide online and offline [access code](/low-level-apis/smart-locks/access-codes) programming. @@ -14,69 +13,6 @@ Depending on the smart lock brand and model, actions that you can perform includ See also [Webhooks](/developer-tools/webhooks). - - - -A lock device resource. - -```json -{ - "can_program_online_access_codes": true, - "can_remotely_lock": true, - "can_remotely_unlock": true, - "capabilities_supported": ["access_code", "lock"], - "connected_account_id": "8e3a4f1b-2c7d-4a9e-8b5f-3d2c1a0b9e8f", - "created_at": "2025-03-27T02:08:16.418Z", - "space_ids": [], - "custom_metadata": { "id": "internalId1" }, - "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", - "device_type": "schlage_lock", - "display_name": "FRONT DOOR", - "errors": [], - "is_managed": true, - "location": { "location_name": "Front Door", "timezone": "America/New_York" }, - "nickname": "Front Door", - "properties": { - "appearance": { "name": "FRONT DOOR" }, - "battery": { "level": 0.48, "status": "good" }, - "battery_level": 0.48, - "code_constraints": [{ "constraint_type": "name_length", "max_length": 9 }], - "has_native_entry_events": true, - "image_alt_text": "Schlage Sense Smart Deadbolt with Camelot Trim, Front", - "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/schlage_sense-smart-deadbolt-with-camelot-trim_front.png&q=75&w=128", - "locked": false, - "manufacturer": "schlage", - "model": { - "accessory_keypad_supported": false, - "can_connect_accessory_keypad": false, - "display_name": "Encode", - "has_built_in_keypad": true, - "manufacturer_display_name": "Schlage", - "offline_access_codes_supported": false, - "online_access_codes_supported": true - }, - "name": "FRONT DOOR", - "offline_access_codes_enabled": false, - "online": true, - "online_access_codes_enabled": true, - "schlage_metadata": { - "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", - "device_name": "FRONT DOOR", - "model": "Encode" - }, - "serial_number": "34000000000531e0", - "supported_code_lengths": [4, 5, 6, 7, 8], - "supports_backup_access_code_pool": true, - "supports_offline_access_codes": false - }, - "warnings": [], - "workspace_id": "5d7f2e1a-9c8b-4f3e-8d2c-1a0b9e8f7c6d" -} -``` - - - - ```json Lock Device @@ -164,2702 +100,1422 @@ A lock device resource. ## Properties -**`can_configure_auto_lock`** _Boolean_ - ---- - -**`can_hvac_cool`** _Boolean_ - ---- - -**`can_hvac_heat`** _Boolean_ - ---- - -**`can_hvac_heat_cool`** _Boolean_ - ---- - -**`can_program_offline_access_codes`** _Boolean_ - ---- - -**`can_program_online_access_codes`** _Boolean_ - ---- - -**`can_program_thermostat_programs_as_different_each_day`** _Boolean_ - ---- - -**`can_program_thermostat_programs_as_same_each_day`** _Boolean_ - ---- - -**`can_program_thermostat_programs_as_weekday_weekend`** _Boolean_ - ---- - -**`can_remotely_lock`** _Boolean_ - ---- - -**`can_remotely_unlock`** _Boolean_ - ---- - -**`can_run_thermostat_programs`** _Boolean_ - ---- - -**`can_simulate_connection`** _Boolean_ - ---- - -**`can_simulate_disconnection`** _Boolean_ - ---- - -**`can_simulate_hub_connection`** _Boolean_ - ---- - -**`can_simulate_hub_disconnection`** _Boolean_ - ---- - -**`can_simulate_paid_subscription`** _Boolean_ - ---- - -**`can_simulate_removal`** _Boolean_ - ---- - -**`can_turn_off_hvac`** _Boolean_ - ---- - -**`can_unlock_with_code`** _Boolean_ - ---- - -**`capabilities_supported`** _List_ _of Enums_ - -Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). - ---- - -**`connected_account_id`** _UUID_ - -Unique identifier for the account associated with the device. - ---- - -**`created_at`** _Datetime_ - -Date and time at which the device object was created. - ---- - -**`custom_metadata`** _Record_ - -Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. - ---- - -**`device_id`** _UUID_ - -ID of the device. - ---- - -**`device_type`** _Enum_ - -Type of the device. - - - -- akuvox_lock -- august_lock -- brivo_access_point -- butterflymx_panel -- avigilon_alta_entry -- doorking_lock -- genie_door -- igloo_lock -- linear_lock -- lockly_lock -- kwikset_lock -- nuki_lock -- salto_lock -- schlage_lock -- smartthings_lock -- wyze_lock -- yale_lock -- two_n_intercom -- controlbyweb_device -- ttlock_lock -- igloohome_lock -- four_suites_door -- dormakaba_oracode_door -- tedee_lock -- akiles_lock -- ultraloq_lock -- korelock_lock -- keynest_key -- noiseaware_activity_zone -- minut_sensor -- ecobee_thermostat -- nest_thermostat -- honeywell_resideo_thermostat -- tado_thermostat -- sensi_thermostat -- smartthings_thermostat -- ios_phone -- android_phone -- ring_camera - - ---- - -**`display_name`** _String_ - -Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. - ---- - -[**`errors`**](#errors) _List_ _of Objects_ - -Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. - -The specific structure of each object in this list depends on the value of its `error_code` field. - -Variants: - - - -Indicates that the account is disconnected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- account_disconnected - ---- - -**`is_connected_account_error`** _Boolean_ - -Indicates that the error is a [connected account](/api/connected_accounts/object) error. - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is not a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the Salto site user limit has been reached. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_subscription_limit_exceeded - ---- - -**`is_connected_account_error`** _Boolean_ - -Indicates that the error is a [connected account](/api/connected_accounts/object) error. - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is not a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the device is offline. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_offline - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the device has been removed. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- + + Indicates whether the lock supports configuring automatic locking. + -**`error_code`** _Enum_ + + Indicates whether the thermostat supports cooling. + -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + + Indicates whether the thermostat supports heating. + -Enum values: + + Indicates whether the thermostat supports simultaneous heating and cooling. + -- device_removed + + Indicates whether the device supports programming offline access codes. + ---- + + Indicates whether the device supports programming online access codes. + -**`is_device_error`** _Boolean_ + + Indicates whether the thermostat supports different climate programs for each day of the week. + -Indicates that the error is a device error. + + Indicates whether the thermostat supports a single climate program applied to every day. + ---- + + Indicates whether the thermostat supports weekday/weekend climate programs. + -**`message`** _String_ + + Indicates whether the device supports remote locking. + -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + Indicates whether the device supports remote unlocking. + - - + + Indicates whether the thermostat supports running climate programs. + -Indicates that the hub is disconnected. + + Indicates whether the device supports simulating connection in a sandbox. + -**`created_at`** _Datetime_ + + Indicates whether the device supports simulating disconnection in a sandbox. + -Date and time at which Seam created the error. + + Indicates whether the hub supports simulating connection in a sandbox. + ---- + + Indicates whether the hub supports simulating disconnection in a sandbox. + -**`error_code`** _Enum_ + + Indicates whether the device supports simulating a paid subscription in a sandbox. + -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + + Indicates whether the device supports simulating removal in a sandbox. + -Enum values: + + Indicates whether the thermostat can be turned off. + -- hub_disconnected + + Indicates whether the lock supports unlocking with an access code. + ---- + + Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). + -**`is_device_error`** _Boolean_ + + Unique identifier for the account associated with the device. + -Indicates that the error is a device error. + + Date and time at which the device object was created. + ---- + + Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + -**`message`** _String_ + + ID of the device. + -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + Type of the device. + - - + + Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. + + + + Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. + + + + Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). + + + + Optional nickname to describe the device, settable through Seam. + + + + Properties of the device. + + + Accessory keypad properties and state. + + + Keypad battery properties. + + + The level. + + + + + Indicates if an accessory keypad is connected to the device. + + + + + Appearance-related properties, as reported by the device. + + + Name of the device as seen from the provider API and application, not settable through Seam. + + + + + Represents the current status of the battery charge level. + + + Battery charge level as a value between 0 and 1, inclusive. + + + Represents the current status of the battery charge level. Values are `critical`, which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; `low`, which signifies that the battery is under the preferred threshold and should be charged soon; `good`, which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and `full`, which represents a battery that is fully charged, providing the maximum duration of usage. + + + + + Indicates the battery level of the device as a decimal value between 0 and 1, inclusive. + + + Array of noise threshold IDs that are currently triggering. + + + Indicates whether the device has direct power. + + + Alt text for the device image. + + + Image URL for the device. + + + Manufacturer of the device. When a device, such as a smart lock, is connected through a smart hub, the manufacturer of the device might be different from that of the smart hub. + + + Device model-related properties. + + + The accessory keypad supported. + + + Indicates whether the device can connect a accessory keypad. + + + Display name of the device model. + + + Indicates whether the device has a built in accessory keypad. + + + Display name that corresponds to the manufacturer-specific terminology for the device. + + + The offline access codes supported. + + + The online access codes supported. + + + + + Name of the device. + + + Indicates current noise level in decibels, if the device supports noise detection. + + + Indicates whether it is currently possible to use offline access codes for the device. + + + Indicates whether the device is online. + + + Indicates whether it is currently possible to use online access codes for the device. + + + Serial number of the device. + + + The supports accessory keypad. + + + The supports offline access codes. + + + ASSA ABLOY Credential Service metadata for the phone. + + + Endpoints associated with the phone. + + + Indicates whether the credential service has active endpoints associated with the phone. + + + + + Salto Space credential service metadata for the phone. + + + Indicates whether the credential service has an active associated phone. + + + + + Metadata for an Akiles device. + + + Group ID to which to add users for an Akiles device. + + + Gadget ID for an Akiles device. + + + Gadget name for an Akiles device. + + + Product name for an Akiles device. + + + + + Metadata for an ASSA ABLOY Vostio system. + + + Encoder name for an ASSA ABLOY Vostio system. + + + + + Metadata for an August device. + + + Indicates whether an August device has a keypad. + + + House ID for an August device. + + + House name for an August device. + + + Keypad battery level for an August device. + + + Lock ID for an August device. + + + Lock name for an August device. + + + Model for an August device. + + + + + Metadata for an Avigilon Alta system. + + + Entry name for an Avigilon Alta system. + + + Total count of entry relays for an Avigilon Alta system. + + + Organization name for an Avigilon Alta system. + + + Site ID for an Avigilon Alta system. + + + Site name for an Avigilon Alta system. + + + Zone ID for an Avigilon Alta system. + + + Zone name for an Avigilon Alta system. + + + + + Metadata for a Brivo device. + + + Indicates whether the Brivo access point has activation (remote unlock) enabled. + + + Device name for a Brivo device. + + + + + Metadata for a ControlByWeb device. + + + Device ID for a ControlByWeb device. + + + Device name for a ControlByWeb device. + + + Relay name for a ControlByWeb device. + + + + + Metadata for a dormakaba Oracode device. + + + Device ID for a dormakaba Oracode device. + + + Door ID for a dormakaba Oracode device. + + + Indicates whether a door is wireless for a dormakaba Oracode device. + + + Door name for a dormakaba Oracode device. + + + IANA time zone for a dormakaba Oracode device. + + + Predefined time slots for a dormakaba Oracode device. + + + Site ID for a dormakaba Oracode device. + + + Site name for a dormakaba Oracode device. + + + + + Metadata for an ecobee device. + + + Device name for an ecobee device. + + + Device ID for an ecobee device. + + + + + Metadata for a 4SUITES device. + + + Device ID for a 4SUITES device. + + + Device name for a 4SUITES device. + + + Reclose delay, in seconds, for a 4SUITES device. + + + + + Metadata for a Genie device. + + + Lock name for a Genie device. + + + Door name for a Genie device. + + + + + Metadata for a Honeywell Resideo device. + + + Device name for a Honeywell Resideo device. + + + Device ID for a Honeywell Resideo device. + + + + + Metadata for an igloo device. + + + Bridge ID for an igloo device. + + + Device ID for an igloo device. + + + Model for an igloo device. + + + + + Metadata for an igloohome device. + + + Bridge ID for an igloohome device. + + + Bridge name for an igloohome device. + + + Device ID for an igloohome device. + + + Device name for an igloohome device. + + + Indicates whether a keypad is linked to a bridge for an igloohome device. + + + Keypad ID for an igloohome device. + + + + + Metadata for a KeyNest device. + + + Address for a KeyNest device. + + + Current or last store ID for a KeyNest device. + + + Current status for a KeyNest device. + + + Current user company for a KeyNest device. + + + Current user email for a KeyNest device. + + + Current user name for a KeyNest device. + + + Current user phone number for a KeyNest device. + + + Default office ID for a KeyNest device. + + + Device name for a KeyNest device. + + + Fob ID for a KeyNest device. + + + Handover method for a KeyNest device. + + + Whether the KeyNest device has a photo. + + + Whether the key is in a locker that does not support the access codes API. + + + Key ID for a KeyNest device. + + + Key notes for a KeyNest device. + + + KeyNest app user for a KeyNest device. + + + Last movement timestamp for a KeyNest device. + + + Property ID for a KeyNest device. + + + Property postcode for a KeyNest device. + + + Status type for a KeyNest device. + + + Subscription plan for a KeyNest device. + + + + + Metadata for a Korelock device. + + + Device ID for a Korelock device. + + + Device name for a Korelock device. + + + Firmware version for a Korelock device. + + + Location ID for a Korelock device. Required for timebound access codes. + + + Model code for a Korelock device. + + + Serial number for a Korelock device. + + + WiFi signal strength (0-1) for a Korelock device. + + + + + Metadata for a Kwikset device. + + + Device ID for a Kwikset device. + + + Device name for a Kwikset device. + + + Model number for a Kwikset device. + + + + + Metadata for a Lockly device. + + + Device ID for a Lockly device. + + + Device name for a Lockly device. + + + Model for a Lockly device. + + + + + Metadata for a Minut device. + + + Device ID for a Minut device. + + + Device name for a Minut device. + + + Latest sensor values for a Minut device. + + + Latest accelerometer Z-axis reading for a Minut device. + + + Time of latest accelerometer Z-axis reading for a Minut device. + + + Value of latest accelerometer Z-axis reading for a Minut device. + + + + + Latest humidity reading for a Minut device. + + + Time of latest humidity reading for a Minut device. + + + Value of latest humidity reading for a Minut device. + + + + + Latest pressure reading for a Minut device. + + + Time of latest pressure reading for a Minut device. + + + Value of latest pressure reading for a Minut device. + + + + + Latest sound reading for a Minut device. + + + Time of latest sound reading for a Minut device. + + + Value of latest sound reading for a Minut device. + + + + + Latest temperature reading for a Minut device. + + + Time of latest temperature reading for a Minut device. + + + Value of latest temperature reading for a Minut device. + + + + + + + + + Metadata for a Google Nest device. + + + Custom device name for a Google Nest device. The device owner sets this value. + + + Device name for a Google Nest device. Google sets this value. + + + Display name for a Google Nest device. + + + Device ID for a Google Nest device. + + + + + Metadata for a NoiseAware device. + + + Device ID for a NoiseAware device. + + + Device model for a NoiseAware device. + + + Device name for a NoiseAware device. + + + Noise level, in decibels, for a NoiseAware device. + + + Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. + + + + + Metadata for a Nuki device. + + + Device ID for a Nuki device. + + + Device name for a Nuki device. + + + Indicates whether keypad 2 is paired for a Nuki device. + + + Indicates whether the keypad battery is in a critical state for a Nuki device. + + + Indicates whether the keypad is paired for a Nuki device. + + + + + Metadata for an Omnitec device. + + + Whether the Omnitec lock has a connected gateway for remote operations. + + + Lock ID for an Omnitec device. + + + Bluetooth MAC address for an Omnitec device. + + + Lock name for an Omnitec device. + + + Static UTC offset of the Omnitec lock in milliseconds. Does not account for DST. + + + + + Metadata for a Ring device. + + + Device ID for a Ring device. + + + Device name for a Ring device. + + + + + Metadata for a Salto KS device. + + + Battery level for a Salto KS device. + + + Customer reference for a Salto KS device. + + + Indicates whether the site has a Salto KS subscription that supports custom PINs. + + + Lock ID for a Salto KS device. + + + Lock type for a Salto KS device. + + + Locked state for a Salto KS device. + + + Model for a Salto KS device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + + + Metada for a Salto device. + + + Battery level for a Salto device. + + + Customer reference for a Salto device. + + + Lock ID for a Salto device. + + + Lock type for a Salto device. + + + Locked state for a Salto device. + + + Model for a Salto device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + + + Metadata for a Schlage device. + + + Device ID for a Schlage device. + + + Device name for a Schlage device. + + + Model for a Schlage device. + + + + + Metadata for Seam Bridge. + + + Device number for Seam Bridge. + + + Name for Seam Bridge. + + + Unlock method for Seam Bridge. + + + + + Metadata for a Sensi device. + + + Device ID for a Sensi device. + + + Device name for a Sensi device. + + + Set to true when the device does not support the /dual-setpoints API endpoint. + + + Product type for a Sensi device. + + + + + Metadata for a SmartThings device. + + + Device ID for a SmartThings device. + + + Device name for a SmartThings device. + + + Location ID for a SmartThings device. + + + Model for a SmartThings device. + + + + + Metadata for a tado° device. + + + Device type for a tado° device. + + + Serial number for a tado° device. + + + + + Metadata for a Tedee device. + + + Bridge ID for a Tedee device. + + + Bridge name for a Tedee device. + + + Device ID for a Tedee device. + + + Device model for a Tedee device. + + + Device name for a Tedee device. + + + Keypad ID for a Tedee device. + + + Serial number for a Tedee device. + + + + + Metadata for a TTLock device. + + + Feature value for a TTLock device. + + + Features for a TTLock device. + + + Indicates whether a TTLock device supports auto-lock time configuration. + + + Indicates whether a TTLock device supports an incomplete keyboard passcode. + + + Indicates whether a TTLock device supports the lock command. + + + Indicates whether a TTLock device supports a passcode. + + + Indicates whether a TTLock device supports passcode management. + + + Indicates whether a TTLock device supports unlock via gateway. + + + Indicates whether a TTLock device supports Wi-Fi. + + + + + Indicates whether a TTLock device has a gateway. + + + Lock alias for a TTLock device. + + + Lock ID for a TTLock device. + + + Lock-side timezone offset in milliseconds east of UTC, as configured in the TTLock app. Source of truth for the lock's wall-clock interpretation of access code start/end times — a misconfigured value here is the typical cause of customer "codes offset by N hours" reports. Diagnostic only; Seam does not convert times based on this value. + + + Wireless keypads for a TTLock device. + + + + + Metadata for a 2N device. + + + Device ID for a 2N device. + + + Device name for a 2N device. + + + + + Metadata for an Ultraloq device. + + + Device ID for an Ultraloq device. + + + Device name for an Ultraloq device. + + + Device type for an Ultraloq device. + + + IANA timezone for the Ultraloq device. + + + + + Metadata for an ASSA ABLOY Visionline system. + + + Encoder ID for an ASSA ABLOY Visionline system. + + + + + Metadata for a Wyze device. + + + Device ID for a Wyze device. + + + Device information model for a Wyze device. + + + Device name for a Wyze device. + + + Keypad UUID for a Wyze device. + + + Locker status (hardlock) for a Wyze device. + + + Product model for a Wyze device. + + + Product name for a Wyze device. + + + Product type for a Wyze device. + + + + + The delay in seconds before the lock automatically locks after being unlocked. + + + Indicates whether automatic locking is enabled. + + + Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. + + + Indicates whether the door is open. + + + Indicates whether the device supports native entry events. + + + Keypad battery status. + + + Keypad battery charge level. + + + + + Indicates whether the lock is locked. + + + Maximum number of active access codes that the device supports. + + + Supported code lengths for access codes. + + + Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). + + + Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + + + ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + + + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + ID of the workspace that contains the thermostat schedule. + + + + + ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". + + + Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. + + + Fan mode settings that the thermostat supports. + + + HVAC mode settings that the thermostat supports. + + + Current climate setting. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + Metadata specific to the Ecobee climate, if applicable. + + + Reference to the Ecobee climate, if applicable. + + + Indicates if the climate preset is optimized by Ecobee. + + + Indicates whether the climate preset is owned by the user or the system. + + + + + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + + + The default climate setting. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + Metadata specific to the Ecobee climate, if applicable. + + + Reference to the Ecobee climate, if applicable. + + + Indicates if the climate preset is optimized by Ecobee. + + + Indicates whether the climate preset is owned by the user or the system. + + + + + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + + + Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. + + + The fan mode setting. + + + Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. + + + Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. + + + Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. + + + Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. + + + Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + + + Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + + + Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + + + Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + + + Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. + + + Maximum number of climate presets that the thermostat can support for weekly programming. + + + Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + + + Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + + + Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + + + Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + + + Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + + + Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + + + Reported relative humidity, as a value between 0 and 1, inclusive. + + + Reported temperature in °C. + + + Reported temperature in °F. + + + Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + + + Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. + + + Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + + + Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + + + Date and time at which the thermostat weekly program was created. + + + ID of the thermostat daily program to run on Fridays. + + + ID of the thermostat daily program to run on Mondays. + + + ID of the thermostat daily program to run on Saturdays. + + + ID of the thermostat daily program to run on Sundays. + + + ID of the thermostat daily program to run on Thursdays. + + + ID of the thermostat daily program to run on Tuesdays. + + + ID of the thermostat daily program to run on Wednesdays. + + + + + + + + IDs of the spaces the device is in. + + + + Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. + + + + Unique identifier for the Seam workspace associated with the device. + + +## Access Codes + + + Indicates whether it is currently possible to use offline access codes for the device. + + + + Indicates whether it is currently possible to use online access codes for the device. + + + + The supports accessory keypad. + -Indicates that the device is disconnected. + + The supports offline access codes. + -**`created_at`** _Datetime_ + + Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. + -Date and time at which Seam created the error. + + Indicates whether the device supports native entry events. + ---- + + Keypad battery status. + + + Keypad battery charge level. + + + -**`error_code`** _Enum_ + + Maximum number of active access codes that the device supports. + -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + + Supported code lengths for access codes. + -Enum values: + + Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). + -- device_disconnected +## Locks ---- + + The delay in seconds before the lock automatically locks after being unlocked. + -**`is_device_error`** _Boolean_ + + Indicates whether automatic locking is enabled. + -Indicates that the error is a device error. + + Indicates whether the door is open. + ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- empty_backup_access_code_pool - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the user is not authorized to use the August lock. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- august_lock_not_authorized - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the lock is not connected to a bridge. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- august_lock_missing_bridge - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the lock is not paired with a gateway. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- ttlock_lock_not_paired_to_gateway - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that device credentials are missing. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- missing_device_credentials - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the auxiliary heat is running. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- auxiliary_heat_running - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that a subscription is required to connect. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- subscription_required - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the Lockly lock is not connected to a Wi-Fi bridge. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- lockly_missing_wifi_bridge - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system). - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- bridge_disconnected - ---- - -**`is_bridge_error`** _Boolean_ - -Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). - ---- - -**`is_connected_account_error`** _Boolean_ - -Indicates whether the error is related specifically to the connected account. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - ---- - -**`is_managed`** _Boolean_ - -Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices). - ---- - -**`nickname`** _String_ - -Optional nickname to describe the device, settable through Seam. - ---- - -**`space_ids`** _List_ _of UUIDs_ - -IDs of the spaces the device is in. - ---- - -[**`warnings`**](#warnings) _List_ _of Objects_ - -Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. - -The specific structure of each object in this list depends on the value of its `warning_code` field. - -Variants: - - - -Indicates that the backup access code is unhealthy. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- partial_backup_access_code_pool - - - - -Indicates that there are too many backup codes. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- many_active_backup_codes - - - - -Indicates that the Wyze Lock is not connected to a gateway. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- wyze_device_missing_gateway - - - - -Indicates that a third-party integration has been detected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- third_party_integration_detected - - - - -Indicates that the Remote Unlock feature is not enabled in the settings." - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- ttlock_lock_gateway_unlocking_not_enabled - - - - -Indicates that the gateway signal is weak. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- ttlock_weak_gateway_signal - - - - -Indicates that the device is in power saving mode and may have limited functionality. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- power_saving_mode - - - - -Indicates that the temperature threshold has been exceeded. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- temperature_threshold_exceeded - - - - -Indicates that the device appears to be unresponsive. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_communication_degraded - - - - -Indicates that a scheduled maintenance window has been detected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- scheduled_maintenance_window - - - - -Indicates that the device has a flaky connection. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_has_flaky_connection - - - - -Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_office_mode - - - - -Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_privacy_mode - - - - -Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_subscription_limit_almost_reached - - - - -Indicates that an unknown issue occurred while syncing the state of the phone with the provider. This issue may affect the proper functioning of the phone. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- unknown_issue_with_phone - - - - -Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- lockly_time_zone_not_configured - - - - -Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- ultraloq_time_zone_unknown - - - - -Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- two_n_device_missing_timezone - - - - -Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- hub_required_for_additional_capabilities - - - - -Indicates that the key is in a locker that does not support the access codes API. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- keynest_unsupported_locker - - - - -Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- accessory_keypad_setup_required - - - - -Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- unreliable_online_status - - - - -Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. - -**`active_access_code_count`** _Number_ - -Number of active access codes on the device when the warning was set. - ---- - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`max_active_access_code_count`** _Number_ - -Maximum number of active access codes supported by the device. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- max_access_codes_reached - - - ---- - -**`workspace_id`** _UUID_ - -Unique identifier for the Seam workspace associated with the device. - ---- - -## device.properties - -**`akiles_metadata`** _Object_ - -Metadata for an Akiles device. - - - - - Group ID to which to add users for an Akiles device. - - - Gadget ID for an Akiles device. - - - Gadget name for an Akiles device. - - - Product name for an Akiles device. - - - ---- - -**`assa_abloy_credential_service_metadata`** _Object_ - -ASSA ABLOY Credential Service metadata for the phone. - - - - - Endpoints associated with the phone. - - - ID of the associated endpoint. - - - Indicated whether the endpoint is active. - - Indicates whether the credential service has active endpoints associated with the phone. - - - - ---- - -**`assa_abloy_vostio_metadata`** _Object_ - -Metadata for an ASSA ABLOY Vostio system. - - - - - Encoder name for an ASSA ABLOY Vostio system. - - - ---- - -**`august_metadata`** _Object_ - -Metadata for an August device. - - - - - Indicates whether an August device has a keypad. - - - House ID for an August device. - - - House name for an August device. - - - Keypad battery level for an August device. - - - Lock ID for an August device. - - - Lock name for an August device. - - - Model for an August device. - - - ---- - -**`auto_lock_delay_seconds`** _Number_ - -The delay in seconds before the lock automatically locks after being unlocked. - ---- - -**`auto_lock_enabled`** _Boolean_ - -Indicates whether automatic locking is enabled. - ---- - -**`avigilon_alta_metadata`** _Object_ - -Metadata for an Avigilon Alta system. - - - - - Entry name for an Avigilon Alta system. - - - Total count of entry relays for an Avigilon Alta system. - - - Organization name for an Avigilon Alta system. - - - Site ID for an Avigilon Alta system. - - - Site name for an Avigilon Alta system. - - - Zone ID for an Avigilon Alta system. - - - Zone name for an Avigilon Alta system. - - - ---- - -**`brivo_metadata`** _Object_ - -Metadata for a Brivo device. - - - - - Indicates whether the Brivo access point has activation (remote unlock) enabled. - - - Device name for a Brivo device. - - - ---- - -**`code_constraints`** _List_ _of Objects_ - -Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. - - -constraint_type Enum - - - - no_zeros - - cannot_start_with_12 - - no_triple_consecutive_ints - - cannot_specify_pin_code - - pin_code_matches_existing_set - - start_date_in_future - - no_ascending_or_descending_sequence - - at_least_three_unique_digits - - cannot_contain_089 - - cannot_contain_0789 - - unique_first_four_digits - - no_all_same_digits - - name_length - - name_must_be_unique - - - - - max_length - -Number - -Maximum name length constraint for access codes. - - - min_length - -Number - -Minimum name length constraint for access codes. - - - ---- - -**`controlbyweb_metadata`** _Object_ - -Metadata for a ControlByWeb device. - - - - - Device ID for a ControlByWeb device. - - - Device name for a ControlByWeb device. - - - Relay name for a ControlByWeb device. - - - ---- - -**`door_open`** _Boolean_ - -Indicates whether the door is open. - ---- - -**`dormakaba_oracode_metadata`** _Object_ - -Metadata for a dormakaba Oracode device. - - - - - Device ID for a dormakaba Oracode device. - - - Door ID for a dormakaba Oracode device. - - - Indicates whether a door is wireless for a dormakaba Oracode device. - - - Door name for a dormakaba Oracode device. - - - IANA time zone for a dormakaba Oracode device. - - - Predefined time slots for a dormakaba Oracode device. - - - Check in time for a time slot for a dormakaba Oracode device. - - - Checkout time for a time slot for a dormakaba Oracode device. - - - ID of a user level for a dormakaba Oracode device. - - - Prefix for a user level for a dormakaba Oracode device. - - - Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot. - - - Indicates whether a time slot for a dormakaba Oracode device is in biweekly mode. - - - Indicates whether a time slot for a dormakaba Oracode device is a master time slot. - - - Indicates whether a time slot for a dormakaba Oracode device is a one-shot time slot. - - - Name of a time slot for a dormakaba Oracode device. - - - Prefix for a time slot for a dormakaba Oracode device. - - Site ID for a dormakaba Oracode device. - - **Deprecated**. Previously marked as "@DEPRECATED."- - - site_name - - String - - Site name for a dormakaba Oracode device. - - - - ---- - -**`ecobee_metadata`** _Object_ - -Metadata for an ecobee device. - - - - - Device name for an ecobee device. - - - Device ID for an ecobee device. - - - ---- - -**`four_suites_metadata`** _Object_ - -Metadata for a 4SUITES device. - - - - - Device ID for a 4SUITES device. - - - Device name for a 4SUITES device. - - - Reclose delay, in seconds, for a 4SUITES device. - - - ---- - -**`genie_metadata`** _Object_ - -Metadata for a Genie device. - - - - - Lock name for a Genie device. - - - Door name for a Genie device. - - - ---- - -**`has_native_entry_events`** _Boolean_ - -Indicates whether the device supports native entry events. - ---- - -**`honeywell_resideo_metadata`** _Object_ - -Metadata for a Honeywell Resideo device. - - - - - Device name for a Honeywell Resideo device. - - - Device ID for a Honeywell Resideo device. - - - ---- - -**`igloo_metadata`** _Object_ - -Metadata for an igloo device. - - - - - Bridge ID for an igloo device. - - - Device ID for an igloo device. - - - Model for an igloo device. - - - ---- - -**`igloohome_metadata`** _Object_ - -Metadata for an igloohome device. - - - - - Bridge ID for an igloohome device. - - - Bridge name for an igloohome device. - - - Device ID for an igloohome device. - - - Device name for an igloohome device. - - - Indicates whether a keypad is linked to a bridge for an igloohome device. - - - Keypad ID for an igloohome device. - - - ---- - -**`keynest_metadata`** _Object_ - -Metadata for a KeyNest device. - - - - - Address for a KeyNest device. - - - Current or last store ID for a KeyNest device. - - - Current status for a KeyNest device. - - - Current user company for a KeyNest device. - - - Current user email for a KeyNest device. - - - Current user name for a KeyNest device. - - - Current user phone number for a KeyNest device. - - - Default office ID for a KeyNest device. - - - Device name for a KeyNest device. - - - Fob ID for a KeyNest device. - - - Handover method for a KeyNest device. - - - Whether the KeyNest device has a photo. - - - Whether the key is in a locker that does not support the access codes API. - - - Key ID for a KeyNest device. - - - Key notes for a KeyNest device. - - - KeyNest app user for a KeyNest device. - - - Last movement timestamp for a KeyNest device. - - - Property ID for a KeyNest device. - - - Property postcode for a KeyNest device. - - - Status type for a KeyNest device. - - - Subscription plan for a KeyNest device. - - - ---- - -**`keypad_battery`** _Object_ - -Keypad battery status. - - - - - Keypad battery charge level. - - - ---- - -**`korelock_metadata`** _Object_ - -Metadata for a Korelock device. - - - - - Device ID for a Korelock device. - - - Device name for a Korelock device. - - - Firmware version for a Korelock device. - - - Location ID for a Korelock device. Required for timebound access codes. - - - Model code for a Korelock device. - - - Serial number for a Korelock device. - - - WiFi signal strength (0-1) for a Korelock device. - - - ---- - -**`kwikset_metadata`** _Object_ - -Metadata for a Kwikset device. - - - - - Device ID for a Kwikset device. - - - Device name for a Kwikset device. - - - Model number for a Kwikset device. - - - ---- - -**`locked`** _Boolean_ - -Indicates whether the lock is locked. - ---- - -**`lockly_metadata`** _Object_ - -Metadata for a Lockly device. - - - - - Device ID for a Lockly device. - - - Device name for a Lockly device. - - - Model for a Lockly device. - - - ---- - -**`max_active_codes_supported`** _Number_ - -Maximum number of active access codes that the device supports. - ---- - -**`minut_metadata`** _Object_ - -Metadata for a Minut device. - - - - - Device ID for a Minut device. - - - Device name for a Minut device. - - - Latest sensor values for a Minut device. - - - Latest accelerometer Z-axis reading for a Minut device. - - - Time of latest accelerometer Z-axis reading for a Minut device. - - - Value of latest accelerometer Z-axis reading for a Minut device. - - - Latest humidity reading for a Minut device. - - - Time of latest humidity reading for a Minut device. - - - Value of latest humidity reading for a Minut device. - - - Latest pressure reading for a Minut device. - - - Time of latest pressure reading for a Minut device. - - - Value of latest pressure reading for a Minut device. - - - Latest sound reading for a Minut device. - - - Time of latest sound reading for a Minut device. - - - Value of latest sound reading for a Minut device. - - - Latest temperature reading for a Minut device. - - - Time of latest temperature reading for a Minut device. - - - Value of latest temperature reading for a Minut device. - - - ---- - -**`model`** _Object_ - -Device model-related properties. - - - - - - **Deprecated**. use device.properties.model.can_connect_accessory_keypad - - - - Indicates whether the device can connect a accessory keypad. - - - Display name of the device model. - - - Indicates whether the device has a built in accessory keypad. - - - Display name that corresponds to the manufacturer-specific terminology for the device. - - - **Deprecated**. use device.can_program_offline_access_codes. - - - **Deprecated**. use device.can_program_online_access_codes. - - - ---- - -**`name`** _String_ - -Name of the device. - -**Deprecated**. use device.display_name instead - ---- - -**`nest_metadata`** _Object_ - -Metadata for a Google Nest device. - - - - - Custom device name for a Google Nest device. The device owner sets this value. - - - Device name for a Google Nest device. Google sets this value. - - - Display name for a Google Nest device. - - - Device ID for a Google Nest device. - - - ---- - -**`noiseaware_metadata`** _Object_ - -Metadata for a NoiseAware device. - - - - - Device ID for a NoiseAware device. - - - Device model for a NoiseAware device. - - - - - `indoor` - - `outdoor` - - - - - Device name for a NoiseAware device. - - - Noise level, in decibels, for a NoiseAware device. - - - Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. - - - ---- - -**`nuki_metadata`** _Object_ - -Metadata for a Nuki device. - - - - - Device ID for a Nuki device. - - - Device name for a Nuki device. - - - Indicates whether keypad 2 is paired for a Nuki device. - - - Indicates whether the keypad battery is in a critical state for a Nuki device. - - - Indicates whether the keypad is paired for a Nuki device. - - - ---- - -**`offline_access_codes_enabled`** _Boolean_ - -Indicates whether it is currently possible to use offline access codes for the device. - -**Deprecated**. use device.can_program_offline_access_codes - ---- - -**`online`** _Boolean_ - -Indicates whether the device is online. - ---- - -**`online_access_codes_enabled`** _Boolean_ - -Indicates whether it is currently possible to use online access codes for the device. - -**Deprecated**. use device.can_program_online_access_codes - ---- - -**`ring_metadata`** _Object_ - -Metadata for a Ring device. - - - - - Device ID for a Ring device. - - - Device name for a Ring device. - - - ---- - -**`salto_ks_metadata`** _Object_ - -Metadata for a Salto KS device. - - - - - Battery level for a Salto KS device. - - - Customer reference for a Salto KS device. - - - Indicates whether the site has a Salto KS subscription that supports custom PINs. - - - Lock ID for a Salto KS device. - - - Lock type for a Salto KS device. - - - Locked state for a Salto KS device. - - - Model for a Salto KS device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - ---- - -**`salto_metadata`** _Object_ - -Metada for a Salto device. - -**Deprecated**. Use `salto_ks_metadata ` instead. - - - - - Battery level for a Salto device. - - - Customer reference for a Salto device. - - - Lock ID for a Salto device. - - - Lock type for a Salto device. - - - Locked state for a Salto device. - - - Model for a Salto device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - ---- - -**`salto_space_credential_service_metadata`** _Object_ - -Salto Space credential service metadata for the phone. - - - - - Indicates whether the credential service has an active associated phone. - - - ---- - -**`schlage_metadata`** _Object_ - -Metadata for a Schlage device. - - - - - Device ID for a Schlage device. - - - Device name for a Schlage device. - - - Model for a Schlage device. - - - ---- - -**`seam_bridge_metadata`** _Object_ - -Metadata for Seam Bridge. - - - - - Device number for Seam Bridge. - - - Name for Seam Bridge. - - - Unlock method for Seam Bridge. - - - - - `bridge` - - `doorking` - - - - - ---- - -**`sensi_metadata`** _Object_ - -Metadata for a Sensi device. - - - - - Device ID for a Sensi device. - - - Device name for a Sensi device. - - - Set to true when the device does not support the /dual-setpoints API endpoint. - - - Product type for a Sensi device. - - - ---- - -**`smartthings_metadata`** _Object_ - -Metadata for a SmartThings device. - - - - - Device ID for a SmartThings device. - - - Device name for a SmartThings device. - - - Location ID for a SmartThings device. - - - Model for a SmartThings device. - - - ---- - -**`supported_code_lengths`** _List_ _of Numbers_ - -Supported code lengths for access codes. - ---- - -**`supports_accessory_keypad`** _Boolean_ - - - **Deprecated**. use device.properties.model.can_connect_accessory_keypad - - ---- - -**`supports_backup_access_code_pool`** _Boolean_ - -Indicates whether the device supports a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes). - ---- - -**`supports_offline_access_codes`** _Boolean_ - -**Deprecated**. use offline_access_codes_enabled - ---- - -**`tado_metadata`** _Object_ - -Metadata for a tado° device. - - - - - Device type for a tado° device. - - - Serial number for a tado° device. - - - ---- - -**`tedee_metadata`** _Object_ - -Metadata for a Tedee device. - - - - - Bridge ID for a Tedee device. - - - Bridge name for a Tedee device. - - - Device ID for a Tedee device. - - - Device model for a Tedee device. - - - Device name for a Tedee device. - - - Keypad ID for a Tedee device. - - - Serial number for a Tedee device. - - - ---- - -**`ttlock_metadata`** _Object_ - -Metadata for a TTLock device. - - - - - Feature value for a TTLock device. - - - Features for a TTLock device. - - - Indicates whether a TTLock device supports auto-lock time configuration. - - - Indicates whether a TTLock device supports an incomplete keyboard passcode. - - - Indicates whether a TTLock device supports the lock command. - - - Indicates whether a TTLock device supports a passcode. - - - Indicates whether a TTLock device supports passcode management. - - - Indicates whether a TTLock device supports unlock via gateway. - - - Indicates whether a TTLock device supports Wi-Fi. - - - Indicates whether a TTLock device has a gateway. - - - Lock alias for a TTLock device. - - - Lock ID for a TTLock device. - - - Wireless keypads for a TTLock device. - - - ID for a wireless keypad for a TTLock device. - - - Name for a wireless keypad for a TTLock device. - - - ---- - -**`two_n_metadata`** _Object_ - -Metadata for a 2N device. - - - - - Device ID for a 2N device. - - - Device name for a 2N device. - - - ---- - -**`ultraloq_metadata`** _Object_ - -Metadata for an Ultraloq device. - - - - - Device ID for an Ultraloq device. - - - Device name for an Ultraloq device. - - - Device type for an Ultraloq device. - - - IANA timezone for the Ultraloq device. - - - ---- - -**`visionline_metadata`** _Object_ - -Metadata for an ASSA ABLOY Visionline system. - - - - - Encoder ID for an ASSA ABLOY Visionline system. - - - ---- - -**`wyze_metadata`** _Object_ - -Metadata for a Wyze device. - - - - - Device ID for a Wyze device. - - - Device information model for a Wyze device. - - - Device name for a Wyze device. + + Indicates whether the lock is locked. - - Keypad UUID for a Wyze device. - - - Locker status (hardlock) for a Wyze device. - - - Product model for a Wyze device. - - - Product name for a Wyze device. - - - Product type for a Wyze device. - - - ---- - -## Errors - -**`salto_ks_subscription_limit_exceeded`** - -Indicates that the Salto site user limit has been reached. - ---- - -**`august_lock_not_authorized`** - -Indicates that the user is not authorized to use the August lock. - ---- - -**`august_lock_missing_bridge`** - -Indicates that the lock is not connected to a bridge. - ---- - -**`empty_backup_access_code_pool`** - -Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. - ---- - -**`ttlock_lock_not_paired_to_gateway`** - -Indicates that the lock is not paired with a gateway. - ---- - -**`subscription_required`** - -Indicates that a subscription is required to connect. - ---- - -**`missing_device_credentials`** - -Indicates that device credentials are missing. - ---- - -**`lockly_missing_wifi_bridge`** - -Indicates that the Lockly lock is not connected to a Wi-Fi bridge. - ---- - -**`hub_disconnected`** - -Indicates that the hub is disconnected. - ---- - -**`device_removed`** - -Indicates that the device has been removed. - ---- - -**`device_offline`** - -Indicates that the device is offline. - ---- - -**`device_disconnected`** - -Indicates that the device is disconnected. - ---- - -**`account_disconnected`** - -Indicates that the account is disconnected. - ---- - -**`bridge_disconnected`** - -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system). - ---- - -## Warnings - -**`accessory_keypad_setup_required`** - -Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. - ---- - -**`device_communication_degraded`** - -Indicates that the device appears to be unresponsive. - ---- - -**`device_has_flaky_connection`** - -Indicates that the device has a flaky connection. - ---- - -**`hub_required_for_additional_capabilities`** - -Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. - ---- - -**`keynest_unsupported_locker`** - -Indicates that the key is in a locker that does not support the access codes API. - ---- - -**`lockly_time_zone_not_configured`** - -Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. - ---- - -**`many_active_backup_codes`** - -Indicates that there are too many backup codes. - ---- - -**`max_access_codes_reached`** - -Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. - ---- - -**`partial_backup_access_code_pool`** - -Indicates that the backup access code is unhealthy. - ---- - -**`power_saving_mode`** - -Indicates that the device is in power saving mode and may have limited functionality. - ---- - -**`salto_ks_office_mode`** - -Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. - ---- - -**`salto_ks_privacy_mode`** - -Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. - ---- - -**`salto_ks_subscription_limit_almost_reached`** - -Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. - ---- - -**`scheduled_maintenance_window`** - -Indicates that a scheduled maintenance window has been detected. - ---- - -**`third_party_integration_detected`** - -Indicates that a third-party integration has been detected. - ---- - -**`ttlock_lock_gateway_unlocking_not_enabled`** - -Indicates that the Remote Unlock feature is not enabled in the settings." - ---- - -**`ttlock_weak_gateway_signal`** - -Indicates that the gateway signal is weak. - ---- - -**`two_n_device_missing_timezone`** - -Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. - ---- - -**`ultraloq_time_zone_unknown`** - -Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. - ---- - -**`unreliable_online_status`** - -Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. - ---- - -**`wyze_device_missing_gateway`** - -Indicates that the Wyze Lock is not connected to a gateway. - ---- - -## Endpoints - -[**`/locks/configure_auto_lock`**](./configure_auto_lock) - -Configures the auto-lock setting for a specified [lock](/low-level-apis/smart-locks). - -[**`/locks/get`**](./get) - -Returns a specified [lock](/low-level-apis/smart-locks). - -[**`/locks/list`**](./list) - -Returns a list of all [locks](/low-level-apis/smart-locks). - -[**`/locks/lock_door`**](./lock_door) - -Locks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock). - -[**`/locks/unlock_door`**](./unlock_door) - -Unlocks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock). diff --git a/mintlify-docs/api/locks/simulate/object.mdx b/mintlify-docs/api/locks/simulate/object.mdx index e9f45962e..e82c6a08e 100644 --- a/mintlify-docs/api/locks/simulate/object.mdx +++ b/mintlify-docs/api/locks/simulate/object.mdx @@ -5,10 +5,10 @@ description: 'Use the lock simulation endpoints to mimic keypad code entry and m ## Endpoints -[**`/locks/simulate/keypad_code_entry`**](./keypad_code_entry) +[**`/locks/simulate/keypad_code_entry`**](/api/locks/simulate/keypad_code_entry) -Simulates the entry of a code on a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). +Simulates the entry of a code on a keypad. You can only perform this action for [August](https://docs.seam.co/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). -[**`/locks/simulate/manual_lock_via_keypad`**](./manual_lock_via_keypad) +[**`/locks/simulate/manual_lock_via_keypad`**](/api/locks/simulate/manual_lock_via_keypad) -Simulates a manual lock action using a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). +Simulates a manual lock action using a keypad. You can only perform this action for [August](https://docs.seam.co/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/noise_sensors/object.mdx b/mintlify-docs/api/noise_sensors/object.mdx index c8b9df74e..f5ade972e 100644 --- a/mintlify-docs/api/noise_sensors/object.mdx +++ b/mintlify-docs/api/noise_sensors/object.mdx @@ -5,17 +5,1473 @@ description: 'Learn how the device object represents a noise sensor that measure ## The device Object for Noise Sensors - Represents a [noise sensor](/capability-guides/noise-sensors). Noise sensors are devices that measure that sound level in a given area. You can use noise sensors to monitor noise levels remotely and receive notifications when the noise volume is too loud. The Seam API enables you to configure the [noise thresholds](/capability-guides/noise-sensors/configure-noise-threshold-settings) of a noise sensor and receive events when a disturbance is detected. You can also [simulate triggering a noise threshold](/api/noise_sensors/simulate/trigger_noise_threshold). The Seam API represents a noise sensor as a `device` resource that includes both basic device properties and noise sensor-specific properties. + + +```json Noise Sensor Device +{ + "capabilities_supported": [ + "noise_detection" + ], + "connected_account_id": "9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d", + "created_at": "2025-05-16T16:54:17.946049Z", + "custom_metadata": { + "id": "internalId1" + }, + "device_id": "f1e2d3c4-b5a6-4d7c-8e9f-0a1b2c3d4e5f", + "device_type": "minut_sensor", + "display_name": "Living Room", + "errors": [], + "is_managed": true, + "space_ids": [], + "location": { + "location_name": "Jane's Test Home", + "timezone": "America/Los_Angeles" + }, + "nickname": "Living Room", + "properties": { + "appearance": { + "name": "Living Room" + }, + "battery": { + "level": 1, + "status": "full" + }, + "battery_level": 1, + "currently_triggering_noise_threshold_ids": [], + "image_alt_text": "Minut Sensor", + "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/minut_gen-3_front.png&q=75&w=128", + "manufacturer": "minut", + "minut_metadata": { + "device_id": "770cd3153deca3dee0fe0614", + "device_location": { + "latitude": 0, + "longitude": 0 + }, + "device_name": "Living Room", + "home_address": { + "city": "San Francisco", + "country": "US", + "notes": "string", + "post_code": "44210", + "region": "San Francisco County", + "street_name1": "2258 24th Street", + "street_name2": "" + }, + "home_id": "2978b6d5dba395ec08300e46", + "home_location": { + "latitude": 0, + "longitude": 0 + }, + "home_name": "Jane's Test Home", + "latest_sensor_values": { + "accelerometer_z": { + "time": "2025-06-16T16:54:17.946049Z", + "value": -1.00390625 + }, + "humidity": { + "time": "2025-06-16T16:54:17.946049Z", + "value": 31.110000610351562 + }, + "pressure": { + "time": "2025-06-16T16:54:17.946049Z", + "value": 101923 + }, + "sound": { + "time": "2025-06-16T16:54:17.946049Z", + "value": 47.7117919921875 + }, + "temperature": { + "time": "2025-06-16T16:54:17.946049Z", + "value": 21.270000457763672 + } + } + }, + "model": { + "display_name": "Noise Sensor", + "manufacturer_display_name": "Minut" + }, + "name": "Living Room", + "noise_level_decibels": 47.7117919921875, + "online": true + }, + "warnings": [], + "workspace_id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d" +} +``` + + + --- -## Endpoints +## Properties + + + Indicates whether the lock supports configuring automatic locking. + + + + Indicates whether the thermostat supports cooling. + + + + Indicates whether the thermostat supports heating. + + + + Indicates whether the thermostat supports simultaneous heating and cooling. + + + + Indicates whether the device supports programming offline access codes. + + + + Indicates whether the device supports programming online access codes. + + + + Indicates whether the thermostat supports different climate programs for each day of the week. + + + + Indicates whether the thermostat supports a single climate program applied to every day. + + + + Indicates whether the thermostat supports weekday/weekend climate programs. + + + + Indicates whether the device supports remote locking. + + + + Indicates whether the device supports remote unlocking. + + + + Indicates whether the thermostat supports running climate programs. + + + + Indicates whether the device supports simulating connection in a sandbox. + + + + Indicates whether the device supports simulating disconnection in a sandbox. + + + + Indicates whether the hub supports simulating connection in a sandbox. + + + + Indicates whether the hub supports simulating disconnection in a sandbox. + + + + Indicates whether the device supports simulating a paid subscription in a sandbox. + + + + Indicates whether the device supports simulating removal in a sandbox. + + + + Indicates whether the thermostat can be turned off. + + + + Indicates whether the lock supports unlocking with an access code. + + + + Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). + + + + Unique identifier for the account associated with the device. + + + + Date and time at which the device object was created. + + + + Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + + + + ID of the device. + + + + Type of the device. + + + + Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. + + + + Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. + + + + Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). + + + + Optional nickname to describe the device, settable through Seam. + + + + Properties of the device. + + + Accessory keypad properties and state. + + + Keypad battery properties. + + + The level. + + + + + Indicates if an accessory keypad is connected to the device. + + + + + Appearance-related properties, as reported by the device. + + + Name of the device as seen from the provider API and application, not settable through Seam. + + + + + Represents the current status of the battery charge level. + + + Battery charge level as a value between 0 and 1, inclusive. + + + Represents the current status of the battery charge level. Values are `critical`, which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; `low`, which signifies that the battery is under the preferred threshold and should be charged soon; `good`, which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and `full`, which represents a battery that is fully charged, providing the maximum duration of usage. + + + + + Indicates the battery level of the device as a decimal value between 0 and 1, inclusive. + + + Array of noise threshold IDs that are currently triggering. + + + Indicates whether the device has direct power. + + + Alt text for the device image. + + + Image URL for the device. + + + Manufacturer of the device. When a device, such as a smart lock, is connected through a smart hub, the manufacturer of the device might be different from that of the smart hub. + + + Device model-related properties. + + + The accessory keypad supported. + + + Indicates whether the device can connect a accessory keypad. + + + Display name of the device model. + + + Indicates whether the device has a built in accessory keypad. + + + Display name that corresponds to the manufacturer-specific terminology for the device. + + + The offline access codes supported. + + + The online access codes supported. + + + + + Name of the device. + + + Indicates current noise level in decibels, if the device supports noise detection. + + + Indicates whether it is currently possible to use offline access codes for the device. + + + Indicates whether the device is online. + + + Indicates whether it is currently possible to use online access codes for the device. + + + Serial number of the device. + + + The supports accessory keypad. + + + The supports offline access codes. + + + ASSA ABLOY Credential Service metadata for the phone. + + + Endpoints associated with the phone. + + + Indicates whether the credential service has active endpoints associated with the phone. + + + + + Salto Space credential service metadata for the phone. + + + Indicates whether the credential service has an active associated phone. + + + + + Metadata for an Akiles device. + + + Group ID to which to add users for an Akiles device. + + + Gadget ID for an Akiles device. + + + Gadget name for an Akiles device. + + + Product name for an Akiles device. + + + + + Metadata for an ASSA ABLOY Vostio system. + + + Encoder name for an ASSA ABLOY Vostio system. + + + + + Metadata for an August device. + + + Indicates whether an August device has a keypad. + + + House ID for an August device. + + + House name for an August device. + + + Keypad battery level for an August device. + + + Lock ID for an August device. + + + Lock name for an August device. + + + Model for an August device. + + + + + Metadata for an Avigilon Alta system. + + + Entry name for an Avigilon Alta system. + + + Total count of entry relays for an Avigilon Alta system. + + + Organization name for an Avigilon Alta system. + + + Site ID for an Avigilon Alta system. + + + Site name for an Avigilon Alta system. + + + Zone ID for an Avigilon Alta system. + + + Zone name for an Avigilon Alta system. + + + + + Metadata for a Brivo device. + + + Indicates whether the Brivo access point has activation (remote unlock) enabled. + + + Device name for a Brivo device. + + + + + Metadata for a ControlByWeb device. + + + Device ID for a ControlByWeb device. + + + Device name for a ControlByWeb device. + + + Relay name for a ControlByWeb device. + + + + + Metadata for a dormakaba Oracode device. + + + Device ID for a dormakaba Oracode device. + + + Door ID for a dormakaba Oracode device. + + + Indicates whether a door is wireless for a dormakaba Oracode device. + + + Door name for a dormakaba Oracode device. + + + IANA time zone for a dormakaba Oracode device. + + + Predefined time slots for a dormakaba Oracode device. + + + Site ID for a dormakaba Oracode device. + + + Site name for a dormakaba Oracode device. + + + + + Metadata for an ecobee device. + + + Device name for an ecobee device. + + + Device ID for an ecobee device. + + + + + Metadata for a 4SUITES device. + + + Device ID for a 4SUITES device. + + + Device name for a 4SUITES device. + + + Reclose delay, in seconds, for a 4SUITES device. + + + + + Metadata for a Genie device. + + + Lock name for a Genie device. + + + Door name for a Genie device. + + + + + Metadata for a Honeywell Resideo device. + + + Device name for a Honeywell Resideo device. + + + Device ID for a Honeywell Resideo device. + + + + + Metadata for an igloo device. + + + Bridge ID for an igloo device. + + + Device ID for an igloo device. + + + Model for an igloo device. + + + + + Metadata for an igloohome device. + + + Bridge ID for an igloohome device. + + + Bridge name for an igloohome device. + + + Device ID for an igloohome device. + + + Device name for an igloohome device. + + + Indicates whether a keypad is linked to a bridge for an igloohome device. + + + Keypad ID for an igloohome device. + + + + + Metadata for a KeyNest device. + + + Address for a KeyNest device. + + + Current or last store ID for a KeyNest device. + + + Current status for a KeyNest device. + + + Current user company for a KeyNest device. + + + Current user email for a KeyNest device. + + + Current user name for a KeyNest device. + + + Current user phone number for a KeyNest device. + + + Default office ID for a KeyNest device. + + + Device name for a KeyNest device. + + + Fob ID for a KeyNest device. + + + Handover method for a KeyNest device. + + + Whether the KeyNest device has a photo. + + + Whether the key is in a locker that does not support the access codes API. + + + Key ID for a KeyNest device. + + + Key notes for a KeyNest device. + + + KeyNest app user for a KeyNest device. + + + Last movement timestamp for a KeyNest device. + + + Property ID for a KeyNest device. + + + Property postcode for a KeyNest device. + + + Status type for a KeyNest device. + + + Subscription plan for a KeyNest device. + + + + + Metadata for a Korelock device. + + + Device ID for a Korelock device. + + + Device name for a Korelock device. + + + Firmware version for a Korelock device. + + + Location ID for a Korelock device. Required for timebound access codes. + + + Model code for a Korelock device. + + + Serial number for a Korelock device. + + + WiFi signal strength (0-1) for a Korelock device. + + + + + Metadata for a Kwikset device. + + + Device ID for a Kwikset device. + + + Device name for a Kwikset device. + + + Model number for a Kwikset device. + + + + + Metadata for a Lockly device. + + + Device ID for a Lockly device. + + + Device name for a Lockly device. + + + Model for a Lockly device. + + + + + Metadata for a Minut device. + + + Device ID for a Minut device. + + + Device name for a Minut device. + + + Latest sensor values for a Minut device. + + + Latest accelerometer Z-axis reading for a Minut device. + + + Time of latest accelerometer Z-axis reading for a Minut device. + + + Value of latest accelerometer Z-axis reading for a Minut device. + + + + + Latest humidity reading for a Minut device. + + + Time of latest humidity reading for a Minut device. + + + Value of latest humidity reading for a Minut device. + + + + + Latest pressure reading for a Minut device. + + + Time of latest pressure reading for a Minut device. + + + Value of latest pressure reading for a Minut device. + + + + + Latest sound reading for a Minut device. + + + Time of latest sound reading for a Minut device. + + + Value of latest sound reading for a Minut device. + + + + + Latest temperature reading for a Minut device. + + + Time of latest temperature reading for a Minut device. + + + Value of latest temperature reading for a Minut device. + + + + + + + + + Metadata for a Google Nest device. + + + Custom device name for a Google Nest device. The device owner sets this value. + + + Device name for a Google Nest device. Google sets this value. + + + Display name for a Google Nest device. + + + Device ID for a Google Nest device. + + + + + Metadata for a NoiseAware device. + + + Device ID for a NoiseAware device. + + + Device model for a NoiseAware device. + + + Device name for a NoiseAware device. + + + Noise level, in decibels, for a NoiseAware device. + + + Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. + + + + + Metadata for a Nuki device. + + + Device ID for a Nuki device. + + + Device name for a Nuki device. + + + Indicates whether keypad 2 is paired for a Nuki device. + + + Indicates whether the keypad battery is in a critical state for a Nuki device. + + + Indicates whether the keypad is paired for a Nuki device. + + + + + Metadata for an Omnitec device. + + + Whether the Omnitec lock has a connected gateway for remote operations. + + + Lock ID for an Omnitec device. + + + Bluetooth MAC address for an Omnitec device. + + + Lock name for an Omnitec device. + + + Static UTC offset of the Omnitec lock in milliseconds. Does not account for DST. + + + + + Metadata for a Ring device. + + + Device ID for a Ring device. + + + Device name for a Ring device. + + + + + Metadata for a Salto KS device. + + + Battery level for a Salto KS device. + + + Customer reference for a Salto KS device. + + + Indicates whether the site has a Salto KS subscription that supports custom PINs. + + + Lock ID for a Salto KS device. + + + Lock type for a Salto KS device. + + + Locked state for a Salto KS device. + + + Model for a Salto KS device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + + + Metada for a Salto device. + + + Battery level for a Salto device. + + + Customer reference for a Salto device. + + + Lock ID for a Salto device. + + + Lock type for a Salto device. + + + Locked state for a Salto device. + + + Model for a Salto device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + + + Metadata for a Schlage device. + + + Device ID for a Schlage device. + + + Device name for a Schlage device. + + + Model for a Schlage device. + + + + + Metadata for Seam Bridge. + + + Device number for Seam Bridge. + + + Name for Seam Bridge. + + + Unlock method for Seam Bridge. + + + + + Metadata for a Sensi device. + + + Device ID for a Sensi device. + + + Device name for a Sensi device. + + + Set to true when the device does not support the /dual-setpoints API endpoint. + + + Product type for a Sensi device. + + + + + Metadata for a SmartThings device. + + + Device ID for a SmartThings device. + + + Device name for a SmartThings device. + + + Location ID for a SmartThings device. + + + Model for a SmartThings device. + + + + + Metadata for a tado° device. + + + Device type for a tado° device. + + + Serial number for a tado° device. + + + + + Metadata for a Tedee device. + + + Bridge ID for a Tedee device. + + + Bridge name for a Tedee device. + + + Device ID for a Tedee device. + + + Device model for a Tedee device. + + + Device name for a Tedee device. + + + Keypad ID for a Tedee device. + + + Serial number for a Tedee device. + + + + + Metadata for a TTLock device. + + + Feature value for a TTLock device. + + + Features for a TTLock device. + + + Indicates whether a TTLock device supports auto-lock time configuration. + + + Indicates whether a TTLock device supports an incomplete keyboard passcode. + + + Indicates whether a TTLock device supports the lock command. + + + Indicates whether a TTLock device supports a passcode. + + + Indicates whether a TTLock device supports passcode management. + + + Indicates whether a TTLock device supports unlock via gateway. + + + Indicates whether a TTLock device supports Wi-Fi. + + + + + Indicates whether a TTLock device has a gateway. + + + Lock alias for a TTLock device. + + + Lock ID for a TTLock device. + + + Lock-side timezone offset in milliseconds east of UTC, as configured in the TTLock app. Source of truth for the lock's wall-clock interpretation of access code start/end times — a misconfigured value here is the typical cause of customer "codes offset by N hours" reports. Diagnostic only; Seam does not convert times based on this value. + + + Wireless keypads for a TTLock device. + + + + + Metadata for a 2N device. + + + Device ID for a 2N device. + + + Device name for a 2N device. + + + + + Metadata for an Ultraloq device. + + + Device ID for an Ultraloq device. + + + Device name for an Ultraloq device. + + + Device type for an Ultraloq device. + + + IANA timezone for the Ultraloq device. + + + + + Metadata for an ASSA ABLOY Visionline system. + + + Encoder ID for an ASSA ABLOY Visionline system. + + + + + Metadata for a Wyze device. + + + Device ID for a Wyze device. + + + Device information model for a Wyze device. + + + Device name for a Wyze device. + + + Keypad UUID for a Wyze device. + + + Locker status (hardlock) for a Wyze device. + + + Product model for a Wyze device. + + + Product name for a Wyze device. + + + Product type for a Wyze device. + + + + + The delay in seconds before the lock automatically locks after being unlocked. + + + Indicates whether automatic locking is enabled. + + + Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. + + + Indicates whether the door is open. + + + Indicates whether the device supports native entry events. + + + Keypad battery status. + + + Keypad battery charge level. + + + + + Indicates whether the lock is locked. + + + Maximum number of active access codes that the device supports. + + + Supported code lengths for access codes. + + + Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). + + + Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + + + ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + + + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + ID of the workspace that contains the thermostat schedule. + + + + + ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". + + + Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. + + + Fan mode settings that the thermostat supports. + + + HVAC mode settings that the thermostat supports. + + + Current climate setting. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + Metadata specific to the Ecobee climate, if applicable. + + + Reference to the Ecobee climate, if applicable. + + + Indicates if the climate preset is optimized by Ecobee. + + + Indicates whether the climate preset is owned by the user or the system. + + + + + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + + + The default climate setting. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + Metadata specific to the Ecobee climate, if applicable. + + + Reference to the Ecobee climate, if applicable. + + + Indicates if the climate preset is optimized by Ecobee. + + + Indicates whether the climate preset is owned by the user or the system. + + + + + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + + + Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. + + + The fan mode setting. + + + Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. + + + Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. + + + Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. + + + Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. + + + Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + + + Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + + + Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + + + Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + + + Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. + + + Maximum number of climate presets that the thermostat can support for weekly programming. + + + Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + + + Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + + + Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + + + Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + + + Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + + + Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + + + Reported relative humidity, as a value between 0 and 1, inclusive. + + + Reported temperature in °C. + + + Reported temperature in °F. + + + Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + + + Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. + + + Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + + + Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + + + Date and time at which the thermostat weekly program was created. + + + ID of the thermostat daily program to run on Fridays. + + + ID of the thermostat daily program to run on Mondays. + + + ID of the thermostat daily program to run on Saturdays. + + + ID of the thermostat daily program to run on Sundays. + + + ID of the thermostat daily program to run on Thursdays. + + + ID of the thermostat daily program to run on Tuesdays. + + + ID of the thermostat daily program to run on Wednesdays. + + + + + + + + IDs of the spaces the device is in. + + + + Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. + + + + Unique identifier for the Seam workspace associated with the device. + + +## Noise Sensors -[**`/noise_sensors/list`**](./list) + + Array of noise threshold IDs that are currently triggering. + -Returns a list of all [noise sensors](/capability-guides/noise-sensors). + + Indicates current noise level in decibels, if the device supports noise detection. + diff --git a/mintlify-docs/api/noise_sensors/simulate/object.mdx b/mintlify-docs/api/noise_sensors/simulate/object.mdx index ab7283be5..782693759 100644 --- a/mintlify-docs/api/noise_sensors/simulate/object.mdx +++ b/mintlify-docs/api/noise_sensors/simulate/object.mdx @@ -5,6 +5,6 @@ description: 'Use the noise sensor simulation endpoint to trigger a noise thresh ## Endpoints -[**`/noise_sensors/simulate/trigger_noise_threshold`**](./trigger_noise_threshold) +[**`/noise_sensors/simulate/trigger_noise_threshold`**](/api/noise_sensors/simulate/trigger_noise_threshold) -Simulates the triggering of a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). +Simulates the triggering of a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/phones/simulate/object.mdx b/mintlify-docs/api/phones/simulate/object.mdx index 58a0f2614..0569823ea 100644 --- a/mintlify-docs/api/phones/simulate/object.mdx +++ b/mintlify-docs/api/phones/simulate/object.mdx @@ -5,6 +5,6 @@ description: 'Use the phone simulation endpoint to create a simulated phone in a ## Endpoints -[**`/phones/simulate/create_sandbox_phone`**](./create_sandbox_phone) +[**`/phones/simulate/create_sandbox_phone`**](/api/phones/simulate/create_sandbox_phone) -Creates a new simulated phone in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity). +Creates a new simulated phone in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](https://docs.seam.co/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity). diff --git a/mintlify-docs/api/thermostats/object.mdx b/mintlify-docs/api/thermostats/object.mdx index 93087e6ef..288d1f1d8 100644 --- a/mintlify-docs/api/thermostats/object.mdx +++ b/mintlify-docs/api/thermostats/object.mdx @@ -5,7 +5,6 @@ description: 'Learn how the device object represents a thermostat connected to S ## The device Object for Thermostats - Represents a [thermostat](/capability-guides/thermostats). You can use the Seam API to perform the following management and monitoring actions for thermostats: @@ -18,181 +17,6 @@ You can use the Seam API to perform the following management and monitoring acti The Seam API represents a thermostat as a `device` resource that includes both basic device properties and thermostat-specific properties. ---- - - - - -A thermostat device resource. - -```json -{ - "can_hvac_cool": true, - "can_hvac_heat": true, - "can_hvac_heat_cool": true, - "can_turn_off_hvac": true, - "capabilities_supported": ["thermostat"], - "connected_account_id": "a0b1c2d3-e4f5-6a7b-8c9d-0e1f2a3b4c5d", - "created_at": "2024-10-03T22:12:15.666Z", - "custom_metadata": { "id": "internalId1" }, - "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", - "device_type": "ecobee_thermostat", - "display_name": "Living Room", - "errors": [], - "is_managed": true, - "space_ids": [], - "location": { - "location_name": "2948 20th St, San Francisco, CA, 94110, US", - "timezone": "America/Los_Angeles" - }, - "nickname": "Living Room", - "properties": { - "active_climate_preset": { - "can_delete": true, - "can_edit": true, - "climate_preset_key": "sleep", - "cooling_set_point_celsius": 23.88888888888889, - "display_name": "Sleep", - "fan_mode_setting": "auto", - "heating_set_point_celsius": 17.77777777777778, - "hvac_mode_setting": "heat_cool", - "manual_override_allowed": true - }, - "appearance": { "name": "Living Room" }, - "available_climate_presets": [ - { - "climate_preset_key": "sleep", - "can_edit": true, - "can_delete": true, - "can_use_with_thermostat_daily_programs": false, - "name": "Sleep", - "display_name": "Sleep", - "fan_mode_setting": "auto", - "hvac_mode_setting": "heat_cool", - "manual_override_allowed": true, - "cooling_set_point_celsius": 23.88888888888889, - "heating_set_point_celsius": 17.77777777777778, - "cooling_set_point_fahrenheit": 75, - "heating_set_point_fahrenheit": 64 - }, - { - "climate_preset_key": "home", - "can_edit": true, - "can_delete": true, - "can_use_with_thermostat_daily_programs": false, - "name": "Home", - "display_name": "Home", - "fan_mode_setting": "auto", - "hvac_mode_setting": "heat_cool", - "manual_override_allowed": false, - "cooling_set_point_celsius": 23.88888888888889, - "heating_set_point_celsius": 17.77777777777778, - "cooling_set_point_fahrenheit": 75, - "heating_set_point_fahrenheit": 64 - }, - { - "climate_preset_key": "work", - "can_edit": true, - "can_delete": true, - "can_use_with_thermostat_daily_programs": false, - "name": "Work", - "display_name": "Work", - "fan_mode_setting": "auto", - "hvac_mode_setting": "heat_cool", - "manual_override_allowed": false, - "cooling_set_point_celsius": 23.88888888888889, - "heating_set_point_celsius": 17.77777777777778, - "cooling_set_point_fahrenheit": 75, - "heating_set_point_fahrenheit": 64 - } - ], - "available_fan_mode_settings": ["auto", "on"], - "available_hvac_mode_settings": ["cool", "heat", "heat_cool", "off"], - "current_climate_setting": { - "display_name": "Manual Setting", - "fan_mode_setting": "auto", - "heating_set_point_celsius": 25, - "heating_set_point_fahrenheit": 77, - "hvac_mode_setting": "heat", - "manual_override_allowed": true - }, - "ecobee_metadata": { - "device_name": "Living Room", - "ecobee_device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0" - }, - "fallback_climate_preset_key": "eco", - "fan_mode_setting": "auto", - "has_direct_power": true, - "image_alt_text": "Ecobee 3 Lite Thermostat", - "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png&q=75&w=128", - "is_cooling": false, - "is_fan_running": false, - "is_heating": false, - "is_temporary_manual_override_active": false, - "manufacturer": "ecobee", - "max_cooling_set_point_celsius": 33.333333333333336, - "max_cooling_set_point_fahrenheit": 92, - "max_heating_set_point_celsius": 26.11111111111111, - "max_heating_set_point_fahrenheit": 79, - "min_cooling_set_point_celsius": 18.333333333333336, - "min_cooling_set_point_fahrenheit": 65, - "min_heating_cooling_delta_celsius": 2.7777777777777777, - "min_heating_cooling_delta_fahrenheit": 5, - "min_heating_set_point_celsius": 7.222222222222222, - "min_heating_set_point_fahrenheit": 45, - "model": { - "display_name": "Thermostat", - "manufacturer_display_name": "Ecobee" - }, - "name": "Living Room", - "online": true, - "relative_humidity": 0.36, - "temperature_celsius": 21.11111111111111, - "temperature_fahrenheit": 70, - "temperature_threshold": { - "lower_limit_celsius": 16.66666666666667, - "lower_limit_fahrenheit": 62, - "upper_limit_celsius": 26.66666666666667, - "upper_limit_fahrenheit": 80 - }, - "thermostat_daily_programs": [ - { - "thermostat_daily_program_id": "1a2b3c4d-5e6f-7890-1234-56789abcdef1", - "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", - "name": "Weekday Program", - "periods": [ - { "starts_at_time": "00:00:00", "climate_preset_key": "sleep" }, - { "starts_at_time": "07:00:00", "climate_preset_key": "home" }, - { "starts_at_time": "09:00:00", "climate_preset_key": "work" }, - { "starts_at_time": "18:00:00", "climate_preset_key": "home" }, - { "starts_at_time": "22:00:00", "climate_preset_key": "sleep" } - ], - "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab", - "created_at": "2025-05-30T04:01:25.455Z" - }, - { - "thermostat_daily_program_id": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f90", - "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", - "name": "Weekend Program", - "periods": [ - { "starts_at_time": "00:00:00", "climate_preset_key": "sleep" }, - { "starts_at_time": "08:00:00", "climate_preset_key": "home" }, - { "starts_at_time": "23:00:00", "climate_preset_key": "sleep" } - ], - "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab", - "created_at": "2025-05-30T04:02:19.952Z" - } - ], - "thermostat_weekly_program": null - }, - "warnings": [], - "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab" -} -``` - - - - ```json Thermostat Device @@ -404,3232 +228,1682 @@ A thermostat device resource. ## Properties -**`can_configure_auto_lock`** _Boolean_ - ---- - -**`can_hvac_cool`** _Boolean_ - ---- - -**`can_hvac_heat`** _Boolean_ - ---- - -**`can_hvac_heat_cool`** _Boolean_ - ---- - -**`can_program_offline_access_codes`** _Boolean_ - ---- - -**`can_program_online_access_codes`** _Boolean_ - ---- - -**`can_program_thermostat_programs_as_different_each_day`** _Boolean_ - ---- - -**`can_program_thermostat_programs_as_same_each_day`** _Boolean_ - ---- - -**`can_program_thermostat_programs_as_weekday_weekend`** _Boolean_ - ---- - -**`can_remotely_lock`** _Boolean_ - ---- - -**`can_remotely_unlock`** _Boolean_ - ---- + + Indicates whether the lock supports configuring automatic locking. + -**`can_run_thermostat_programs`** _Boolean_ + + Indicates whether the thermostat supports cooling. + ---- + + Indicates whether the thermostat supports heating. + -**`can_simulate_connection`** _Boolean_ + + Indicates whether the thermostat supports simultaneous heating and cooling. + ---- + + Indicates whether the device supports programming offline access codes. + -**`can_simulate_disconnection`** _Boolean_ + + Indicates whether the device supports programming online access codes. + ---- + + Indicates whether the thermostat supports different climate programs for each day of the week. + -**`can_simulate_hub_connection`** _Boolean_ + + Indicates whether the thermostat supports a single climate program applied to every day. + ---- + + Indicates whether the thermostat supports weekday/weekend climate programs. + -**`can_simulate_hub_disconnection`** _Boolean_ + + Indicates whether the device supports remote locking. + ---- + + Indicates whether the device supports remote unlocking. + -**`can_simulate_paid_subscription`** _Boolean_ + + Indicates whether the thermostat supports running climate programs. + ---- + + Indicates whether the device supports simulating connection in a sandbox. + -**`can_simulate_removal`** _Boolean_ + + Indicates whether the device supports simulating disconnection in a sandbox. + ---- + + Indicates whether the hub supports simulating connection in a sandbox. + -**`can_turn_off_hvac`** _Boolean_ + + Indicates whether the hub supports simulating disconnection in a sandbox. + ---- + + Indicates whether the device supports simulating a paid subscription in a sandbox. + -**`can_unlock_with_code`** _Boolean_ + + Indicates whether the device supports simulating removal in a sandbox. + ---- + + Indicates whether the thermostat can be turned off. + -**`capabilities_supported`** _List_ _of Enums_ + + Indicates whether the lock supports unlocking with an access code. + -Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). + + Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). + ---- + + Unique identifier for the account associated with the device. + -**`connected_account_id`** _UUID_ + + Date and time at which the device object was created. + -Unique identifier for the account associated with the device. + + Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + ---- + + ID of the device. + -**`created_at`** _Datetime_ + + Type of the device. + -Date and time at which the device object was created. + + Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. + + + + Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. + + + + Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). + + + + Optional nickname to describe the device, settable through Seam. + + + + Properties of the device. + + + Accessory keypad properties and state. + + + Keypad battery properties. + + + The level. + + + + + Indicates if an accessory keypad is connected to the device. + + + + + Appearance-related properties, as reported by the device. + + + Name of the device as seen from the provider API and application, not settable through Seam. + + + + + Represents the current status of the battery charge level. + + + Battery charge level as a value between 0 and 1, inclusive. + + + Represents the current status of the battery charge level. Values are `critical`, which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; `low`, which signifies that the battery is under the preferred threshold and should be charged soon; `good`, which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and `full`, which represents a battery that is fully charged, providing the maximum duration of usage. + + + + + Indicates the battery level of the device as a decimal value between 0 and 1, inclusive. + + + Array of noise threshold IDs that are currently triggering. + + + Indicates whether the device has direct power. + + + Alt text for the device image. + + + Image URL for the device. + + + Manufacturer of the device. When a device, such as a smart lock, is connected through a smart hub, the manufacturer of the device might be different from that of the smart hub. + + + Device model-related properties. + + + The accessory keypad supported. + + + Indicates whether the device can connect a accessory keypad. + + + Display name of the device model. + + + Indicates whether the device has a built in accessory keypad. + + + Display name that corresponds to the manufacturer-specific terminology for the device. + + + The offline access codes supported. + + + The online access codes supported. + + + + + Name of the device. + + + Indicates current noise level in decibels, if the device supports noise detection. + + + Indicates whether it is currently possible to use offline access codes for the device. + + + Indicates whether the device is online. + + + Indicates whether it is currently possible to use online access codes for the device. + + + Serial number of the device. + + + The supports accessory keypad. + + + The supports offline access codes. + + + ASSA ABLOY Credential Service metadata for the phone. + + + Endpoints associated with the phone. + + + Indicates whether the credential service has active endpoints associated with the phone. + + + + + Salto Space credential service metadata for the phone. + + + Indicates whether the credential service has an active associated phone. + + + + + Metadata for an Akiles device. + + + Group ID to which to add users for an Akiles device. + + + Gadget ID for an Akiles device. + + + Gadget name for an Akiles device. + + + Product name for an Akiles device. + + + + + Metadata for an ASSA ABLOY Vostio system. + + + Encoder name for an ASSA ABLOY Vostio system. + + + + + Metadata for an August device. + + + Indicates whether an August device has a keypad. + + + House ID for an August device. + + + House name for an August device. + + + Keypad battery level for an August device. + + + Lock ID for an August device. + + + Lock name for an August device. + + + Model for an August device. + + + + + Metadata for an Avigilon Alta system. + + + Entry name for an Avigilon Alta system. + + + Total count of entry relays for an Avigilon Alta system. + + + Organization name for an Avigilon Alta system. + + + Site ID for an Avigilon Alta system. + + + Site name for an Avigilon Alta system. + + + Zone ID for an Avigilon Alta system. + + + Zone name for an Avigilon Alta system. + + + + + Metadata for a Brivo device. + + + Indicates whether the Brivo access point has activation (remote unlock) enabled. + + + Device name for a Brivo device. + + + + + Metadata for a ControlByWeb device. + + + Device ID for a ControlByWeb device. + + + Device name for a ControlByWeb device. + + + Relay name for a ControlByWeb device. + + + + + Metadata for a dormakaba Oracode device. + + + Device ID for a dormakaba Oracode device. + + + Door ID for a dormakaba Oracode device. + + + Indicates whether a door is wireless for a dormakaba Oracode device. + + + Door name for a dormakaba Oracode device. + + + IANA time zone for a dormakaba Oracode device. + + + Predefined time slots for a dormakaba Oracode device. + + + Site ID for a dormakaba Oracode device. + + + Site name for a dormakaba Oracode device. + + + + + Metadata for an ecobee device. + + + Device name for an ecobee device. + + + Device ID for an ecobee device. + + + + + Metadata for a 4SUITES device. + + + Device ID for a 4SUITES device. + + + Device name for a 4SUITES device. + + + Reclose delay, in seconds, for a 4SUITES device. + + + + + Metadata for a Genie device. + + + Lock name for a Genie device. + + + Door name for a Genie device. + + + + + Metadata for a Honeywell Resideo device. + + + Device name for a Honeywell Resideo device. + + + Device ID for a Honeywell Resideo device. + + + + + Metadata for an igloo device. + + + Bridge ID for an igloo device. + + + Device ID for an igloo device. + + + Model for an igloo device. + + + + + Metadata for an igloohome device. + + + Bridge ID for an igloohome device. + + + Bridge name for an igloohome device. + + + Device ID for an igloohome device. + + + Device name for an igloohome device. + + + Indicates whether a keypad is linked to a bridge for an igloohome device. + + + Keypad ID for an igloohome device. + + + + + Metadata for a KeyNest device. + + + Address for a KeyNest device. + + + Current or last store ID for a KeyNest device. + + + Current status for a KeyNest device. + + + Current user company for a KeyNest device. + + + Current user email for a KeyNest device. + + + Current user name for a KeyNest device. + + + Current user phone number for a KeyNest device. + + + Default office ID for a KeyNest device. + + + Device name for a KeyNest device. + + + Fob ID for a KeyNest device. + + + Handover method for a KeyNest device. + + + Whether the KeyNest device has a photo. + + + Whether the key is in a locker that does not support the access codes API. + + + Key ID for a KeyNest device. + + + Key notes for a KeyNest device. + + + KeyNest app user for a KeyNest device. + + + Last movement timestamp for a KeyNest device. + + + Property ID for a KeyNest device. + + + Property postcode for a KeyNest device. + + + Status type for a KeyNest device. + + + Subscription plan for a KeyNest device. + + + + + Metadata for a Korelock device. + + + Device ID for a Korelock device. + + + Device name for a Korelock device. + + + Firmware version for a Korelock device. + + + Location ID for a Korelock device. Required for timebound access codes. + + + Model code for a Korelock device. + + + Serial number for a Korelock device. + + + WiFi signal strength (0-1) for a Korelock device. + + + + + Metadata for a Kwikset device. + + + Device ID for a Kwikset device. + + + Device name for a Kwikset device. + + + Model number for a Kwikset device. + + + + + Metadata for a Lockly device. + + + Device ID for a Lockly device. + + + Device name for a Lockly device. + + + Model for a Lockly device. + + + + + Metadata for a Minut device. + + + Device ID for a Minut device. + + + Device name for a Minut device. + + + Latest sensor values for a Minut device. + + + Latest accelerometer Z-axis reading for a Minut device. + + + Time of latest accelerometer Z-axis reading for a Minut device. + + + Value of latest accelerometer Z-axis reading for a Minut device. + + + + + Latest humidity reading for a Minut device. + + + Time of latest humidity reading for a Minut device. + + + Value of latest humidity reading for a Minut device. + + + + + Latest pressure reading for a Minut device. + + + Time of latest pressure reading for a Minut device. + + + Value of latest pressure reading for a Minut device. + + + + + Latest sound reading for a Minut device. + + + Time of latest sound reading for a Minut device. + + + Value of latest sound reading for a Minut device. + + + + + Latest temperature reading for a Minut device. + + + Time of latest temperature reading for a Minut device. + + + Value of latest temperature reading for a Minut device. + + + + + + + + + Metadata for a Google Nest device. + + + Custom device name for a Google Nest device. The device owner sets this value. + + + Device name for a Google Nest device. Google sets this value. + + + Display name for a Google Nest device. + + + Device ID for a Google Nest device. + + + + + Metadata for a NoiseAware device. + + + Device ID for a NoiseAware device. + + + Device model for a NoiseAware device. + + + Device name for a NoiseAware device. + + + Noise level, in decibels, for a NoiseAware device. + + + Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. + + + + + Metadata for a Nuki device. + + + Device ID for a Nuki device. + + + Device name for a Nuki device. + + + Indicates whether keypad 2 is paired for a Nuki device. + + + Indicates whether the keypad battery is in a critical state for a Nuki device. + + + Indicates whether the keypad is paired for a Nuki device. + + + + + Metadata for an Omnitec device. + + + Whether the Omnitec lock has a connected gateway for remote operations. + + + Lock ID for an Omnitec device. + + + Bluetooth MAC address for an Omnitec device. + + + Lock name for an Omnitec device. + + + Static UTC offset of the Omnitec lock in milliseconds. Does not account for DST. + + + + + Metadata for a Ring device. + + + Device ID for a Ring device. + + + Device name for a Ring device. + + + + + Metadata for a Salto KS device. + + + Battery level for a Salto KS device. + + + Customer reference for a Salto KS device. + + + Indicates whether the site has a Salto KS subscription that supports custom PINs. + + + Lock ID for a Salto KS device. + + + Lock type for a Salto KS device. + + + Locked state for a Salto KS device. + + + Model for a Salto KS device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + + + Metada for a Salto device. + + + Battery level for a Salto device. + + + Customer reference for a Salto device. + + + Lock ID for a Salto device. + + + Lock type for a Salto device. + + + Locked state for a Salto device. + + + Model for a Salto device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + + + Metadata for a Schlage device. + + + Device ID for a Schlage device. + + + Device name for a Schlage device. + + + Model for a Schlage device. + + + + + Metadata for Seam Bridge. + + + Device number for Seam Bridge. + + + Name for Seam Bridge. + + + Unlock method for Seam Bridge. + + + + + Metadata for a Sensi device. + + + Device ID for a Sensi device. + + + Device name for a Sensi device. + + + Set to true when the device does not support the /dual-setpoints API endpoint. + + + Product type for a Sensi device. + + + + + Metadata for a SmartThings device. + + + Device ID for a SmartThings device. + + + Device name for a SmartThings device. + + + Location ID for a SmartThings device. + + + Model for a SmartThings device. + + + + + Metadata for a tado° device. + + + Device type for a tado° device. + + + Serial number for a tado° device. + + + + + Metadata for a Tedee device. + + + Bridge ID for a Tedee device. + + + Bridge name for a Tedee device. + + + Device ID for a Tedee device. + + + Device model for a Tedee device. + + + Device name for a Tedee device. + + + Keypad ID for a Tedee device. + + + Serial number for a Tedee device. + + + + + Metadata for a TTLock device. + + + Feature value for a TTLock device. + + + Features for a TTLock device. + + + Indicates whether a TTLock device supports auto-lock time configuration. + + + Indicates whether a TTLock device supports an incomplete keyboard passcode. + + + Indicates whether a TTLock device supports the lock command. + + + Indicates whether a TTLock device supports a passcode. + + + Indicates whether a TTLock device supports passcode management. + + + Indicates whether a TTLock device supports unlock via gateway. + + + Indicates whether a TTLock device supports Wi-Fi. + + + + + Indicates whether a TTLock device has a gateway. + + + Lock alias for a TTLock device. + + + Lock ID for a TTLock device. + + + Lock-side timezone offset in milliseconds east of UTC, as configured in the TTLock app. Source of truth for the lock's wall-clock interpretation of access code start/end times — a misconfigured value here is the typical cause of customer "codes offset by N hours" reports. Diagnostic only; Seam does not convert times based on this value. + + + Wireless keypads for a TTLock device. + + + + + Metadata for a 2N device. + + + Device ID for a 2N device. + + + Device name for a 2N device. + + + + + Metadata for an Ultraloq device. + + + Device ID for an Ultraloq device. + + + Device name for an Ultraloq device. + + + Device type for an Ultraloq device. + + + IANA timezone for the Ultraloq device. + + + + + Metadata for an ASSA ABLOY Visionline system. + + + Encoder ID for an ASSA ABLOY Visionline system. + + + + + Metadata for a Wyze device. + + + Device ID for a Wyze device. + + + Device information model for a Wyze device. + + + Device name for a Wyze device. + + + Keypad UUID for a Wyze device. + + + Locker status (hardlock) for a Wyze device. + + + Product model for a Wyze device. + + + Product name for a Wyze device. + + + Product type for a Wyze device. + + + + + The delay in seconds before the lock automatically locks after being unlocked. + + + Indicates whether automatic locking is enabled. + + + Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. + + + Indicates whether the door is open. + + + Indicates whether the device supports native entry events. + + + Keypad battery status. + + + Keypad battery charge level. + + + + + Indicates whether the lock is locked. + + + Maximum number of active access codes that the device supports. + + + Supported code lengths for access codes. + + + Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). + + + Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + + + ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + + + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + ID of the workspace that contains the thermostat schedule. + + + + + ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". + + + Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. + + + Fan mode settings that the thermostat supports. + + + HVAC mode settings that the thermostat supports. + + + Current climate setting. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + Metadata specific to the Ecobee climate, if applicable. + + + Reference to the Ecobee climate, if applicable. + + + Indicates if the climate preset is optimized by Ecobee. + + + Indicates whether the climate preset is owned by the user or the system. + + + + + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + + + The default climate setting. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + Metadata specific to the Ecobee climate, if applicable. + + + Reference to the Ecobee climate, if applicable. + + + Indicates if the climate preset is optimized by Ecobee. + + + Indicates whether the climate preset is owned by the user or the system. + + + + + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + + + Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. + + + The fan mode setting. + + + Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. + + + Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. + + + Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. + + + Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. + + + Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + + + Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + + + Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + + + Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + + + Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. + + + Maximum number of climate presets that the thermostat can support for weekly programming. + + + Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + + + Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + + + Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + + + Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + + + Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + + + Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + + + Reported relative humidity, as a value between 0 and 1, inclusive. + + + Reported temperature in °C. + + + Reported temperature in °F. + + + Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + + + Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. + + + Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + + + Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + + + Date and time at which the thermostat weekly program was created. + + + ID of the thermostat daily program to run on Fridays. + + + ID of the thermostat daily program to run on Mondays. + + + ID of the thermostat daily program to run on Saturdays. + + + ID of the thermostat daily program to run on Sundays. + + + ID of the thermostat daily program to run on Thursdays. + + + ID of the thermostat daily program to run on Tuesdays. + + + ID of the thermostat daily program to run on Wednesdays. + + + + + + + + IDs of the spaces the device is in. + + + + Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. + + + + Unique identifier for the Seam workspace associated with the device. + + +## Thermostats + + + Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + + + ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + + + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + ID of the workspace that contains the thermostat schedule. + + + + + + ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + + Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". + + + + Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. + + + + Fan mode settings that the thermostat supports. + + + + HVAC mode settings that the thermostat supports. + + + + Current climate setting. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + Metadata specific to the Ecobee climate, if applicable. + + + Reference to the Ecobee climate, if applicable. + + + Indicates if the climate preset is optimized by Ecobee. + + + Indicates whether the climate preset is owned by the user or the system. + + + + + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + + + + The default climate setting. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + Metadata specific to the Ecobee climate, if applicable. + + + Reference to the Ecobee climate, if applicable. + + + Indicates if the climate preset is optimized by Ecobee. + + + Indicates whether the climate preset is owned by the user or the system. + + + + + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + + + + Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. + + + + The fan mode setting. + ---- + + Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. + -**`custom_metadata`** _Record_ + + Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. + -Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + + Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. + ---- + + Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. + -**`device_id`** _UUID_ + + Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + -ID of the device. + + Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + ---- + + Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + -**`device_type`** _Enum_ - -Type of the device. - - - -- akuvox_lock -- august_lock -- brivo_access_point -- butterflymx_panel -- avigilon_alta_entry -- doorking_lock -- genie_door -- igloo_lock -- linear_lock -- lockly_lock -- kwikset_lock -- nuki_lock -- salto_lock -- schlage_lock -- smartthings_lock -- wyze_lock -- yale_lock -- two_n_intercom -- controlbyweb_device -- ttlock_lock -- igloohome_lock -- four_suites_door -- dormakaba_oracode_door -- tedee_lock -- akiles_lock -- ultraloq_lock -- korelock_lock -- keynest_key -- noiseaware_activity_zone -- minut_sensor -- ecobee_thermostat -- nest_thermostat -- honeywell_resideo_thermostat -- tado_thermostat -- sensi_thermostat -- smartthings_thermostat -- ios_phone -- android_phone -- ring_camera - + + Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + ---- + + Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. + -**`display_name`** _String_ + + Maximum number of climate presets that the thermostat can support for weekly programming. + -Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. + + Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + ---- + + Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + -[**`errors`**](#errors) _List_ _of Objects_ + + Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + -Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. + + Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + -The specific structure of each object in this list depends on the value of its `error_code` field. + + Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + -Variants: + + Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + - + + Reported relative humidity, as a value between 0 and 1, inclusive. + -Indicates that the account is disconnected. + + Reported temperature in °C. + -**`created_at`** _Datetime_ + + Reported temperature in °F. + -Date and time at which Seam created the error. + + Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + ---- + + Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. + -**`error_code`** _Enum_ + + Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- account_disconnected - ---- - -**`is_connected_account_error`** _Boolean_ - -Indicates that the error is a [connected account](/api/connected_accounts/object) error. - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is not a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the Salto site user limit has been reached. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_subscription_limit_exceeded - ---- - -**`is_connected_account_error`** _Boolean_ - -Indicates that the error is a [connected account](/api/connected_accounts/object) error. - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is not a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the device is offline. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_offline - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the device has been removed. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_removed - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the hub is disconnected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- hub_disconnected - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the device is disconnected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_disconnected - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- empty_backup_access_code_pool - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the user is not authorized to use the August lock. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- august_lock_not_authorized - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the lock is not connected to a bridge. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- august_lock_missing_bridge - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the lock is not paired with a gateway. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- ttlock_lock_not_paired_to_gateway - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that device credentials are missing. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- missing_device_credentials - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the auxiliary heat is running. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- auxiliary_heat_running - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that a subscription is required to connect. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- subscription_required - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the Lockly lock is not connected to a Wi-Fi bridge. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- lockly_missing_wifi_bridge - ---- - -**`is_device_error`** _Boolean_ - -Indicates that the error is a device error. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - - -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system). - -**`created_at`** _Datetime_ - -Date and time at which Seam created the error. - ---- - -**`error_code`** _Enum_ - -Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - -Enum values: - -- bridge_disconnected - ---- - -**`is_bridge_error`** _Boolean_ - -Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). - ---- - -**`is_connected_account_error`** _Boolean_ - -Indicates whether the error is related specifically to the connected account. - ---- - -**`message`** _String_ - -Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - - ---- - -**`is_managed`** _Boolean_ - -Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices). - ---- - -**`nickname`** _String_ - -Optional nickname to describe the device, settable through Seam. - ---- - -**`space_ids`** _List_ _of UUIDs_ - -IDs of the spaces the device is in. - ---- - -[**`warnings`**](#warnings) _List_ _of Objects_ - -Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. - -The specific structure of each object in this list depends on the value of its `warning_code` field. - -Variants: - - - -Indicates that the backup access code is unhealthy. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- partial_backup_access_code_pool - - - - -Indicates that there are too many backup codes. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- many_active_backup_codes - - - - -Indicates that the Wyze Lock is not connected to a gateway. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- wyze_device_missing_gateway - - - - -Indicates that a third-party integration has been detected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- third_party_integration_detected - - - - -Indicates that the Remote Unlock feature is not enabled in the settings." - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- ttlock_lock_gateway_unlocking_not_enabled - - - - -Indicates that the gateway signal is weak. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- ttlock_weak_gateway_signal - - - - -Indicates that the device is in power saving mode and may have limited functionality. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- power_saving_mode - - - - -Indicates that the temperature threshold has been exceeded. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- temperature_threshold_exceeded - - - - -Indicates that the device appears to be unresponsive. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_communication_degraded - - - - -Indicates that a scheduled maintenance window has been detected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- scheduled_maintenance_window - - - - -Indicates that the device has a flaky connection. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- device_has_flaky_connection - - - - -Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_office_mode - - - - -Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_privacy_mode - - - - -Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- salto_ks_subscription_limit_almost_reached - - - - -Indicates that an unknown issue occurred while syncing the state of the phone with the provider. This issue may affect the proper functioning of the phone. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- unknown_issue_with_phone - - - - -Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- lockly_time_zone_not_configured - - - - -Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- ultraloq_time_zone_unknown - - - - -Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- two_n_device_missing_timezone - - - - -Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- hub_required_for_additional_capabilities - - - - -Indicates that the key is in a locker that does not support the access codes API. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- keynest_unsupported_locker - - - - -Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- accessory_keypad_setup_required - - - - -Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- unreliable_online_status - - - - -Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. - -**`active_access_code_count`** _Number_ - -Number of active access codes on the device when the warning was set. - ---- - -**`created_at`** _Datetime_ - -Date and time at which Seam created the warning. - ---- - -**`max_active_access_code_count`** _Number_ - -Maximum number of active access codes supported by the device. - ---- - -**`message`** _String_ - -Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. - ---- - -**`warning_code`** _Enum_ - -Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. - -Enum values: - -- max_access_codes_reached - - - ---- - -**`workspace_id`** _UUID_ - -Unique identifier for the Seam workspace associated with the device. - ---- - -## device.properties - -**`active_thermostat_schedule`** _Object_ - -Active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - **Deprecated**. Use `active_thermostat_schedule_id` with - `/thermostats/schedules/get` instead. - - - - - - Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - - - ID of the desired [thermostat](/capability-guides/thermostats) device. - - - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Unique identifier of the type of error. Enables quick recognition and categorization of the issue. - - - Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - - - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - ID of the [workspace](/core-concepts/workspaces) that contains the thermostat schedule. - - - - ---- - -**`active_thermostat_schedule_id`** _UUID_ - -ID of the active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - ---- - -**`akiles_metadata`** _Object_ - -Metadata for an Akiles device. - - - - - Group ID to which to add users for an Akiles device. - - - Gadget ID for an Akiles device. - - - Gadget name for an Akiles device. - - - Product name for an Akiles device. - - - ---- - -**`assa_abloy_credential_service_metadata`** _Object_ - -ASSA ABLOY Credential Service metadata for the phone. - - - - - Endpoints associated with the phone. - - - ID of the associated endpoint. - - - Indicated whether the endpoint is active. - - Indicates whether the credential service has active endpoints associated with the phone. - - - - ---- - -**`assa_abloy_vostio_metadata`** _Object_ - -Metadata for an ASSA ABLOY Vostio system. - - - - - Encoder name for an ASSA ABLOY Vostio system. - - - ---- - -**`august_metadata`** _Object_ - -Metadata for an August device. - - - - - Indicates whether an August device has a keypad. - - - House ID for an August device. - - - House name for an August device. - - - Keypad battery level for an August device. - - - Lock ID for an August device. - - - Lock name for an August device. - - - Model for an August device. - - - ---- - -**`available_climate_preset_modes`** _List_ _of Enums_ - -Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". - ---- - -**`available_climate_presets`** _List_ _of Objects_ - -Available [climate presets](/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. - - -can_delete Boolean - -Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - can_edit - -Boolean - -Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - can_use_with_thermostat_daily_programs - -Boolean - -Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - climate_preset_key - -String - -Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - climate_preset_mode - -Enum - -The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - - - home - - away - - wake - - sleep - - occupied - - unoccupied - - - - - cooling_set_point_celsius - -Number - -Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - cooling_set_point_fahrenheit - -Number - -Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - display_name - -String - -Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - ecobee_metadata - -Object - -Metadata specific to the Ecobee climate, if applicable. - - - ecobee_metadata.climate_ref - -String - -Reference to the Ecobee climate, if applicable. - - - ecobee_metadata.is_optimized - -Boolean - -Indicates if the climate preset is optimized by Ecobee. - - - ecobee_metadata.owner - -Enum - -Indicates whether the climate preset is owned by the user or the system. - - - - - user - - system - - - - - fan_mode_setting - -Enum - -Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - - - auto - - on - - circulate - - - - - heating_set_point_celsius - -Number - -Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - heating_set_point_fahrenheit - -Number - -Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - hvac_mode_setting - -Enum - -Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - - - off - - heat - - cool - - heat_cool - - eco - - - - - manual_override_allowed - -Boolean - -Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - -**Deprecated**. Use 'thermostat_schedule.is_override_allowed' - - - name - -String - -User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - ---- - -**`available_fan_mode_settings`** _List_ _of Enums_ - -Fan mode settings that the thermostat supports. - ---- - -**`available_hvac_mode_settings`** _List_ _of Enums_ - -HVAC mode settings that the thermostat supports. - ---- - -**`avigilon_alta_metadata`** _Object_ - -Metadata for an Avigilon Alta system. - - - - - Entry name for an Avigilon Alta system. - - - Total count of entry relays for an Avigilon Alta system. - - - Organization name for an Avigilon Alta system. - - - Site ID for an Avigilon Alta system. - - - Site name for an Avigilon Alta system. - - - Zone ID for an Avigilon Alta system. - - - Zone name for an Avigilon Alta system. - - - ---- - -**`brivo_metadata`** _Object_ - -Metadata for a Brivo device. - - - - - Indicates whether the Brivo access point has activation (remote unlock) enabled. - - - Device name for a Brivo device. - - - ---- - -**`controlbyweb_metadata`** _Object_ - -Metadata for a ControlByWeb device. - - - - - Device ID for a ControlByWeb device. - - - Device name for a ControlByWeb device. - - - Relay name for a ControlByWeb device. - - - ---- - -**`current_climate_setting`** _Object_ - -Current climate setting. - - - - - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - - - `home` - - `away` - - `wake` - - `sleep` - - `occupied` - - `unoccupied` - - - - - Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - Metadata specific to the Ecobee climate, if applicable. - - - Reference to the Ecobee climate, if applicable. - - - Indicates if the climate preset is optimized by Ecobee. - - - Indicates whether the climate preset is owned by the user or the system. - - - - - `user` - - `system` - - - - - Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - - - `auto` - - `on` - - `circulate` - - - - - Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - - - `off` - - `heat` - - `cool` - - `heat_cool` - - `eco` - - - - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - - - User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - ---- - -**`default_climate_setting`** _Object_ - - - **Deprecated**. use fallback_climate_preset_key to specify a fallback climate - preset instead. - - - - - - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - - - `home` - - `away` - - `wake` - - `sleep` - - `occupied` - - `unoccupied` - - - - - Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - Metadata specific to the Ecobee climate, if applicable. - - - Reference to the Ecobee climate, if applicable. - - - Indicates if the climate preset is optimized by Ecobee. - - - Indicates whether the climate preset is owned by the user or the system. - - - - - `user` - - `system` - - - - - Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - - - `auto` - - `on` - - `circulate` - - - - - Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - - - `off` - - `heat` - - `cool` - - `heat_cool` - - `eco` - - - - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - - - User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - - - ---- - -**`dormakaba_oracode_metadata`** _Object_ - -Metadata for a dormakaba Oracode device. - - - - - Device ID for a dormakaba Oracode device. - - - Door ID for a dormakaba Oracode device. - - - Indicates whether a door is wireless for a dormakaba Oracode device. - - - Door name for a dormakaba Oracode device. - - - IANA time zone for a dormakaba Oracode device. - - - Predefined time slots for a dormakaba Oracode device. - - - Check in time for a time slot for a dormakaba Oracode device. - - - Checkout time for a time slot for a dormakaba Oracode device. - - - ID of a user level for a dormakaba Oracode device. - - - Prefix for a user level for a dormakaba Oracode device. - - - Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot. - - - Indicates whether a time slot for a dormakaba Oracode device is in biweekly mode. - - - Indicates whether a time slot for a dormakaba Oracode device is a master time slot. - - - Indicates whether a time slot for a dormakaba Oracode device is a one-shot time slot. - - - Name of a time slot for a dormakaba Oracode device. - - - Prefix for a time slot for a dormakaba Oracode device. - - Site ID for a dormakaba Oracode device. - - **Deprecated**. Previously marked as "@DEPRECATED."- - - site_name - - String - - Site name for a dormakaba Oracode device. - - - - ---- - -**`ecobee_metadata`** _Object_ - -Metadata for an ecobee device. - - - - - Device name for an ecobee device. - - - Device ID for an ecobee device. - - - ---- - -**`fallback_climate_preset_key`** _String_ - -Key of the [fallback climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. - ---- - -**`fan_mode_setting`** _Enum_ - - - **Deprecated**. Use `current_climate_setting.fan_mode_setting` instead. - - - - -- auto -- on -- circulate - - ---- - -**`four_suites_metadata`** _Object_ - -Metadata for a 4SUITES device. - - - - - Device ID for a 4SUITES device. - - - Device name for a 4SUITES device. - - - Reclose delay, in seconds, for a 4SUITES device. - - - ---- - -**`genie_metadata`** _Object_ - -Metadata for a Genie device. - - - - - Lock name for a Genie device. - - - Door name for a Genie device. - - - ---- - -**`honeywell_resideo_metadata`** _Object_ - -Metadata for a Honeywell Resideo device. - - - - - Device name for a Honeywell Resideo device. - - - Device ID for a Honeywell Resideo device. - - - ---- - -**`igloo_metadata`** _Object_ - -Metadata for an igloo device. - - - - - Bridge ID for an igloo device. - - - Device ID for an igloo device. - - - Model for an igloo device. - - - ---- - -**`igloohome_metadata`** _Object_ - -Metadata for an igloohome device. - - - - - Bridge ID for an igloohome device. - - - Bridge name for an igloohome device. - - - Device ID for an igloohome device. - - - Device name for an igloohome device. - - - Indicates whether a keypad is linked to a bridge for an igloohome device. - - - Keypad ID for an igloohome device. - - - ---- - -**`is_cooling`** _Boolean_ - -Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. - ---- - -**`is_fan_running`** _Boolean_ - -Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. - ---- - -**`is_heating`** _Boolean_ - -Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. - ---- - -**`is_temporary_manual_override_active`** _Boolean_ - -Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. - ---- - -**`keynest_metadata`** _Object_ - -Metadata for a KeyNest device. - - - - - Address for a KeyNest device. - - - Current or last store ID for a KeyNest device. - - - Current status for a KeyNest device. - - - Current user company for a KeyNest device. - - - Current user email for a KeyNest device. - - - Current user name for a KeyNest device. - - - Current user phone number for a KeyNest device. - - - Default office ID for a KeyNest device. - - - Device name for a KeyNest device. - - - Fob ID for a KeyNest device. - - - Handover method for a KeyNest device. - - - Whether the KeyNest device has a photo. - - - Whether the key is in a locker that does not support the access codes API. - - - Key ID for a KeyNest device. - - - Key notes for a KeyNest device. - - - KeyNest app user for a KeyNest device. - - - Last movement timestamp for a KeyNest device. - - - Property ID for a KeyNest device. - - - Property postcode for a KeyNest device. - - - Status type for a KeyNest device. - - - Subscription plan for a KeyNest device. - - - ---- - -**`korelock_metadata`** _Object_ - -Metadata for a Korelock device. - - - - - Device ID for a Korelock device. - - - Device name for a Korelock device. - - - Firmware version for a Korelock device. - - - Location ID for a Korelock device. Required for timebound access codes. - - - Model code for a Korelock device. - - - Serial number for a Korelock device. - - - WiFi signal strength (0-1) for a Korelock device. - - - ---- - -**`kwikset_metadata`** _Object_ - -Metadata for a Kwikset device. - - - - - Device ID for a Kwikset device. - - - Device name for a Kwikset device. - - - Model number for a Kwikset device. - - - ---- - -**`lockly_metadata`** _Object_ - -Metadata for a Lockly device. - - - - - Device ID for a Lockly device. - - - Device name for a Lockly device. - - - Model for a Lockly device. - - - ---- - -**`max_cooling_set_point_celsius`** _Number_ - -Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - ---- - -**`max_cooling_set_point_fahrenheit`** _Number_ - -Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - ---- - -**`max_heating_set_point_celsius`** _Number_ - -Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - ---- - -**`max_heating_set_point_fahrenheit`** _Number_ - -Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. - ---- - -**`max_thermostat_daily_program_periods_per_day`** _Number_ - -Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. - ---- - -**`max_unique_climate_presets_per_thermostat_weekly_program`** _Number_ - -Maximum number of climate presets that the thermostat can support for weekly programming. - ---- - -**`min_cooling_set_point_celsius`** _Number_ - -Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - ---- - -**`min_cooling_set_point_fahrenheit`** _Number_ - -Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - ---- - -**`min_heating_cooling_delta_celsius`** _Number_ - -Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. - ---- - -**`min_heating_cooling_delta_fahrenheit`** _Number_ - -Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. - ---- - -**`min_heating_set_point_celsius`** _Number_ - -Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - ---- - -**`min_heating_set_point_fahrenheit`** _Number_ - -Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. - ---- - -**`minut_metadata`** _Object_ - -Metadata for a Minut device. - - - - - Device ID for a Minut device. - - - Device name for a Minut device. - - - Latest sensor values for a Minut device. - - - Latest accelerometer Z-axis reading for a Minut device. - - - Time of latest accelerometer Z-axis reading for a Minut device. - - - Value of latest accelerometer Z-axis reading for a Minut device. - - - Latest humidity reading for a Minut device. - - - Time of latest humidity reading for a Minut device. - - - Value of latest humidity reading for a Minut device. - - - Latest pressure reading for a Minut device. - - - Time of latest pressure reading for a Minut device. - - - Value of latest pressure reading for a Minut device. - - - Latest sound reading for a Minut device. - - - Time of latest sound reading for a Minut device. - - - Value of latest sound reading for a Minut device. - - - Latest temperature reading for a Minut device. - - - Time of latest temperature reading for a Minut device. - - - Value of latest temperature reading for a Minut device. - - - ---- - -**`model`** _Object_ - -Device model-related properties. - - - - - - **Deprecated**. use device.properties.model.can_connect_accessory_keypad - - - - Indicates whether the device can connect a accessory keypad. - - - Display name of the device model. - - - Indicates whether the device has a built in accessory keypad. - - - Display name that corresponds to the manufacturer-specific terminology for the device. - - - **Deprecated**. use device.can_program_offline_access_codes. - - - **Deprecated**. use device.can_program_online_access_codes. - - - ---- - -**`name`** _String_ - -Name of the device. - -**Deprecated**. use device.display_name instead - ---- - -**`nest_metadata`** _Object_ - -Metadata for a Google Nest device. - - - - - Custom device name for a Google Nest device. The device owner sets this value. - - - Device name for a Google Nest device. Google sets this value. - - - Display name for a Google Nest device. - - - Device ID for a Google Nest device. - - - ---- - -**`noiseaware_metadata`** _Object_ - -Metadata for a NoiseAware device. - - - - - Device ID for a NoiseAware device. - - - Device model for a NoiseAware device. - - - - - `indoor` - - `outdoor` - - - - - Device name for a NoiseAware device. - - - Noise level, in decibels, for a NoiseAware device. - - - Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. - - - ---- - -**`nuki_metadata`** _Object_ - -Metadata for a Nuki device. - - - - - Device ID for a Nuki device. - - - Device name for a Nuki device. - - - Indicates whether keypad 2 is paired for a Nuki device. - - - Indicates whether the keypad battery is in a critical state for a Nuki device. - - - Indicates whether the keypad is paired for a Nuki device. - - - ---- - -**`online`** _Boolean_ - -Indicates whether the device is online. - ---- - -**`relative_humidity`** _Number_ - -Reported relative humidity, as a value between 0 and 1, inclusive. - ---- - -**`ring_metadata`** _Object_ - -Metadata for a Ring device. - - - - - Device ID for a Ring device. - - - Device name for a Ring device. - - - ---- - -**`salto_ks_metadata`** _Object_ - -Metadata for a Salto KS device. - - - - - Battery level for a Salto KS device. - - - Customer reference for a Salto KS device. - - - Indicates whether the site has a Salto KS subscription that supports custom PINs. - - - Lock ID for a Salto KS device. - - - Lock type for a Salto KS device. - - - Locked state for a Salto KS device. - - - Model for a Salto KS device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - ---- - -**`salto_metadata`** _Object_ - -Metada for a Salto device. - -**Deprecated**. Use `salto_ks_metadata ` instead. - - - - - Battery level for a Salto device. - - - Customer reference for a Salto device. - - - Lock ID for a Salto device. - - - Lock type for a Salto device. - - - Locked state for a Salto device. - - - Model for a Salto device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - ---- - -**`salto_space_credential_service_metadata`** _Object_ - -Salto Space credential service metadata for the phone. - - - - - Indicates whether the credential service has an active associated phone. - - - ---- - -**`schlage_metadata`** _Object_ - -Metadata for a Schlage device. - - - - - Device ID for a Schlage device. - - - Device name for a Schlage device. - - - Model for a Schlage device. - - - ---- - -**`seam_bridge_metadata`** _Object_ - -Metadata for Seam Bridge. - - - - - Device number for Seam Bridge. - - - Name for Seam Bridge. - - - Unlock method for Seam Bridge. - - - - - `bridge` - - `doorking` - - - - - ---- - -**`sensi_metadata`** _Object_ - -Metadata for a Sensi device. - - - - - Device ID for a Sensi device. - - - Device name for a Sensi device. - - - Set to true when the device does not support the /dual-setpoints API endpoint. - - - Product type for a Sensi device. - - - ---- - -**`smartthings_metadata`** _Object_ - -Metadata for a SmartThings device. - - - - - Device ID for a SmartThings device. - - - Device name for a SmartThings device. - - - Location ID for a SmartThings device. - - - Model for a SmartThings device. - - - ---- - -**`tado_metadata`** _Object_ - -Metadata for a tado° device. - - - - - Device type for a tado° device. - - - Serial number for a tado° device. - - - ---- - -**`tedee_metadata`** _Object_ - -Metadata for a Tedee device. - - - - - Bridge ID for a Tedee device. - - - Bridge name for a Tedee device. - - - Device ID for a Tedee device. - - - Device model for a Tedee device. - - - Device name for a Tedee device. - - - Keypad ID for a Tedee device. - - - Serial number for a Tedee device. - - - ---- - -**`temperature_celsius`** _Number_ - -Reported temperature in °C. - ---- - -**`temperature_fahrenheit`** _Number_ - -Reported temperature in °F. - ---- - -**`temperature_threshold`** _Object_ - -Current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - - - Lower limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Lower limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Upper limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Upper limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - ---- - -**`thermostat_daily_program_period_precision_minutes`** _Number_ - -Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. - ---- - -**`thermostat_daily_programs`** _List_ _of Objects_ - -Configured [daily programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - - -created_at Datetime - -Date and time at which the thermostat daily program was created. - - - device_id - -UUID - -ID of the thermostat device on which the thermostat daily program is configured. - - - name - -String - -User-friendly name to identify the thermostat daily program. - - - periods - -List of Objects - -Array of thermostat daily program periods. - - - Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`. - - - Time at which the thermostat daily program period starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - thermostat_daily_program_id - - UUID - - ID of the thermostat daily program. - - - workspace_id - - UUID - - ID of the [workspace](/core-concepts/workspaces) that contains the thermostat daily program. - - - ---- - -**`thermostat_weekly_program`** _Object_ - -Current [weekly program](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - - - - - Date and time at which the thermostat weekly program was created. - - - ID of the thermostat daily program to run on Fridays. - - - ID of the thermostat daily program to run on Mondays. - - - ID of the thermostat daily program to run on Saturdays. - - - ID of the thermostat daily program to run on Sundays. - - - ID of the thermostat daily program to run on Thursdays. - - - ID of the thermostat daily program to run on Tuesdays. - - - ID of the thermostat daily program to run on Wednesdays. - - - ---- - -**`ttlock_metadata`** _Object_ - -Metadata for a TTLock device. - - - - - Feature value for a TTLock device. - - - Features for a TTLock device. - - - Indicates whether a TTLock device supports auto-lock time configuration. - - - Indicates whether a TTLock device supports an incomplete keyboard passcode. - - - Indicates whether a TTLock device supports the lock command. - - - Indicates whether a TTLock device supports a passcode. - - - Indicates whether a TTLock device supports passcode management. - - - Indicates whether a TTLock device supports unlock via gateway. - - - Indicates whether a TTLock device supports Wi-Fi. - - - Indicates whether a TTLock device has a gateway. - - - Lock alias for a TTLock device. - - - Lock ID for a TTLock device. - - - Wireless keypads for a TTLock device. - - - ID for a wireless keypad for a TTLock device. - - - Name for a wireless keypad for a TTLock device. - - - ---- - -**`two_n_metadata`** _Object_ - -Metadata for a 2N device. - - - - - Device ID for a 2N device. - - - Device name for a 2N device. - - - ---- - -**`ultraloq_metadata`** _Object_ - -Metadata for an Ultraloq device. - - - - - Device ID for an Ultraloq device. - - - Device name for an Ultraloq device. - - - Device type for an Ultraloq device. - - - IANA timezone for the Ultraloq device. - - - ---- - -**`visionline_metadata`** _Object_ - -Metadata for an ASSA ABLOY Visionline system. - - - - - Encoder ID for an ASSA ABLOY Visionline system. - - - ---- - -**`wyze_metadata`** _Object_ - -Metadata for a Wyze device. - - - - - Device ID for a Wyze device. + + Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + + + Date and time at which the thermostat weekly program was created. + + + ID of the thermostat daily program to run on Fridays. + + + ID of the thermostat daily program to run on Mondays. + + + ID of the thermostat daily program to run on Saturdays. + + + ID of the thermostat daily program to run on Sundays. + + + ID of the thermostat daily program to run on Thursdays. + + + ID of the thermostat daily program to run on Tuesdays. + + + ID of the thermostat daily program to run on Wednesdays. + + - - Device information model for a Wyze device. - - - Device name for a Wyze device. - - - Keypad UUID for a Wyze device. - - - Locker status (hardlock) for a Wyze device. - - - Product model for a Wyze device. - - - Product name for a Wyze device. - - - Product type for a Wyze device. - - - ---- - -## Errors - -**`auxiliary_heat_running`** - -Indicates that the auxiliary heat is running. - ---- - -**`ttlock_lock_not_paired_to_gateway`** - -Indicates that the lock is not paired with a gateway. - ---- - -**`subscription_required`** - -Indicates that a subscription is required to connect. - ---- - -**`missing_device_credentials`** - -Indicates that device credentials are missing. - ---- - -**`lockly_missing_wifi_bridge`** - -Indicates that the Lockly lock is not connected to a Wi-Fi bridge. - ---- - -**`hub_disconnected`** - -Indicates that the hub is disconnected. - ---- - -**`device_removed`** - -Indicates that the device has been removed. - ---- - -**`device_offline`** - -Indicates that the device is offline. - ---- - -**`device_disconnected`** - -Indicates that the device is disconnected. - ---- - -**`account_disconnected`** - -Indicates that the account is disconnected. - ---- - -**`bridge_disconnected`** - -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system). - ---- - -## Warnings - -**`device_communication_degraded`** - -Indicates that the device appears to be unresponsive. - ---- - -**`device_has_flaky_connection`** - -Indicates that the device has a flaky connection. - ---- - -**`lockly_time_zone_not_configured`** - -Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. - ---- - -**`salto_ks_subscription_limit_almost_reached`** - -Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. - ---- - -**`scheduled_maintenance_window`** - -Indicates that a scheduled maintenance window has been detected. - ---- - -**`temperature_threshold_exceeded`** - -Indicates that the temperature threshold has been exceeded. - ---- - -**`third_party_integration_detected`** - -Indicates that a third-party integration has been detected. - ---- - -**`ttlock_weak_gateway_signal`** - -Indicates that the gateway signal is weak. - ---- - -**`two_n_device_missing_timezone`** - -Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. - ---- - -**`ultraloq_time_zone_unknown`** - -Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. - ---- - -**`wyze_device_missing_gateway`** - -Indicates that the Wyze Lock is not connected to a gateway. - ---- - -## Endpoints - -[**`/thermostats/activate_climate_preset`**](./activate_climate_preset) - -Activates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/cool`**](./cool) - -Sets a specified [thermostat](/capability-guides/thermostats) to [cool mode](/capability-guides/thermostats/configure-current-climate-settings). - -[**`/thermostats/create_climate_preset`**](./create_climate_preset) - -Creates a [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/delete_climate_preset`**](./delete_climate_preset) - -Deletes a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/heat`**](./heat) - -Sets a specified [thermostat](/capability-guides/thermostats) to [heat mode](/capability-guides/thermostats/configure-current-climate-settings). - -[**`/thermostats/heat_cool`**](./heat_cool) - -Sets a specified [thermostat](/capability-guides/thermostats) to [heat-cool ("auto") mode](/capability-guides/thermostats/configure-current-climate-settings). - -[**`/thermostats/list`**](./list) - -Returns a list of all [thermostats](/capability-guides/thermostats). - -[**`/thermostats/off`**](./off) - -Sets a specified [thermostat](/capability-guides/thermostats) to ["off" mode](/capability-guides/thermostats/configure-current-climate-settings). - -[**`/thermostats/set_fallback_climate_preset`**](./set_fallback_climate_preset) - -Sets a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) as the ["fallback"](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) preset for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/set_fan_mode`**](./set_fan_mode) - -Sets the [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/set_hvac_mode`**](./set_hvac_mode) - -Sets the [HVAC mode](/capability-guides/thermostats/configure-current-climate-settings) for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/set_temperature_threshold`**](./set_temperature_threshold) - -Sets a [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range. - -[**`/thermostats/update_climate_preset`**](./update_climate_preset) - -Updates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). - -[**`/thermostats/update_weekly_program`**](./update_weekly_program) - -Updates the thermostat weekly program for a thermostat device. To configure a weekly program, specify the ID of the daily program that you want to use for each day of the week. When you update a weekly program, the set of programs that you specify overwrites any previous weekly program for the thermostat. diff --git a/mintlify-docs/api/thermostats/simulate/object.mdx b/mintlify-docs/api/thermostats/simulate/object.mdx index ad1c7b8b2..4e23522af 100644 --- a/mintlify-docs/api/thermostats/simulate/object.mdx +++ b/mintlify-docs/api/thermostats/simulate/object.mdx @@ -5,10 +5,10 @@ description: 'Use the thermostat simulation endpoints to mimic HVAC mode changes ## Endpoints -[**`/thermostats/simulate/hvac_mode_adjusted`**](./hvac_mode_adjusted) +[**`/thermostats/simulate/hvac_mode_adjusted`**](/api/thermostats/simulate/hvac_mode_adjusted) -Simulates having adjusted the [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](/capability-guides/thermostats). Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). +Simulates having adjusted the [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](https://docs.seam.co/capability-guides/thermostats). Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). -[**`/thermostats/simulate/temperature_reached`**](./temperature_reached) +[**`/thermostats/simulate/temperature_reached`**](/api/thermostats/simulate/temperature_reached) -Simulates a [thermostat](/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). +Simulates a [thermostat](https://docs.seam.co/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). diff --git a/mintlify-docs/api/user_identities/unmanaged/object.mdx b/mintlify-docs/api/user_identities/unmanaged/object.mdx index 262d557f5..3459b8b73 100644 --- a/mintlify-docs/api/user_identities/unmanaged/object.mdx +++ b/mintlify-docs/api/user_identities/unmanaged/object.mdx @@ -5,14 +5,16 @@ description: 'Use the unmanaged user identity endpoints to get, list, and update ## Endpoints -[**`/user_identities/unmanaged/get`**](./get) +[**`/user_identities/unmanaged/get`**](/api/user_identities/unmanaged/get) -Returns a specified unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). +Returns a specified unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). -[**`/user_identities/unmanaged/list`**](./list) +[**`/user_identities/unmanaged/list`**](/api/user_identities/unmanaged/list) -Returns a list of all unmanaged [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). +Returns a list of all unmanaged [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). -[**`/user_identities/unmanaged/update`**](./update) +[**`/user_identities/unmanaged/update`**](/api/user_identities/unmanaged/update) -Updates an unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed. +Updates an unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed. + +This endpoint can only be used to convert unmanaged user identities to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed user identities back to unmanaged. From 19f569f4b7a044ccdb5e229812e96f5e25e00c80 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 6 Jul 2026 23:06:53 +0000 Subject: [PATCH 3/6] fix: restore original page shapes on generated listing and namespace pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Corrections to keep generated-page diffs limited to unavoidable content changes (blueprint truth vs drifted authored text): - Endpoint-listing pages link relatively (./get) again, matching the original pages, instead of absolute /api paths. - /noise_sensors returns to its original shape — heading, authored intro, and an endpoint listing — instead of a full device property view (endpoint listing pages now support an optional heading+intro section); a TODO in object-pages.yaml records the option to expand it later. - /acs restores the authored "The Access Control Systems (ACS) namespace contains the following resources:" line (new resources_intro field) and its self-anchor resource links, with a template TODO suggesting object-page links as a future improvement. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01P1YTCN8DidaFWzvLYyge3N --- mintlify-codegen/data/object-pages.yaml | 8 +- mintlify-codegen/layouts/endpoints.hbs | 10 +- mintlify-codegen/layouts/namespace.hbs | 8 +- mintlify-codegen/lib/layout/endpoints-page.ts | 13 +- mintlify-codegen/lib/layout/namespace-page.ts | 2 + mintlify-codegen/lib/object-page-metadata.ts | 3 + .../api/access_codes/simulate/object.mdx | 2 +- .../api/access_grants/unmanaged/object.mdx | 6 +- .../api/access_methods/unmanaged/object.mdx | 4 +- .../api/acs/encoders/simulate/object.mdx | 8 +- mintlify-docs/api/acs/object.mdx | 14 +- .../connected_accounts/simulate/object.mdx | 2 +- mintlify-docs/api/devices/simulate/object.mdx | 12 +- mintlify-docs/api/locks/simulate/object.mdx | 4 +- mintlify-docs/api/noise_sensors/object.mdx | 1463 +---------------- .../api/noise_sensors/simulate/object.mdx | 2 +- mintlify-docs/api/phones/simulate/object.mdx | 2 +- .../api/thermostats/simulate/object.mdx | 4 +- .../api/user_identities/unmanaged/object.mdx | 6 +- 19 files changed, 73 insertions(+), 1500 deletions(-) diff --git a/mintlify-codegen/data/object-pages.yaml b/mintlify-codegen/data/object-pages.yaml index 9fab010b4..12faa699d 100644 --- a/mintlify-codegen/data/object-pages.yaml +++ b/mintlify-codegen/data/object-pages.yaml @@ -76,6 +76,7 @@ For some access control systems, configure the allowed entrances and access schedule. For other systems, use `acs_access_group`s. For details, see the [system integration guide](/device-and-system-integration-guides#access-control-systems) for your access control system. 3. Create `acs_credential`s, which are the digital means of granting access to users, such as PIN codes, mobile keys, and plastic (RFID) cards. If you are developing a mobile app to provide access for your users, you can also use [Seam's iOS and Android SDKs](/capability-guides/mobile-access/mobile-device-sdks) that pair with the Seam API to create and manage mobile keys. + resources_intro: 'The Access Control Systems (ACS) namespace contains the following resources:' /acs/systems: title: The ACS System Object description: Learn how the acs_system object represents an access control system in which you create users and credentials to grant them access at entrances. @@ -144,9 +145,10 @@ /noise_sensors: title: The Noise Sensor Object description: Learn how the device object represents a noise sensor that measures sound levels, lets you configure thresholds, and emits disturbance events. - resource_type: device - include_groups: - - noise_sensors + # TODO: consider a full device-view page (resource_type: device, + # include_groups: [noise_sensors]) like /locks and /thermostats; the migrated + # page only ever had an intro and an endpoint listing, so that shape is kept. + endpoints: true heading: The device Object for Noise Sensors intro: | Represents a [noise sensor](/capability-guides/noise-sensors). diff --git a/mintlify-codegen/layouts/endpoints.hbs b/mintlify-codegen/layouts/endpoints.hbs index ce8c2ef7e..a4671627e 100644 --- a/mintlify-codegen/layouts/endpoints.hbs +++ b/mintlify-codegen/layouts/endpoints.hbs @@ -1,9 +1,17 @@ {{> frontmatter}} +{{#if heading}} +## {{heading}} + +{{intro}} + +--- + +{{/if}} ## Endpoints {{#each endpoints}} -[**`{{path}}`**](/api{{path}}) +[**`{{path}}`**](./{{name}}) {{description}} {{#unless @last}} diff --git a/mintlify-codegen/layouts/namespace.hbs b/mintlify-codegen/layouts/namespace.hbs index 96129fb4d..471ebf56a 100644 --- a/mintlify-codegen/layouts/namespace.hbs +++ b/mintlify-codegen/layouts/namespace.hbs @@ -4,8 +4,14 @@ ## Resources +{{#if resourcesIntro}} +{{resourcesIntro}} + +{{/if}} +{{!-- TODO: these self-anchor links reproduce the migrated page; consider +linking to each resource's object page (/api{{routePath}}/object) instead. --}} {{#each resources}} -### [`{{resourceType}}`](/api{{routePath}}/object) +### [`{{resourceType}}`](#{{resourceType}}) {{description}} diff --git a/mintlify-codegen/lib/layout/endpoints-page.ts b/mintlify-codegen/lib/layout/endpoints-page.ts index 20ab5af18..352a89f08 100644 --- a/mintlify-codegen/lib/layout/endpoints-page.ts +++ b/mintlify-codegen/lib/layout/endpoints-page.ts @@ -7,14 +7,18 @@ export interface EndpointsPageLayoutContext { contents: Buffer title: string description: string - endpoints: Array<{ path: string; description: string }> + heading?: string | undefined + intro?: string | undefined + endpoints: Array<{ path: string; name: string; description: string }> } /** * Build the layout context for an endpoint-listing page (`endpoints: true` in * object-pages.yaml) from the blueprint route at the page's route path — the - * Mintlify analog of the GitBook route README's Endpoints section. Returns - * null when the blueprint has no such route or it has no documented endpoints. + * Mintlify analog of the GitBook route README's Endpoints section. An optional + * `heading` + `intro` section precedes the listing (e.g. /noise_sensors). + * Returns null when the blueprint has no such route or it has no documented + * endpoints. */ export function setEndpointsPageLayoutContext( blueprint: Blueprint, @@ -28,6 +32,7 @@ export function setEndpointsPageLayoutContext( .filter((endpoint) => !endpoint.isUndocumented) .map((endpoint) => ({ path: endpoint.path, + name: endpoint.path.split('/').filter(Boolean).pop() ?? endpoint.path, description: endpoint.description.trim(), })) if (endpoints.length === 0) return null @@ -37,6 +42,8 @@ export function setEndpointsPageLayoutContext( contents: Buffer.from(''), title: meta.title, description: meta.description, + heading: meta.heading, + intro: meta.intro?.trim(), endpoints, } } diff --git a/mintlify-codegen/lib/layout/namespace-page.ts b/mintlify-codegen/lib/layout/namespace-page.ts index 6d513639d..cdfc79c6e 100644 --- a/mintlify-codegen/lib/layout/namespace-page.ts +++ b/mintlify-codegen/lib/layout/namespace-page.ts @@ -8,6 +8,7 @@ export interface NamespacePageLayoutContext { title: string description: string intro: string + resourcesIntro?: string | undefined resources: Array<{ resourceType: string routePath: string @@ -44,6 +45,7 @@ export function setNamespacePageLayoutContext( title: meta.title, description: meta.description, intro: meta.intro?.trim() ?? '', + resourcesIntro: meta.resources_intro?.trim(), resources, } } diff --git a/mintlify-codegen/lib/object-page-metadata.ts b/mintlify-codegen/lib/object-page-metadata.ts index 2097bb44c..b70999bd1 100644 --- a/mintlify-codegen/lib/object-page-metadata.ts +++ b/mintlify-codegen/lib/object-page-metadata.ts @@ -33,6 +33,9 @@ export const ObjectPageMetadataSchema = z.record( exclude_groups: z.array(z.string()).optional(), heading: z.string().trim().min(1).optional(), intro: z.string().trim().min(1).optional(), + // Authored line between a namespace page's `## Resources` heading and its + // resource list. + resources_intro: z.string().trim().min(1).optional(), }), ) diff --git a/mintlify-docs/api/access_codes/simulate/object.mdx b/mintlify-docs/api/access_codes/simulate/object.mdx index aef95bd3c..8932962ae 100644 --- a/mintlify-docs/api/access_codes/simulate/object.mdx +++ b/mintlify-docs/api/access_codes/simulate/object.mdx @@ -5,6 +5,6 @@ description: 'Use the access code simulation endpoints to create unmanaged acces ## Endpoints -[**`/access_codes/simulate/create_unmanaged_access_code`**](/api/access_codes/simulate/create_unmanaged_access_code) +[**`/access_codes/simulate/create_unmanaged_access_code`**](./create_unmanaged_access_code) Simulates the creation of an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/access_grants/unmanaged/object.mdx b/mintlify-docs/api/access_grants/unmanaged/object.mdx index 00703bc94..b36d1d510 100644 --- a/mintlify-docs/api/access_grants/unmanaged/object.mdx +++ b/mintlify-docs/api/access_grants/unmanaged/object.mdx @@ -5,15 +5,15 @@ description: 'Use the unmanaged Access Grant endpoints to get, list, and update ## Endpoints -[**`/access_grants/unmanaged/get`**](/api/access_grants/unmanaged/get) +[**`/access_grants/unmanaged/get`**](./get) Get an unmanaged Access Grant (where is_managed = false). -[**`/access_grants/unmanaged/list`**](/api/access_grants/unmanaged/list) +[**`/access_grants/unmanaged/list`**](./list) Gets unmanaged Access Grants (where is_managed = false). -[**`/access_grants/unmanaged/update`**](/api/access_grants/unmanaged/update) +[**`/access_grants/unmanaged/update`**](./update) Updates an unmanaged Access Grant to make it managed. diff --git a/mintlify-docs/api/access_methods/unmanaged/object.mdx b/mintlify-docs/api/access_methods/unmanaged/object.mdx index 709071a59..03a57c2d7 100644 --- a/mintlify-docs/api/access_methods/unmanaged/object.mdx +++ b/mintlify-docs/api/access_methods/unmanaged/object.mdx @@ -5,10 +5,10 @@ description: 'Use the unmanaged access method endpoints to get and list access m ## Endpoints -[**`/access_methods/unmanaged/get`**](/api/access_methods/unmanaged/get) +[**`/access_methods/unmanaged/get`**](./get) Gets an unmanaged access method (where is_managed = false). -[**`/access_methods/unmanaged/list`**](/api/access_methods/unmanaged/list) +[**`/access_methods/unmanaged/list`**](./list) Lists all unmanaged access methods (where is_managed = false), usually filtered by Access Grant. diff --git a/mintlify-docs/api/acs/encoders/simulate/object.mdx b/mintlify-docs/api/acs/encoders/simulate/object.mdx index fabece93e..cce6545b3 100644 --- a/mintlify-docs/api/acs/encoders/simulate/object.mdx +++ b/mintlify-docs/api/acs/encoders/simulate/object.mdx @@ -5,18 +5,18 @@ description: 'Use the encoder simulation endpoints to make the next credential e ## Endpoints -[**`/acs/encoders/simulate/next_credential_encode_will_fail`**](/api/acs/encoders/simulate/next_credential_encode_will_fail) +[**`/acs/encoders/simulate/next_credential_encode_will_fail`**](./next_credential_encode_will_fail) Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). -[**`/acs/encoders/simulate/next_credential_encode_will_succeed`**](/api/acs/encoders/simulate/next_credential_encode_will_succeed) +[**`/acs/encoders/simulate/next_credential_encode_will_succeed`**](./next_credential_encode_will_succeed) Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). -[**`/acs/encoders/simulate/next_credential_scan_will_fail`**](/api/acs/encoders/simulate/next_credential_scan_will_fail) +[**`/acs/encoders/simulate/next_credential_scan_will_fail`**](./next_credential_scan_will_fail) Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). -[**`/acs/encoders/simulate/next_credential_scan_will_succeed`**](/api/acs/encoders/simulate/next_credential_scan_will_succeed) +[**`/acs/encoders/simulate/next_credential_scan_will_succeed`**](./next_credential_scan_will_succeed) Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/acs/object.mdx b/mintlify-docs/api/acs/object.mdx index 9a5d1e020..44a38d180 100644 --- a/mintlify-docs/api/acs/object.mdx +++ b/mintlify-docs/api/acs/object.mdx @@ -20,7 +20,9 @@ To grant access using the Seam access control system API, use the following basi ## Resources -### [`acs_access_group`](/api/acs/access_groups/object) +The Access Control Systems (ACS) namespace contains the following resources: + +### [`acs_access_group`](#acs_access_group) Group that defines the entrances to which a set of users has access and, in some cases, the access schedule for these entrances and users. @@ -30,7 +32,7 @@ To learn whether your access control system supports access groups, see the corr --- -### [`acs_credential`](/api/acs/credentials/object) +### [`acs_credential`](#acs_credential) Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems). @@ -42,7 +44,7 @@ For granting a person access to a space, [Access Grants](https://docs.seam.co/us --- -### [`acs_encoder`](/api/acs/encoders/object) +### [`acs_encoder`](#acs_encoder) Represents a hardware device that encodes [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](https://docs.seam.co/low-level-apis/access-systems). @@ -61,7 +63,7 @@ To verify if your access control system requires a card encoder, see the corresp --- -### [`acs_entrance`](/api/acs/entrances/object) +### [`acs_entrance`](#acs_entrance) Represents an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/low-level-apis/access-systems). @@ -69,7 +71,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other --- -### [`acs_system`](/api/acs/systems/object) +### [`acs_system`](#acs_system) Represents an [access control system](https://docs.seam.co/low-level-apis/access-systems). @@ -79,7 +81,7 @@ For details about the resources associated with an access control system, see th --- -### [`acs_user`](/api/acs/users/object) +### [`acs_user`](#acs_user) Represents a [user](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access system](https://docs.seam.co/low-level-apis/access-systems). diff --git a/mintlify-docs/api/connected_accounts/simulate/object.mdx b/mintlify-docs/api/connected_accounts/simulate/object.mdx index c171eeef2..fbb80381c 100644 --- a/mintlify-docs/api/connected_accounts/simulate/object.mdx +++ b/mintlify-docs/api/connected_accounts/simulate/object.mdx @@ -5,6 +5,6 @@ description: 'Use the connected account simulation endpoint to disconnect an acc ## Endpoints -[**`/connected_accounts/simulate/disconnect`**](/api/connected_accounts/simulate/disconnect) +[**`/connected_accounts/simulate/disconnect`**](./disconnect) Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/devices/simulate/object.mdx b/mintlify-docs/api/devices/simulate/object.mdx index 2e4661298..8b1825daa 100644 --- a/mintlify-docs/api/devices/simulate/object.mdx +++ b/mintlify-docs/api/devices/simulate/object.mdx @@ -5,22 +5,22 @@ description: 'Use the device simulation endpoints to connect, disconnect, and re ## Endpoints -[**`/devices/simulate/connect`**](/api/devices/simulate/connect) +[**`/devices/simulate/connect`**](./connect) Simulates connecting a device to Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). -[**`/devices/simulate/connect_to_hub`**](/api/devices/simulate/connect_to_hub) +[**`/devices/simulate/connect_to_hub`**](./connect_to_hub) Simulates bringing the Wi‑Fi hub (bridge) back online for a device. Only applicable for sandbox workspaces and currently implemented for August and TTLock locks. This will clear the `hub_disconnected` error on the device. -[**`/devices/simulate/disconnect`**](/api/devices/simulate/disconnect) +[**`/devices/simulate/disconnect`**](./disconnect) Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). -[**`/devices/simulate/disconnect_from_hub`**](/api/devices/simulate/disconnect_from_hub) +[**`/devices/simulate/disconnect_from_hub`**](./disconnect_from_hub) Simulates taking the Wi‑Fi hub (bridge) offline for a device. Only applicable for sandbox workspaces and currently @@ -28,12 +28,12 @@ implemented for August, TTLock, and IglooHome devices. This will set the `hub_disconnected` error on the device, or mark the IglooHome bridge offline in sandbox. -[**`/devices/simulate/paid_subscription`**](/api/devices/simulate/paid_subscription) +[**`/devices/simulate/paid_subscription`**](./paid_subscription) Toggle the simulated Nuki Smart Hosting subscription for a device (sandbox only). Send `is_expired: true` to simulate an expired subscription, or `false` to simulate an active subscription. The actual device error is created/cleared by the poller after this state change. -[**`/devices/simulate/remove`**](/api/devices/simulate/remove) +[**`/devices/simulate/remove`**](./remove) Simulates removing a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). diff --git a/mintlify-docs/api/locks/simulate/object.mdx b/mintlify-docs/api/locks/simulate/object.mdx index e82c6a08e..11142e090 100644 --- a/mintlify-docs/api/locks/simulate/object.mdx +++ b/mintlify-docs/api/locks/simulate/object.mdx @@ -5,10 +5,10 @@ description: 'Use the lock simulation endpoints to mimic keypad code entry and m ## Endpoints -[**`/locks/simulate/keypad_code_entry`**](/api/locks/simulate/keypad_code_entry) +[**`/locks/simulate/keypad_code_entry`**](./keypad_code_entry) Simulates the entry of a code on a keypad. You can only perform this action for [August](https://docs.seam.co/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). -[**`/locks/simulate/manual_lock_via_keypad`**](/api/locks/simulate/manual_lock_via_keypad) +[**`/locks/simulate/manual_lock_via_keypad`**](./manual_lock_via_keypad) Simulates a manual lock action using a keypad. You can only perform this action for [August](https://docs.seam.co/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/noise_sensors/object.mdx b/mintlify-docs/api/noise_sensors/object.mdx index f5ade972e..ebd5eb2c1 100644 --- a/mintlify-docs/api/noise_sensors/object.mdx +++ b/mintlify-docs/api/noise_sensors/object.mdx @@ -11,1467 +11,10 @@ Noise sensors are devices that measure that sound level in a given area. You can The Seam API represents a noise sensor as a `device` resource that includes both basic device properties and noise sensor-specific properties. - - -```json Noise Sensor Device -{ - "capabilities_supported": [ - "noise_detection" - ], - "connected_account_id": "9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d", - "created_at": "2025-05-16T16:54:17.946049Z", - "custom_metadata": { - "id": "internalId1" - }, - "device_id": "f1e2d3c4-b5a6-4d7c-8e9f-0a1b2c3d4e5f", - "device_type": "minut_sensor", - "display_name": "Living Room", - "errors": [], - "is_managed": true, - "space_ids": [], - "location": { - "location_name": "Jane's Test Home", - "timezone": "America/Los_Angeles" - }, - "nickname": "Living Room", - "properties": { - "appearance": { - "name": "Living Room" - }, - "battery": { - "level": 1, - "status": "full" - }, - "battery_level": 1, - "currently_triggering_noise_threshold_ids": [], - "image_alt_text": "Minut Sensor", - "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/minut_gen-3_front.png&q=75&w=128", - "manufacturer": "minut", - "minut_metadata": { - "device_id": "770cd3153deca3dee0fe0614", - "device_location": { - "latitude": 0, - "longitude": 0 - }, - "device_name": "Living Room", - "home_address": { - "city": "San Francisco", - "country": "US", - "notes": "string", - "post_code": "44210", - "region": "San Francisco County", - "street_name1": "2258 24th Street", - "street_name2": "" - }, - "home_id": "2978b6d5dba395ec08300e46", - "home_location": { - "latitude": 0, - "longitude": 0 - }, - "home_name": "Jane's Test Home", - "latest_sensor_values": { - "accelerometer_z": { - "time": "2025-06-16T16:54:17.946049Z", - "value": -1.00390625 - }, - "humidity": { - "time": "2025-06-16T16:54:17.946049Z", - "value": 31.110000610351562 - }, - "pressure": { - "time": "2025-06-16T16:54:17.946049Z", - "value": 101923 - }, - "sound": { - "time": "2025-06-16T16:54:17.946049Z", - "value": 47.7117919921875 - }, - "temperature": { - "time": "2025-06-16T16:54:17.946049Z", - "value": 21.270000457763672 - } - } - }, - "model": { - "display_name": "Noise Sensor", - "manufacturer_display_name": "Minut" - }, - "name": "Living Room", - "noise_level_decibels": 47.7117919921875, - "online": true - }, - "warnings": [], - "workspace_id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d" -} -``` - - - --- -## Properties - - - Indicates whether the lock supports configuring automatic locking. - - - - Indicates whether the thermostat supports cooling. - - - - Indicates whether the thermostat supports heating. - - - - Indicates whether the thermostat supports simultaneous heating and cooling. - - - - Indicates whether the device supports programming offline access codes. - - - - Indicates whether the device supports programming online access codes. - - - - Indicates whether the thermostat supports different climate programs for each day of the week. - - - - Indicates whether the thermostat supports a single climate program applied to every day. - - - - Indicates whether the thermostat supports weekday/weekend climate programs. - - - - Indicates whether the device supports remote locking. - - - - Indicates whether the device supports remote unlocking. - - - - Indicates whether the thermostat supports running climate programs. - - - - Indicates whether the device supports simulating connection in a sandbox. - - - - Indicates whether the device supports simulating disconnection in a sandbox. - - - - Indicates whether the hub supports simulating connection in a sandbox. - - - - Indicates whether the hub supports simulating disconnection in a sandbox. - - - - Indicates whether the device supports simulating a paid subscription in a sandbox. - - - - Indicates whether the device supports simulating removal in a sandbox. - - - - Indicates whether the thermostat can be turned off. - - - - Indicates whether the lock supports unlocking with an access code. - - - - Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). - - - - Unique identifier for the account associated with the device. - - - - Date and time at which the device object was created. - - - - Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. - - - - ID of the device. - - - - Type of the device. - - - - Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. - - - - Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. - - - - Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). - - - - Optional nickname to describe the device, settable through Seam. - - - - Properties of the device. - - - Accessory keypad properties and state. - - - Keypad battery properties. - - - The level. - - - - - Indicates if an accessory keypad is connected to the device. - - - - - Appearance-related properties, as reported by the device. - - - Name of the device as seen from the provider API and application, not settable through Seam. - - - - - Represents the current status of the battery charge level. - - - Battery charge level as a value between 0 and 1, inclusive. - - - Represents the current status of the battery charge level. Values are `critical`, which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; `low`, which signifies that the battery is under the preferred threshold and should be charged soon; `good`, which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and `full`, which represents a battery that is fully charged, providing the maximum duration of usage. - - - - - Indicates the battery level of the device as a decimal value between 0 and 1, inclusive. - - - Array of noise threshold IDs that are currently triggering. - - - Indicates whether the device has direct power. - - - Alt text for the device image. - - - Image URL for the device. - - - Manufacturer of the device. When a device, such as a smart lock, is connected through a smart hub, the manufacturer of the device might be different from that of the smart hub. - - - Device model-related properties. - - - The accessory keypad supported. - - - Indicates whether the device can connect a accessory keypad. - - - Display name of the device model. - - - Indicates whether the device has a built in accessory keypad. - - - Display name that corresponds to the manufacturer-specific terminology for the device. - - - The offline access codes supported. - - - The online access codes supported. - - - - - Name of the device. - - - Indicates current noise level in decibels, if the device supports noise detection. - - - Indicates whether it is currently possible to use offline access codes for the device. - - - Indicates whether the device is online. - - - Indicates whether it is currently possible to use online access codes for the device. - - - Serial number of the device. - - - The supports accessory keypad. - - - The supports offline access codes. - - - ASSA ABLOY Credential Service metadata for the phone. - - - Endpoints associated with the phone. - - - Indicates whether the credential service has active endpoints associated with the phone. - - - - - Salto Space credential service metadata for the phone. - - - Indicates whether the credential service has an active associated phone. - - - - - Metadata for an Akiles device. - - - Group ID to which to add users for an Akiles device. - - - Gadget ID for an Akiles device. - - - Gadget name for an Akiles device. - - - Product name for an Akiles device. - - - - - Metadata for an ASSA ABLOY Vostio system. - - - Encoder name for an ASSA ABLOY Vostio system. - - - - - Metadata for an August device. - - - Indicates whether an August device has a keypad. - - - House ID for an August device. - - - House name for an August device. - - - Keypad battery level for an August device. - - - Lock ID for an August device. - - - Lock name for an August device. - - - Model for an August device. - - - - - Metadata for an Avigilon Alta system. - - - Entry name for an Avigilon Alta system. - - - Total count of entry relays for an Avigilon Alta system. - - - Organization name for an Avigilon Alta system. - - - Site ID for an Avigilon Alta system. - - - Site name for an Avigilon Alta system. - - - Zone ID for an Avigilon Alta system. - - - Zone name for an Avigilon Alta system. - - - - - Metadata for a Brivo device. - - - Indicates whether the Brivo access point has activation (remote unlock) enabled. - - - Device name for a Brivo device. - - - - - Metadata for a ControlByWeb device. - - - Device ID for a ControlByWeb device. - - - Device name for a ControlByWeb device. - - - Relay name for a ControlByWeb device. - - - - - Metadata for a dormakaba Oracode device. - - - Device ID for a dormakaba Oracode device. - - - Door ID for a dormakaba Oracode device. - - - Indicates whether a door is wireless for a dormakaba Oracode device. - - - Door name for a dormakaba Oracode device. - - - IANA time zone for a dormakaba Oracode device. - - - Predefined time slots for a dormakaba Oracode device. - - - Site ID for a dormakaba Oracode device. - - - Site name for a dormakaba Oracode device. - - - - - Metadata for an ecobee device. - - - Device name for an ecobee device. - - - Device ID for an ecobee device. - - - - - Metadata for a 4SUITES device. - - - Device ID for a 4SUITES device. - - - Device name for a 4SUITES device. - - - Reclose delay, in seconds, for a 4SUITES device. - - - - - Metadata for a Genie device. - - - Lock name for a Genie device. - - - Door name for a Genie device. - - - - - Metadata for a Honeywell Resideo device. - - - Device name for a Honeywell Resideo device. - - - Device ID for a Honeywell Resideo device. - - - - - Metadata for an igloo device. - - - Bridge ID for an igloo device. - - - Device ID for an igloo device. - - - Model for an igloo device. - - - - - Metadata for an igloohome device. - - - Bridge ID for an igloohome device. - - - Bridge name for an igloohome device. - - - Device ID for an igloohome device. - - - Device name for an igloohome device. - - - Indicates whether a keypad is linked to a bridge for an igloohome device. - - - Keypad ID for an igloohome device. - - - - - Metadata for a KeyNest device. - - - Address for a KeyNest device. - - - Current or last store ID for a KeyNest device. - - - Current status for a KeyNest device. - - - Current user company for a KeyNest device. - - - Current user email for a KeyNest device. - - - Current user name for a KeyNest device. - - - Current user phone number for a KeyNest device. - - - Default office ID for a KeyNest device. - - - Device name for a KeyNest device. - - - Fob ID for a KeyNest device. - - - Handover method for a KeyNest device. - - - Whether the KeyNest device has a photo. - - - Whether the key is in a locker that does not support the access codes API. - - - Key ID for a KeyNest device. - - - Key notes for a KeyNest device. - - - KeyNest app user for a KeyNest device. - - - Last movement timestamp for a KeyNest device. - - - Property ID for a KeyNest device. - - - Property postcode for a KeyNest device. - - - Status type for a KeyNest device. - - - Subscription plan for a KeyNest device. - - - - - Metadata for a Korelock device. - - - Device ID for a Korelock device. - - - Device name for a Korelock device. - - - Firmware version for a Korelock device. - - - Location ID for a Korelock device. Required for timebound access codes. - - - Model code for a Korelock device. - - - Serial number for a Korelock device. - - - WiFi signal strength (0-1) for a Korelock device. - - - - - Metadata for a Kwikset device. - - - Device ID for a Kwikset device. - - - Device name for a Kwikset device. - - - Model number for a Kwikset device. - - - - - Metadata for a Lockly device. - - - Device ID for a Lockly device. - - - Device name for a Lockly device. - - - Model for a Lockly device. - - - - - Metadata for a Minut device. - - - Device ID for a Minut device. - - - Device name for a Minut device. - - - Latest sensor values for a Minut device. - - - Latest accelerometer Z-axis reading for a Minut device. - - - Time of latest accelerometer Z-axis reading for a Minut device. - - - Value of latest accelerometer Z-axis reading for a Minut device. - - - - - Latest humidity reading for a Minut device. - - - Time of latest humidity reading for a Minut device. - - - Value of latest humidity reading for a Minut device. - - - - - Latest pressure reading for a Minut device. - - - Time of latest pressure reading for a Minut device. - - - Value of latest pressure reading for a Minut device. - - - - - Latest sound reading for a Minut device. - - - Time of latest sound reading for a Minut device. - - - Value of latest sound reading for a Minut device. - - - - - Latest temperature reading for a Minut device. - - - Time of latest temperature reading for a Minut device. - - - Value of latest temperature reading for a Minut device. - - - - - - - - - Metadata for a Google Nest device. - - - Custom device name for a Google Nest device. The device owner sets this value. - - - Device name for a Google Nest device. Google sets this value. - - - Display name for a Google Nest device. - - - Device ID for a Google Nest device. - - - - - Metadata for a NoiseAware device. - - - Device ID for a NoiseAware device. - - - Device model for a NoiseAware device. - - - Device name for a NoiseAware device. - - - Noise level, in decibels, for a NoiseAware device. - - - Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. - - - - - Metadata for a Nuki device. - - - Device ID for a Nuki device. - - - Device name for a Nuki device. - - - Indicates whether keypad 2 is paired for a Nuki device. - - - Indicates whether the keypad battery is in a critical state for a Nuki device. - - - Indicates whether the keypad is paired for a Nuki device. - - - - - Metadata for an Omnitec device. - - - Whether the Omnitec lock has a connected gateway for remote operations. - - - Lock ID for an Omnitec device. - - - Bluetooth MAC address for an Omnitec device. - - - Lock name for an Omnitec device. - - - Static UTC offset of the Omnitec lock in milliseconds. Does not account for DST. - - - - - Metadata for a Ring device. - - - Device ID for a Ring device. - - - Device name for a Ring device. - - - - - Metadata for a Salto KS device. - - - Battery level for a Salto KS device. - - - Customer reference for a Salto KS device. - - - Indicates whether the site has a Salto KS subscription that supports custom PINs. - - - Lock ID for a Salto KS device. - - - Lock type for a Salto KS device. - - - Locked state for a Salto KS device. - - - Model for a Salto KS device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - - - Metada for a Salto device. - - - Battery level for a Salto device. - - - Customer reference for a Salto device. - - - Lock ID for a Salto device. - - - Lock type for a Salto device. - - - Locked state for a Salto device. - - - Model for a Salto device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - - - Metadata for a Schlage device. - - - Device ID for a Schlage device. - - - Device name for a Schlage device. - - - Model for a Schlage device. - - - - - Metadata for Seam Bridge. - - - Device number for Seam Bridge. - - - Name for Seam Bridge. - - - Unlock method for Seam Bridge. - - - - - Metadata for a Sensi device. - - - Device ID for a Sensi device. - - - Device name for a Sensi device. - - - Set to true when the device does not support the /dual-setpoints API endpoint. - - - Product type for a Sensi device. - - - - - Metadata for a SmartThings device. - - - Device ID for a SmartThings device. - - - Device name for a SmartThings device. - - - Location ID for a SmartThings device. - - - Model for a SmartThings device. - - - - - Metadata for a tado° device. - - - Device type for a tado° device. - - - Serial number for a tado° device. - - - - - Metadata for a Tedee device. - - - Bridge ID for a Tedee device. - - - Bridge name for a Tedee device. - - - Device ID for a Tedee device. - - - Device model for a Tedee device. - - - Device name for a Tedee device. - - - Keypad ID for a Tedee device. - - - Serial number for a Tedee device. - - - - - Metadata for a TTLock device. - - - Feature value for a TTLock device. - - - Features for a TTLock device. - - - Indicates whether a TTLock device supports auto-lock time configuration. - - - Indicates whether a TTLock device supports an incomplete keyboard passcode. - - - Indicates whether a TTLock device supports the lock command. - - - Indicates whether a TTLock device supports a passcode. - - - Indicates whether a TTLock device supports passcode management. - - - Indicates whether a TTLock device supports unlock via gateway. - - - Indicates whether a TTLock device supports Wi-Fi. - - - - - Indicates whether a TTLock device has a gateway. - - - Lock alias for a TTLock device. - - - Lock ID for a TTLock device. - - - Lock-side timezone offset in milliseconds east of UTC, as configured in the TTLock app. Source of truth for the lock's wall-clock interpretation of access code start/end times — a misconfigured value here is the typical cause of customer "codes offset by N hours" reports. Diagnostic only; Seam does not convert times based on this value. - - - Wireless keypads for a TTLock device. - - - - - Metadata for a 2N device. - - - Device ID for a 2N device. - - - Device name for a 2N device. - - - - - Metadata for an Ultraloq device. - - - Device ID for an Ultraloq device. - - - Device name for an Ultraloq device. - - - Device type for an Ultraloq device. - - - IANA timezone for the Ultraloq device. - - - - - Metadata for an ASSA ABLOY Visionline system. - - - Encoder ID for an ASSA ABLOY Visionline system. - - - - - Metadata for a Wyze device. - - - Device ID for a Wyze device. - - - Device information model for a Wyze device. - - - Device name for a Wyze device. - - - Keypad UUID for a Wyze device. - - - Locker status (hardlock) for a Wyze device. - - - Product model for a Wyze device. - - - Product name for a Wyze device. - - - Product type for a Wyze device. - - - - - The delay in seconds before the lock automatically locks after being unlocked. - - - Indicates whether automatic locking is enabled. - - - Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. - - - Indicates whether the door is open. - - - Indicates whether the device supports native entry events. - - - Keypad battery status. - - - Keypad battery charge level. - - - - - Indicates whether the lock is locked. - - - Maximum number of active access codes that the device supports. - - - Supported code lengths for access codes. - - - Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). - - - Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - - - ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. - - - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - - - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - ID of the workspace that contains the thermostat schedule. - - - - - ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". - - - Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. - - - Fan mode settings that the thermostat supports. - - - HVAC mode settings that the thermostat supports. - - - Current climate setting. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - Metadata specific to the Ecobee climate, if applicable. - - - Reference to the Ecobee climate, if applicable. - - - Indicates if the climate preset is optimized by Ecobee. - - - Indicates whether the climate preset is owned by the user or the system. - - - - - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - - - The default climate setting. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - Metadata specific to the Ecobee climate, if applicable. - - - Reference to the Ecobee climate, if applicable. - - - Indicates if the climate preset is optimized by Ecobee. - - - Indicates whether the climate preset is owned by the user or the system. - - - - - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - - - Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. - - - The fan mode setting. - - - Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. - - - Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. - - - Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. - - - Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. - - - Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - - - Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - - - Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - - - Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. - - - Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. - - - Maximum number of climate presets that the thermostat can support for weekly programming. - - - Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - - - Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - - - Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. - - - Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. - - - Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - - - Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. - - - Reported relative humidity, as a value between 0 and 1, inclusive. - - - Reported temperature in °C. - - - Reported temperature in °F. - - - Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - - - Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. - - - Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - - - Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - - - Date and time at which the thermostat weekly program was created. - - - ID of the thermostat daily program to run on Fridays. - - - ID of the thermostat daily program to run on Mondays. - - - ID of the thermostat daily program to run on Saturdays. - - - ID of the thermostat daily program to run on Sundays. - - - ID of the thermostat daily program to run on Thursdays. - - - ID of the thermostat daily program to run on Tuesdays. - - - ID of the thermostat daily program to run on Wednesdays. - - - - - - - - IDs of the spaces the device is in. - - - - Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. - - - - Unique identifier for the Seam workspace associated with the device. - - -## Noise Sensors +## Endpoints - - Array of noise threshold IDs that are currently triggering. - +[**`/noise_sensors/list`**](./list) - - Indicates current noise level in decibels, if the device supports noise detection. - +Returns a list of all [noise sensors](https://docs.seam.co/capability-guides/noise-sensors). diff --git a/mintlify-docs/api/noise_sensors/simulate/object.mdx b/mintlify-docs/api/noise_sensors/simulate/object.mdx index 782693759..35c3003b9 100644 --- a/mintlify-docs/api/noise_sensors/simulate/object.mdx +++ b/mintlify-docs/api/noise_sensors/simulate/object.mdx @@ -5,6 +5,6 @@ description: 'Use the noise sensor simulation endpoint to trigger a noise thresh ## Endpoints -[**`/noise_sensors/simulate/trigger_noise_threshold`**](/api/noise_sensors/simulate/trigger_noise_threshold) +[**`/noise_sensors/simulate/trigger_noise_threshold`**](./trigger_noise_threshold) Simulates the triggering of a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/phones/simulate/object.mdx b/mintlify-docs/api/phones/simulate/object.mdx index 0569823ea..c744f5d83 100644 --- a/mintlify-docs/api/phones/simulate/object.mdx +++ b/mintlify-docs/api/phones/simulate/object.mdx @@ -5,6 +5,6 @@ description: 'Use the phone simulation endpoint to create a simulated phone in a ## Endpoints -[**`/phones/simulate/create_sandbox_phone`**](/api/phones/simulate/create_sandbox_phone) +[**`/phones/simulate/create_sandbox_phone`**](./create_sandbox_phone) Creates a new simulated phone in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](https://docs.seam.co/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity). diff --git a/mintlify-docs/api/thermostats/simulate/object.mdx b/mintlify-docs/api/thermostats/simulate/object.mdx index 4e23522af..0a0fbf06e 100644 --- a/mintlify-docs/api/thermostats/simulate/object.mdx +++ b/mintlify-docs/api/thermostats/simulate/object.mdx @@ -5,10 +5,10 @@ description: 'Use the thermostat simulation endpoints to mimic HVAC mode changes ## Endpoints -[**`/thermostats/simulate/hvac_mode_adjusted`**](/api/thermostats/simulate/hvac_mode_adjusted) +[**`/thermostats/simulate/hvac_mode_adjusted`**](./hvac_mode_adjusted) Simulates having adjusted the [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](https://docs.seam.co/capability-guides/thermostats). Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). -[**`/thermostats/simulate/temperature_reached`**](/api/thermostats/simulate/temperature_reached) +[**`/thermostats/simulate/temperature_reached`**](./temperature_reached) Simulates a [thermostat](https://docs.seam.co/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). diff --git a/mintlify-docs/api/user_identities/unmanaged/object.mdx b/mintlify-docs/api/user_identities/unmanaged/object.mdx index 3459b8b73..9c4e597c5 100644 --- a/mintlify-docs/api/user_identities/unmanaged/object.mdx +++ b/mintlify-docs/api/user_identities/unmanaged/object.mdx @@ -5,15 +5,15 @@ description: 'Use the unmanaged user identity endpoints to get, list, and update ## Endpoints -[**`/user_identities/unmanaged/get`**](/api/user_identities/unmanaged/get) +[**`/user_identities/unmanaged/get`**](./get) Returns a specified unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). -[**`/user_identities/unmanaged/list`**](/api/user_identities/unmanaged/list) +[**`/user_identities/unmanaged/list`**](./list) Returns a list of all unmanaged [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). -[**`/user_identities/unmanaged/update`**](/api/user_identities/unmanaged/update) +[**`/user_identities/unmanaged/update`**](./update) Updates an unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed. From 4e5b26ea67456067539ffe80b1a45a80cb570e5b Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 6 Jul 2026 23:22:42 +0000 Subject: [PATCH 4/6] fix: regenerate locks, thermostats, and action_attempts in their legacy format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Regenerate the three GitBook-migrated object pages from the blueprint in their original presentation instead of the modern ResponseField format, so the PR diff shows only content-level changes (blueprint truth vs drifted authored data): - New legacy-object.hbs layout + legacy-* partials reproduce the migrated GitBook dialect: `**`name`** _Boolean_` property blocks with `---` separators, enum values with items, variant accordions for errors/warnings properties, Child Properties / Child Object Properties blocks, on-page Errors/Warnings sections, and a relative-linked Endpoints section. TODO comments flag each legacy construct for a future modernization decision. - lib/layout/legacy-object-page.ts ports the GitBook composition algorithms verbatim from codegen/lib/layout/api-route.ts (bugs included — e.g. the non-total groupVariants comparator) so section composition and ordering match the GitBook source of truth: flat alphabetical group-filtered Properties and device.properties, unsorted-variant Errors/Warnings, first-paragraph endpoint listings, the sample block (seam_cli resource_data) alongside ResponseExample, and the 80-column deprecation wrap rule. - object-pages.yaml: legacy: true marks these three routes; the thermostats intro carries its trailing `---` divider. Known intentional cleanups (flagged in the templates): converter glitches in the old pages are not reproduced — mis-nested fields after list-of-objects children (assa_abloy endpoints, dormakaba predefined_time_slots) now render flat, and a stray `-` artifact is gone. Remaining page diffs are blueprint-content drift: capability-flag descriptions the old pages lacked, new/removed enum values, new error/warning variants, and new endpoints. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01P1YTCN8DidaFWzvLYyge3N --- mintlify-codegen/data/object-pages.yaml | 5 + mintlify-codegen/layouts/legacy-object.hbs | 75 + .../layouts/partials/legacy-property.hbs | 91 + .../layouts/partials/legacy-sample-tabs.hbs | 13 + .../lib/layout/legacy-object-page.ts | 797 +++ mintlify-codegen/lib/object-page-metadata.ts | 4 + mintlify-codegen/lib/reference.ts | 31 + mintlify-docs/api/action_attempts/object.mdx | 107 +- mintlify-docs/api/locks/object.mdx | 4307 +++++++++----- mintlify-docs/api/thermostats/object.mdx | 5105 +++++++++++------ 10 files changed, 7482 insertions(+), 3053 deletions(-) create mode 100644 mintlify-codegen/layouts/legacy-object.hbs create mode 100644 mintlify-codegen/layouts/partials/legacy-property.hbs create mode 100644 mintlify-codegen/layouts/partials/legacy-sample-tabs.hbs create mode 100644 mintlify-codegen/lib/layout/legacy-object-page.ts diff --git a/mintlify-codegen/data/object-pages.yaml b/mintlify-codegen/data/object-pages.yaml index 12faa699d..ee9f2139d 100644 --- a/mintlify-codegen/data/object-pages.yaml +++ b/mintlify-codegen/data/object-pages.yaml @@ -87,6 +87,7 @@ title: The Action Attempt Object description: Learn how the action_attempt object tracks an attempt to perform an action against a device, letting you monitor its status and final result. resource_type: action_attempt + legacy: true /client_sessions: title: The Client Session Object description: Learn how the client_session object restricts your users to their own devices using a custom user_identifier_key that scopes Seam API results. @@ -123,6 +124,7 @@ title: The Lock Object description: Learn how the device object represents a smart lock connected to Seam, including its lock-specific properties, capabilities, errors, and events. resource_type: device + legacy: true include_groups: - locks - access_codes @@ -177,6 +179,7 @@ title: The Thermostat Object description: Learn how the device object represents a thermostat connected to Seam, including its climate properties, capabilities, errors, warnings, and events. resource_type: device + legacy: true include_groups: - thermostats heading: The device Object for Thermostats @@ -192,6 +195,8 @@ - Create daily and weekly [thermostat programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs). The Seam API represents a thermostat as a `device` resource that includes both basic device properties and thermostat-specific properties. + + --- /thermostats/schedules: title: Thermostat Schedules description: Learn how the thermostat_schedule object activates a climate preset on a thermostat at a starting time and deactivates it at a specified ending time. diff --git a/mintlify-codegen/layouts/legacy-object.hbs b/mintlify-codegen/layouts/legacy-object.hbs new file mode 100644 index 000000000..e93ccbbb7 --- /dev/null +++ b/mintlify-codegen/layouts/legacy-object.hbs @@ -0,0 +1,75 @@ +{{!-- Legacy (GitBook-migrated) object page presentation, regenerated from the +blueprint. TODO: modernize — ResponseField property blocks like object.hbs, +drop the duplicated Tabs sample (keep ResponseExample), collapse the double +blank line after the heading, /api-absolute endpoint links, and drop the +on-page Errors/Warnings sections now that dedicated errors pages exist. Each +piece is kept byte-compatible with the committed pages pending review. --}} +{{> frontmatter}} + +## {{heading}} + + +{{intro}} + +{{#if tabs.length}} +{{> legacy-sample-tabs}} + +{{/if}} +{{#if examples.length}} + + +{{#each examples}} +```json {{title}} +{{json}} +``` +{{#unless @last}} + +{{/unless}} +{{/each}} + + + +{{/if}} +--- + +{{#each propertySections}} +## {{heading}} + +{{#each properties}} +{{> legacy-property}} +{{/each}} +{{/each}} +{{#if errorEntries.length}} +## Errors + +{{#each errorEntries}} +**`{{code}}`** + +{{description}} + +--- + +{{/each}} +{{/if}} +{{#if warningEntries.length}} +## Warnings + +{{#each warningEntries}} +**`{{code}}`** + +{{description}} + +--- + +{{/each}} +{{/if}} +## Endpoints + +{{#each endpoints}} +[**`{{path}}`**](./{{name}}) + +{{description}} +{{#unless @last}} + +{{/unless}} +{{/each}} diff --git a/mintlify-codegen/layouts/partials/legacy-property.hbs b/mintlify-codegen/layouts/partials/legacy-property.hbs new file mode 100644 index 000000000..45c32d4f9 --- /dev/null +++ b/mintlify-codegen/layouts/partials/legacy-property.hbs @@ -0,0 +1,91 @@ +{{!-- TODO: modernize to the ResponseField format used by object-property.hbs; +this reproduces the migrated GitBook property block. --}} +{{#if linkAnchor}}[**`{{name}}`**]({{linkAnchor}}){{else}}**`{{name}}`**{{/if}} _{{formatLabel}}_{{#if listItemLabel}} _of {{listItemLabel}}s_{{/if}} + +{{#if description}} +{{description}} + +{{/if}} +{{#if deprecatedBlock}} +{{deprecatedBlock}} + +{{/if}} +{{#if enumValues}} + + +{{#each enumValues}} +- {{this}} +{{/each}} + + +{{/if}} +{{#if variants}} +The specific structure of each object in this list depends on the value of its `{{discriminator}}` field. + +Variants: + +{{#each variants}} + + +{{description}} + +{{#each properties}} +**`{{name}}`** _{{formatLabel}}_{{#if listItemLabel}} _of {{listItemLabel}}s_{{/if}} + +{{#if description}} +{{description}} + +{{/if}} +{{#if enumValues}} +Enum values: + +{{#each enumValues}} +- {{this}} +{{/each}} + +{{/if}} +{{#unless isLast}} +--- + +{{/unless}} +{{/each}} + +{{/each}} + +{{/if}} +{{#if childPropertiesBlock}} +{{childPropertiesBlock}} + +{{/if}} +{{#if childObjectProperties}} + +{{#each childObjectProperties}} +{{#if @first}} +{{name}} {{formatLabel}} +{{else}} + + {{name}} + +{{formatLabel}} +{{/if}} +{{#if enumValues}} + + +{{#each enumValues}} + - {{this}} +{{/each}} + + + +{{/if}} +{{#if description}} + +{{description}} + +{{/if}} +{{/each}} + + +{{/if}} +--- + diff --git a/mintlify-codegen/layouts/partials/legacy-sample-tabs.hbs b/mintlify-codegen/layouts/partials/legacy-sample-tabs.hbs new file mode 100644 index 000000000..7c30da867 --- /dev/null +++ b/mintlify-codegen/layouts/partials/legacy-sample-tabs.hbs @@ -0,0 +1,13 @@ + +{{#each tabs}} + + +{{description}} + +```json +{{json}} +``` + + +{{/each}} + diff --git a/mintlify-codegen/lib/layout/legacy-object-page.ts b/mintlify-codegen/lib/layout/legacy-object-page.ts new file mode 100644 index 000000000..67a4f3800 --- /dev/null +++ b/mintlify-codegen/lib/layout/legacy-object-page.ts @@ -0,0 +1,797 @@ +import type { Blueprint, DiscriminatedListProperty } from '@seamapi/blueprint' +import { pascalCase } from 'change-case' + +import type { ObjectPageEntry } from '../object-page-metadata.js' +import { isDiscriminatedListProperty } from './errors-page.js' + +/** + * Layout contexts for the "legacy" object pages (/locks, /thermostats, + * /action_attempts): pages whose committed presentation is the migrated + * GitBook format (`**\`name\`** _Boolean_` property blocks, `---` separators, + * `` enums, on-page Errors/Warnings/Endpoints sections). + * + * The composition algorithms are ported VERBATIM from + * codegen/lib/layout/api-route.ts — byte-level agreement with the GitBook + * pipeline's output for these routes is the contract, quirks included (e.g. + * the non-total variant comparator in groupVariants). Do not "fix" them here; + * the pages carry TODOs to modernize the presentation instead. + */ + +type Resource = Blueprint['resources'][number] +type Property = Resource['properties'][number] +type PropertyGroup = { name: string; propertyGroupKey: string } +type Endpoint = Blueprint['routes'][number]['endpoints'][number] + +const printWidth = 80 + +interface RouteProperty { + name: string + description: string + isDeprecated: boolean + deprecationMessage: string + format: string + listItemFormat: string + value?: string + enumValues?: string[] + objectProperties?: RouteProperty[] + listProperties?: RouteProperty[] + discriminator?: string + discriminatorVariants?: Array<{ + name: string + description: string + properties: RouteProperty[] + }> +} + +interface RouteVariant { + name: string + description: string + parentResouceType: string | null +} + +/** Render-ready property block context for legacy-property.hbs. */ +interface LegacyPropertyContext { + name: string + formatLabel: string + listItemLabel?: string | undefined + linkAnchor?: string | undefined + description?: string | undefined + deprecatedBlock?: string | undefined + enumValues?: string[] | undefined + discriminator?: string | undefined + variants?: + | Array<{ + name: string + description: string + properties: Array<{ + name: string + formatLabel: string + listItemLabel?: string | undefined + description?: string | undefined + enumValues?: string[] | undefined + isLast: boolean + }> + }> + | undefined + childPropertiesBlock?: string | undefined + childObjectProperties?: + | Array<{ + name: string + formatLabel: string + description?: string | undefined + enumValues?: string[] | undefined + }> + | undefined +} + +export interface LegacyObjectPageLayoutContext { + layout: string + contents: Buffer + title: string + description: string + heading: string + intro: string + tabs: Array<{ title: string; description: string; json: string }> + examples: Array<{ title: string; json: string }> + propertySections: Array<{ + heading: string + properties: LegacyPropertyContext[] + }> + errorEntries: Array<{ code: string; description: string }> + warningEntries: Array<{ code: string; description: string }> + endpoints: Array<{ path: string; name: string; description: string }> +} + +// --- Ported verbatim from codegen/lib/layout/api-route.ts ------------------ + +export const normalizePropertyFormatForDocs = (format: string): string => { + const formatMap: Record = { + id: 'UUID', + discriminated_object: 'Object', + } + return formatMap[format] ?? pascalCase(format) +} + +const getFirstParagraph = (text: string): string => + text.split('\n\n').at(0) ?? text + +const flattenObjectProperties = ( + properties: Property[], + paths: string[] = [], +): Property[] => { + const results: Property[] = [] + + for (const property of properties.filter( + ({ isUndocumented }) => !isUndocumented, + )) { + const name = [...paths, property.name].join('.') + + results.push({ + ...property, + name, + } as Property) + + if (property.format === 'object') { + results.push(...flattenObjectProperties(property.properties, [name])) + continue + } + } + + return results +} + +const findEnumProperty = ( + properties: Property[], + name: string, +): { values?: Array<{ name: string }> } | null => { + const prop = properties.find((p) => p.name === name && p.format === 'enum') + return (prop as { values?: Array<{ name: string }> } | undefined) ?? null +} + +const mapBlueprintPropertyToRouteProperty = (prop: Property): RouteProperty => { + const { name, description, format, isDeprecated, deprecationMessage } = prop + const contextRouteProp: RouteProperty = { + name, + description: description.trim(), + isDeprecated, + deprecationMessage, + format: normalizePropertyFormatForDocs(format), + listItemFormat: '', + } + + if ('values' in prop) { + const singleValueEnumProps = ['event_type', 'action_type'] + if ( + singleValueEnumProps.includes(name) && + prop.values.length === 1 && + prop.values[0] != null + ) { + contextRouteProp.value = prop.values[0].name + } else { + contextRouteProp.enumValues = prop.values.map(({ name }) => name) + } + } + + if ('properties' in prop) { + const flattenedProperties = flattenObjectProperties(prop.properties) + contextRouteProp.objectProperties = flattenedProperties.map( + mapBlueprintPropertyToRouteProperty, + ) + } + + if ('itemProperties' in prop) { + const flattenedProperties = flattenObjectProperties( + (prop as { itemProperties: Property[] }).itemProperties, + ) + contextRouteProp.listProperties = flattenedProperties.map( + mapBlueprintPropertyToRouteProperty, + ) + } + + if (format === 'list') { + contextRouteProp.listItemFormat = normalizePropertyFormatForDocs( + (prop as { itemFormat: string }).itemFormat, + ) + + if (isDiscriminatedListProperty(prop)) { + const discriminatedListProp = prop + contextRouteProp.discriminator = discriminatedListProp.discriminator + contextRouteProp.discriminatorVariants = + discriminatedListProp.variants.map((variant) => { + const discriminatorProperty = findEnumProperty( + variant.properties as Property[], + discriminatedListProp.discriminator, + ) + const variantName = + discriminatorProperty?.values?.[0]?.name ?? 'unknown_variant' + return { + name: variantName, + description: variant.description, + properties: (variant.properties as Property[]) + .filter((p) => !p.isUndocumented) + .map(mapBlueprintPropertyToRouteProperty), + } + }) + } + } + + return contextRouteProp +} + +export const groupProperties = ( + properties: Property[], + propertyGroups: PropertyGroup[], + { + include, + exclude, + }: { + include?: string[] | undefined + exclude?: string[] | undefined + }, +): RouteProperty[] => { + const getApiRouteProperties = ( + propertyGroupKey: string | null, + ): RouteProperty[] => + properties + .filter( + (p) => + (p as { propertyGroupKey?: string | null }).propertyGroupKey === + propertyGroupKey, + ) + .map(mapBlueprintPropertyToRouteProperty) + .sort((a, b) => { + return a.name.localeCompare(b.name) + }) + + const groups = propertyGroups + .reduce< + Array<{ propertyGroupKey: string | null; properties: RouteProperty[] }> + >( + (groups, propertyGroup) => [ + ...groups, + { + propertyGroupKey: propertyGroup.propertyGroupKey, + properties: getApiRouteProperties(propertyGroup.propertyGroupKey), + }, + ], + [ + { + properties: getApiRouteProperties(null), + propertyGroupKey: null, + }, + ], + ) + .filter(({ properties }) => properties.length > 0) + .filter(({ propertyGroupKey }) => { + if (include == null) return true + if (propertyGroupKey == null) return true + return include.includes(propertyGroupKey) + }) + .filter(({ propertyGroupKey }) => { + if (exclude == null) return true + if (propertyGroupKey == null) return true + return !exclude.includes(propertyGroupKey) + }) + + // With `include` set, the GitBook pipeline collapses to one flat + // alphabetically sorted group (api-route.ts:429-439). These legacy pages + // always set include_groups, so only that path is ported. + return groups + .flatMap((g) => g.properties) + .sort((a, b) => a.name.localeCompare(b.name)) +} + +const getParentVariantResourceType = ( + propertyKeys: string[], + resourceTypes: string[], +): string | null => { + const keyMap = Object.fromEntries( + resourceTypes.map((k) => [`is_${k}_error`, k]), + ) + const key = propertyKeys.find((k) => Object.keys(keyMap).includes(k)) + if (key == null) return null + return keyMap[key] ?? null +} + +const collectResourceVariants = ( + property: DiscriminatedListProperty, + resourceTypes: string[], +): RouteVariant[] => { + return property.variants + .map((variant) => { + const discriminator = findEnumProperty( + variant.properties as Property[], + property.discriminator, + ) + if (discriminator?.values?.[0]?.name == null) { + return null + } + + return { + name: discriminator.values[0].name, + description: variant.description, + parentResouceType: getParentVariantResourceType( + variant.properties.map(({ name }) => name), + resourceTypes, + ), + } + }) + .filter((variant): variant is RouteVariant => variant !== null) +} + +export const groupVariants = ( + property: Property | null | undefined, + { + include, + exclude, + }: { + include?: string[] | undefined + exclude?: string[] | undefined + }, + resourceType: string, + resourceTypes: string[], +): RouteVariant[] => { + if (!isDiscriminatedListProperty(property ?? undefined)) { + return [] + } + const prop = property as Property & DiscriminatedListProperty + + const getApiRouteVariants = ( + variantGroupKey: string | null, + ): RouteVariant[] => { + return collectResourceVariants( + { + ...prop, + variants: prop.variants.filter( + (v) => v.variantGroupKey === variantGroupKey, + ), + }, + resourceTypes, + ).sort((a, b) => { + return a.name.localeCompare(b.name) + }) + } + + const groups = prop.variantGroups + .reduce< + Array<{ variantGroupKey: string | null; variants: RouteVariant[] }> + >( + (groups, variantGroup) => [ + ...groups, + { + variantGroupKey: variantGroup.variantGroupKey, + variants: getApiRouteVariants(variantGroup.variantGroupKey), + }, + ], + [ + { + variants: getApiRouteVariants(null), + variantGroupKey: null, + }, + ], + ) + .filter(({ variants }) => variants.length > 0) + .filter(({ variantGroupKey }) => { + if (include == null) return true + if (variantGroupKey == null) return true + return include.includes(variantGroupKey) + }) + .filter(({ variantGroupKey }) => { + if (exclude == null) return true + if (variantGroupKey == null) return true + return !exclude.includes(variantGroupKey) + }) + + // With `include` set, variants collapse to one flat list under the ported + // comparator (api-route.ts:303-333), non-total quirks included. + return groups + .flatMap((g) => g.variants) + .sort((a, b) => { + if (a.parentResouceType === null && b.parentResouceType === null) { + return a.name.localeCompare(b.name) + } + if (a.parentResouceType === resourceType) { + return -1 + } + if (b.parentResouceType === resourceType) { + return 1 + } + if (a.parentResouceType === null) { + return -1 + } + if (b.parentResouceType === null) { + return 1 + } + if (a.parentResouceType !== b.parentResouceType) { + return a.parentResouceType.localeCompare(b.parentResouceType) + } + return a.name.localeCompare(b.name) + }) +} + +// --- Legacy rendering helpers ---------------------------------------------- + +/** + * Render a `**Deprecated**. …` marker: inline when the + * whole line fits in the 80-column print width, otherwise a block form with + * the text greedily filled at the print width and indented two spaces — + * matching the prettier-mdx state of the committed pages. + */ +export function renderDeprecatedBlock(message: string, indent = 0): string { + const pad = ' '.repeat(indent) + // The inline/block threshold measures the marker without its indent — a + // 2-space-indented 80-char marker stays inline in the committed pages. + const marker = `**Deprecated**. ${message}` + if (marker.length <= printWidth) return pad + marker + + const words = `**Deprecated**. ${message}`.split(/\s+/) + const contentPad = ' '.repeat(indent + 2) + const lines: string[] = [] + let line = contentPad + for (const word of words) { + const candidate = line === contentPad ? line + word : `${line} ${word}` + if (candidate.length > printWidth && line !== contentPad) { + lines.push(line) + line = contentPad + word + } else { + line = candidate + } + } + lines.push(line) + return [`${pad}`, ...lines, `${pad}`].join('\n') +} + +/** + * Render a legacy `Child Properties` accordion: the flattened children of an + * object property as adjacent `` blocks. + * + * TODO: the committed pages contain converter artifacts in a few of these + * blocks (mis-nested fields after a list-of-objects child, e.g. + * assa_abloy_credential_service_metadata; the dormakaba predefined_time_slots + * tail). This renders the flattened children flat and consistent instead of + * reproducing those glitches — expect small reviewed diffs there. + */ +function renderChildPropertiesBlock(children: RouteProperty[]): string { + const renderField = (child: RouteProperty): string => { + const type = + child.format === 'List' + ? `List of ${child.listItemFormat}s` + : child.format + const body: string[] = [] + if (child.description) body.push(` ${child.description}`) + if (child.enumValues != null && child.enumValues.length > 0) { + body.push( + '', + ' ', + '', + ...child.enumValues.map((value) => ` - \`${value}\``), + '', + ' ', + ) + } + if (child.isDeprecated) { + body.push(renderDeprecatedBlock(child.deprecationMessage, 2)) + } + return [ + ``, + ...body, + ``, + ].join('\n') + } + + const fields: string[] = [] + for (const child of children) { + fields.push(renderField(child)) + // A list-of-objects child documents its item properties as adjacent + // sibling fields (matching the committed pages' flattened presentation). + if (child.listProperties != null) { + for (const item of child.listProperties) { + fields.push(renderField(item)) + } + } + } + + return [ + '', + '', + fields.join('\n'), + '', + ].join('\n') +} + +const toLegacyPropertyContext = ( + prop: RouteProperty, + linkableAnchors: Record, +): LegacyPropertyContext => { + const context: LegacyPropertyContext = { + name: prop.name, + formatLabel: prop.format, + listItemLabel: prop.listItemFormat || undefined, + linkAnchor: linkableAnchors[prop.name], + description: prop.description || undefined, + deprecatedBlock: prop.isDeprecated + ? renderDeprecatedBlock(prop.deprecationMessage) + : undefined, + enumValues: prop.enumValues, + } + + if (prop.discriminatorVariants != null && prop.discriminator != null) { + context.discriminator = prop.discriminator + context.variants = prop.discriminatorVariants.map((variant) => ({ + name: variant.name, + description: variant.description, + properties: variant.properties.map((p, i, all) => ({ + name: p.name, + formatLabel: p.format, + listItemLabel: p.listItemFormat || undefined, + description: p.description || undefined, + enumValues: p.enumValues, + isLast: i === all.length - 1, + })), + })) + } else if (prop.listProperties != null && prop.listProperties.length > 0) { + context.childObjectProperties = prop.listProperties.map((p) => ({ + name: p.name, + formatLabel: p.format, + description: p.description || undefined, + enumValues: p.enumValues, + })) + } else if ( + prop.objectProperties != null && + prop.objectProperties.length > 0 + ) { + context.childPropertiesBlock = renderChildPropertiesBlock( + prop.objectProperties, + ) + } + + return context +} + +// --- Page builders ---------------------------------------------------------- + +/** Sample filter ported from api-route.ts resourceSampleFilter (fuzzy title + * match on the singularized group key). */ +const resourceSampleFilter = + ({ + include, + exclude, + }: { + include?: string[] | undefined + exclude?: string[] | undefined + }) => + ({ title }: { title: string }): boolean => { + if (include != null) { + return include.some((x) => + title.toLowerCase().includes(x.split('_')[0]?.slice(0, -1) ?? ''), + ) + } + if (exclude != null) { + return !exclude.some((x) => + title.toLowerCase().includes(x.split('_')[0]?.slice(0, -1) ?? ''), + ) + } + return true + } + +const buildEndpoints = ( + blueprint: Blueprint, + routePath: string, +): LegacyObjectPageLayoutContext['endpoints'] => { + const route = blueprint.routes.find((r) => r.path === routePath) + if (route == null) return [] + return route.endpoints + .filter( + (endpoint: Endpoint) => + !endpoint.isUndocumented && endpoint.title.length !== 0, + ) + .map((endpoint) => ({ + path: endpoint.path, + name: endpoint.path.split('/').filter(Boolean).pop() ?? endpoint.path, + description: getFirstParagraph(endpoint.description.trim()), + })) +} + +/** + * The /locks and /thermostats pages: a group-filtered legacy view of the + * `device` resource, mirroring the GitBook route README for the same route. + */ +export function setLegacyObjectPageLayoutContext( + blueprint: Blueprint, + resource: Resource, + routePath: string, + meta: ObjectPageEntry, +): LegacyObjectPageLayoutContext { + const groupOptions = { + include: meta.include_groups, + exclude: meta.exclude_groups, + } + + const allProperties = (resource.properties as Property[]).filter( + ({ isUndocumented }) => !isUndocumented, + ) + const properties = allProperties.filter(({ name }) => name !== 'properties') + const legacyProperty = allProperties.find(({ name }) => name === 'properties') + + const errorsProp = (resource.properties as Property[]).find( + (p) => p.name === 'errors', + ) + const warningsProp = (resource.properties as Property[]).find( + (p) => p.name === 'warnings', + ) + const errorEntries = groupVariants( + errorsProp, + groupOptions, + resource.resourceType, + [resource.resourceType], + ).map(({ name, description }) => ({ code: name, description })) + const warningEntries = groupVariants( + warningsProp, + groupOptions, + resource.resourceType, + [resource.resourceType], + ).map(({ name, description }) => ({ code: name, description })) + + const linkableAnchors: Record = { + errors: errorEntries.length > 0 ? '#errors' : undefined, + warnings: warningEntries.length > 0 ? '#warnings' : undefined, + } + + const topProperties = groupProperties( + properties, + (resource.propertyGroups ?? []) as PropertyGroup[], + groupOptions, + ).map((p) => toLegacyPropertyContext(p, linkableAnchors)) + + const propertySections: LegacyObjectPageLayoutContext['propertySections'] = [ + { heading: 'Properties', properties: topProperties }, + ] + + if (legacyProperty != null && legacyProperty.format === 'object') { + const legacyChildren = groupProperties( + legacyProperty.properties.filter( + ({ isUndocumented }) => !isUndocumented, + ) as Property[], + ((legacyProperty as { propertyGroups?: PropertyGroup[] }) + .propertyGroups ?? []) as PropertyGroup[], + groupOptions, + ).map((p) => toLegacyPropertyContext(p, {})) + if (legacyChildren.length > 0) { + propertySections.push({ + heading: `${resource.resourceType}.properties`, + properties: legacyChildren, + }) + } + } + + const samples = resource.resourceSamples.filter( + resourceSampleFilter(groupOptions), + ) + + return { + layout: 'legacy-object.hbs', + contents: Buffer.from(''), + title: meta.title, + description: meta.description, + heading: meta.heading ?? `The ${resource.resourceType} Object`, + intro: meta.intro?.trim() ?? resource.description, + tabs: samples.map((sample) => { + const jsonSample = Object.entries(sample.resource).find( + ([k]) => k === 'seam_cli', + )?.[1] as { resource_data: string } | undefined + if (jsonSample == null) { + throw new Error( + `Missing seam_cli for ${sample.resource_type} resource sample: ${sample.title}`, + ) + } + return { + title: sample.title, + description: sample.description, + json: jsonSample.resource_data.trim(), + } + }), + examples: samples.map((sample) => ({ + title: sample.title, + json: JSON.stringify(sample.properties, null, 2), + })), + propertySections, + errorEntries, + warningEntries, + endpoints: buildEndpoints(blueprint, routePath), + } +} + +/** + * The /action_attempts legacy page. Mirrors processActionAttemptResource in + * codegen/lib/layout/api-route.ts: five hardcoded fields in that order, with + * the action_type enum built from the documented, non-deprecated attempts. + */ +export function setLegacyActionAttemptPageLayoutContext( + blueprint: Blueprint, + routePath: string, + meta: ObjectPageEntry, +): LegacyObjectPageLayoutContext { + const actionTypes = blueprint.actionAttempts + .filter( + ({ isDeprecated, isUndocumented }) => !(isUndocumented || isDeprecated), + ) + .filter( + ({ actionAttemptType }) => + !['CREATE', 'DELETE', 'UPDATE', 'SYNC'].includes( + actionAttemptType.split('_')[0] ?? '', + ), + ) + .map(({ actionAttemptType }) => actionAttemptType) + + const field = ( + name: string, + formatLabel: string, + description: string, + enumValues?: string[], + ): LegacyPropertyContext => ({ + name, + formatLabel, + description, + enumValues, + }) + + return { + layout: 'legacy-object.hbs', + contents: Buffer.from(''), + title: meta.title, + description: meta.description, + heading: meta.heading ?? 'The action_attempt Object', + intro: + meta.intro?.trim() ?? + 'Represents an attempt to perform an action against a device.', + tabs: [], + examples: [ + { + title: 'Action Attempt', + json: JSON.stringify( + { + action_attempt_id: '3f2b1c8d-1b5e-4f8c-9c7d-9a8b7c6d5e4f', + action_type: 'LOCK_DOOR', + error: null, + result: {}, + status: 'success', + }, + null, + 2, + ), + }, + ], + propertySections: [ + { + heading: 'Properties', + properties: [ + field('action_attempt_id', 'UUID', 'ID of the action attempt.'), + field('status', 'Enum', 'Status of the action attempt.', [ + 'pending', + 'success', + 'error', + ]), + field( + 'action_type', + 'Enum', + 'Type of the action attempt.', + actionTypes, + ), + field( + 'error', + 'Object', + 'Error associated with the action attempt. Null for pending and successful action attempts.', + ), + field( + 'result', + 'Object', + 'Result of the action attempt. Null for pending and errored action attempts.', + ), + ], + }, + ], + errorEntries: [], + warningEntries: [], + endpoints: buildEndpoints(blueprint, routePath), + } +} diff --git a/mintlify-codegen/lib/object-page-metadata.ts b/mintlify-codegen/lib/object-page-metadata.ts index b70999bd1..edd244784 100644 --- a/mintlify-codegen/lib/object-page-metadata.ts +++ b/mintlify-codegen/lib/object-page-metadata.ts @@ -28,6 +28,10 @@ export const ObjectPageMetadataSchema = z.record( description: z.string().trim().min(1), endpoints: z.literal(true).optional(), namespace: z.literal(true).optional(), + // Renders the page in the legacy (GitBook-migrated) presentation the + // committed page had, regenerated from the blueprint. TODO: modernize + // these pages to the standard object-page format and drop this flag. + legacy: z.literal(true).optional(), resource_type: z.string().trim().min(1).optional(), include_groups: z.array(z.string()).optional(), exclude_groups: z.array(z.string()).optional(), diff --git a/mintlify-codegen/lib/reference.ts b/mintlify-codegen/lib/reference.ts index 5a43a1892..ce3df514d 100644 --- a/mintlify-codegen/lib/reference.ts +++ b/mintlify-codegen/lib/reference.ts @@ -21,6 +21,10 @@ import { groupEventsByRoutePath, setEventsPageLayoutContext, } from './layout/events-page.js' +import { + setLegacyActionAttemptPageLayoutContext, + setLegacyObjectPageLayoutContext, +} from './layout/legacy-object-page.js' import { setNamespacePageLayoutContext } from './layout/namespace-page.js' import { setActionAttemptPageLayoutContext, @@ -116,6 +120,33 @@ function updateObjectPages( return setNamespacePageLayoutContext(blueprint, routePath, meta) } + if (meta.legacy) { + if (meta.resource_type === 'action_attempt') { + // The blueprint has no action_attempt resource; the page is synthesized. + return setLegacyActionAttemptPageLayoutContext( + blueprint, + routePath, + meta, + ) + } + const resource = blueprint.resources.find( + (r) => r.resourceType === meta.resource_type, + ) + if (resource == null) { + console.log( + ` WARNING: no blueprint resource backs the legacy object page ` + + `for ${routePath} — skipping. Fix its object-pages.yaml entry.`, + ) + return null + } + return setLegacyObjectPageLayoutContext( + blueprint, + resource, + routePath, + meta, + ) + } + if (meta.resource_type === 'action_attempt') { // The blueprint has no action_attempt resource; the page is synthesized. return setActionAttemptPageLayoutContext(blueprint, meta) diff --git a/mintlify-docs/api/action_attempts/object.mdx b/mintlify-docs/api/action_attempts/object.mdx index e0f5f684b..287082197 100644 --- a/mintlify-docs/api/action_attempts/object.mdx +++ b/mintlify-docs/api/action_attempts/object.mdx @@ -5,6 +5,7 @@ description: 'Learn how the action_attempt object tracks an attempt to perform a ## The action_attempt Object + Represents an attempt to perform an action against a device. @@ -25,45 +26,67 @@ Represents an attempt to perform an action against a device. ## Properties - - ID of the action attempt. - - - - Status of the action attempt. - - - - `pending` - - `success` - - `error` - - - - - Type of the action attempt. - - - - `LOCK_DOOR` - - `UNLOCK_DOOR` - - `SCAN_CREDENTIAL` - - `ENCODE_CREDENTIAL` - - `SCAN_TO_ASSIGN_CREDENTIAL` - - `ASSIGN_CREDENTIAL` - - `RESET_SANDBOX_WORKSPACE` - - `SET_FAN_MODE` - - `SET_HVAC_MODE` - - `ACTIVATE_CLIMATE_PRESET` - - `SIMULATE_KEYPAD_CODE_ENTRY` - - `SIMULATE_MANUAL_LOCK_VIA_KEYPAD` - - `PUSH_THERMOSTAT_PROGRAMS` - - `CONFIGURE_AUTO_LOCK` - - - - - Error associated with the action attempt. Null for pending and successful action attempts. - - - - Result of the action attempt. Null for pending and errored action attempts. - +**`action_attempt_id`** _UUID_ + +ID of the action attempt. + +--- + +**`status`** _Enum_ + +Status of the action attempt. + + + +- pending +- success +- error + + +--- + +**`action_type`** _Enum_ + +Type of the action attempt. + + + +- LOCK_DOOR +- UNLOCK_DOOR +- SCAN_CREDENTIAL +- ENCODE_CREDENTIAL +- SCAN_TO_ASSIGN_CREDENTIAL +- ASSIGN_CREDENTIAL +- RESET_SANDBOX_WORKSPACE +- SET_FAN_MODE +- SET_HVAC_MODE +- ACTIVATE_CLIMATE_PRESET +- SIMULATE_KEYPAD_CODE_ENTRY +- SIMULATE_MANUAL_LOCK_VIA_KEYPAD +- PUSH_THERMOSTAT_PROGRAMS +- CONFIGURE_AUTO_LOCK + + +--- + +**`error`** _Object_ + +Error associated with the action attempt. Null for pending and successful action attempts. + +--- + +**`result`** _Object_ + +Result of the action attempt. Null for pending and errored action attempts. + +--- + +## Endpoints + +[**`/action_attempts/get`**](./get) + +Returns a specified [action attempt](https://docs.seam.co/core-concepts/action-attempts). + +[**`/action_attempts/list`**](./list) + +Returns a list of the [action attempts](https://docs.seam.co/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s. diff --git a/mintlify-docs/api/locks/object.mdx b/mintlify-docs/api/locks/object.mdx index a8870229f..c0e65b4bf 100644 --- a/mintlify-docs/api/locks/object.mdx +++ b/mintlify-docs/api/locks/object.mdx @@ -5,6 +5,7 @@ description: 'Learn how the device object represents a smart lock connected to S ## The device Object for Locks + Represents a [lock](/low-level-apis/smart-locks). The Seam API enables you to control connected smart locks from a wide variety of manufacturers, including locks that provide online and offline [access code](/low-level-apis/smart-locks/access-codes) programming. @@ -13,6 +14,69 @@ Depending on the smart lock brand and model, actions that you can perform includ See also [Webhooks](/developer-tools/webhooks). + + + +A lock device resource. + +```json +{ + "can_program_online_access_codes": true, + "can_remotely_lock": true, + "can_remotely_unlock": true, + "capabilities_supported": ["access_code", "lock"], + "connected_account_id": "8e3a4f1b-2c7d-4a9e-8b5f-3d2c1a0b9e8f", + "created_at": "2025-03-27T02:08:16.418Z", + "space_ids": [], + "custom_metadata": { "id": "internalId1" }, + "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", + "device_type": "schlage_lock", + "display_name": "FRONT DOOR", + "errors": [], + "is_managed": true, + "location": { "location_name": "Front Door", "timezone": "America/New_York" }, + "nickname": "Front Door", + "properties": { + "appearance": { "name": "FRONT DOOR" }, + "battery": { "level": 0.48, "status": "good" }, + "battery_level": 0.48, + "code_constraints": [{ "constraint_type": "name_length", "max_length": 9 }], + "has_native_entry_events": true, + "image_alt_text": "Schlage Sense Smart Deadbolt with Camelot Trim, Front", + "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/schlage_sense-smart-deadbolt-with-camelot-trim_front.png&q=75&w=128", + "locked": false, + "manufacturer": "schlage", + "model": { + "accessory_keypad_supported": false, + "can_connect_accessory_keypad": false, + "display_name": "Encode", + "has_built_in_keypad": true, + "manufacturer_display_name": "Schlage", + "offline_access_codes_supported": false, + "online_access_codes_supported": true + }, + "name": "FRONT DOOR", + "offline_access_codes_enabled": false, + "online": true, + "online_access_codes_enabled": true, + "schlage_metadata": { + "device_id": "a69569e1-133b-4a9d-b883-018641bfe543", + "device_name": "FRONT DOOR", + "model": "Encode" + }, + "serial_number": "34000000000531e0", + "supported_code_lengths": [4, 5, 6, 7, 8], + "supports_backup_access_code_pool": true, + "supports_offline_access_codes": false + }, + "warnings": [], + "workspace_id": "5d7f2e1a-9c8b-4f3e-8d2c-1a0b9e8f7c6d" +} +``` + + + + ```json Lock Device @@ -100,1422 +164,2903 @@ See also [Webhooks](/developer-tools/webhooks). ## Properties - - Indicates whether the lock supports configuring automatic locking. - +**`can_configure_auto_lock`** _Boolean_ - - Indicates whether the thermostat supports cooling. - +Indicates whether the lock supports configuring automatic locking. - - Indicates whether the thermostat supports heating. - +--- - - Indicates whether the thermostat supports simultaneous heating and cooling. - +**`can_hvac_cool`** _Boolean_ - - Indicates whether the device supports programming offline access codes. - +Indicates whether the thermostat supports cooling. - - Indicates whether the device supports programming online access codes. - +--- - - Indicates whether the thermostat supports different climate programs for each day of the week. - +**`can_hvac_heat`** _Boolean_ - - Indicates whether the thermostat supports a single climate program applied to every day. - +Indicates whether the thermostat supports heating. - - Indicates whether the thermostat supports weekday/weekend climate programs. - +--- - - Indicates whether the device supports remote locking. - +**`can_hvac_heat_cool`** _Boolean_ - - Indicates whether the device supports remote unlocking. - +Indicates whether the thermostat supports simultaneous heating and cooling. - - Indicates whether the thermostat supports running climate programs. - +--- - - Indicates whether the device supports simulating connection in a sandbox. - +**`can_program_offline_access_codes`** _Boolean_ - - Indicates whether the device supports simulating disconnection in a sandbox. - +Indicates whether the device supports programming offline access codes. - - Indicates whether the hub supports simulating connection in a sandbox. - +--- - - Indicates whether the hub supports simulating disconnection in a sandbox. - +**`can_program_online_access_codes`** _Boolean_ - - Indicates whether the device supports simulating a paid subscription in a sandbox. - +Indicates whether the device supports programming online access codes. - - Indicates whether the device supports simulating removal in a sandbox. - +--- - - Indicates whether the thermostat can be turned off. - +**`can_program_thermostat_programs_as_different_each_day`** _Boolean_ - - Indicates whether the lock supports unlocking with an access code. - +Indicates whether the thermostat supports different climate programs for each day of the week. - - Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). - +--- - - Unique identifier for the account associated with the device. - +**`can_program_thermostat_programs_as_same_each_day`** _Boolean_ - - Date and time at which the device object was created. - +Indicates whether the thermostat supports a single climate program applied to every day. - - Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. - +--- - - ID of the device. - +**`can_program_thermostat_programs_as_weekday_weekend`** _Boolean_ - - Type of the device. - +Indicates whether the thermostat supports weekday/weekend climate programs. - - Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. - - - - Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. - - - - Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). - - - - Optional nickname to describe the device, settable through Seam. - - - - Properties of the device. - - - Accessory keypad properties and state. - - - Keypad battery properties. - - - The level. - - - - - Indicates if an accessory keypad is connected to the device. - - - - - Appearance-related properties, as reported by the device. - - - Name of the device as seen from the provider API and application, not settable through Seam. - - - - - Represents the current status of the battery charge level. - - - Battery charge level as a value between 0 and 1, inclusive. - - - Represents the current status of the battery charge level. Values are `critical`, which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; `low`, which signifies that the battery is under the preferred threshold and should be charged soon; `good`, which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and `full`, which represents a battery that is fully charged, providing the maximum duration of usage. - - - - - Indicates the battery level of the device as a decimal value between 0 and 1, inclusive. - - - Array of noise threshold IDs that are currently triggering. - - - Indicates whether the device has direct power. - - - Alt text for the device image. - - - Image URL for the device. - - - Manufacturer of the device. When a device, such as a smart lock, is connected through a smart hub, the manufacturer of the device might be different from that of the smart hub. - - - Device model-related properties. - - - The accessory keypad supported. - - - Indicates whether the device can connect a accessory keypad. - - - Display name of the device model. - - - Indicates whether the device has a built in accessory keypad. - - - Display name that corresponds to the manufacturer-specific terminology for the device. - - - The offline access codes supported. - - - The online access codes supported. - - - - - Name of the device. - - - Indicates current noise level in decibels, if the device supports noise detection. - - - Indicates whether it is currently possible to use offline access codes for the device. - - - Indicates whether the device is online. - - - Indicates whether it is currently possible to use online access codes for the device. - - - Serial number of the device. - - - The supports accessory keypad. - - - The supports offline access codes. - - - ASSA ABLOY Credential Service metadata for the phone. - - - Endpoints associated with the phone. - - - Indicates whether the credential service has active endpoints associated with the phone. - - - - - Salto Space credential service metadata for the phone. - - - Indicates whether the credential service has an active associated phone. - - - - - Metadata for an Akiles device. - - - Group ID to which to add users for an Akiles device. - - - Gadget ID for an Akiles device. - - - Gadget name for an Akiles device. - - - Product name for an Akiles device. - - - - - Metadata for an ASSA ABLOY Vostio system. - - - Encoder name for an ASSA ABLOY Vostio system. - - - - - Metadata for an August device. - - - Indicates whether an August device has a keypad. - - - House ID for an August device. - - - House name for an August device. - - - Keypad battery level for an August device. - - - Lock ID for an August device. - - - Lock name for an August device. - - - Model for an August device. - - - - - Metadata for an Avigilon Alta system. - - - Entry name for an Avigilon Alta system. - - - Total count of entry relays for an Avigilon Alta system. - - - Organization name for an Avigilon Alta system. - - - Site ID for an Avigilon Alta system. - - - Site name for an Avigilon Alta system. - - - Zone ID for an Avigilon Alta system. - - - Zone name for an Avigilon Alta system. - - - - - Metadata for a Brivo device. - - - Indicates whether the Brivo access point has activation (remote unlock) enabled. - - - Device name for a Brivo device. - - - - - Metadata for a ControlByWeb device. - - - Device ID for a ControlByWeb device. - - - Device name for a ControlByWeb device. - - - Relay name for a ControlByWeb device. - - - - - Metadata for a dormakaba Oracode device. - - - Device ID for a dormakaba Oracode device. - - - Door ID for a dormakaba Oracode device. - - - Indicates whether a door is wireless for a dormakaba Oracode device. - - - Door name for a dormakaba Oracode device. - - - IANA time zone for a dormakaba Oracode device. - - - Predefined time slots for a dormakaba Oracode device. - - - Site ID for a dormakaba Oracode device. - - - Site name for a dormakaba Oracode device. - - - - - Metadata for an ecobee device. - - - Device name for an ecobee device. - - - Device ID for an ecobee device. - - - - - Metadata for a 4SUITES device. - - - Device ID for a 4SUITES device. - - - Device name for a 4SUITES device. - - - Reclose delay, in seconds, for a 4SUITES device. - - - - - Metadata for a Genie device. - - - Lock name for a Genie device. - - - Door name for a Genie device. - - - - - Metadata for a Honeywell Resideo device. - - - Device name for a Honeywell Resideo device. - - - Device ID for a Honeywell Resideo device. - - - - - Metadata for an igloo device. - - - Bridge ID for an igloo device. - - - Device ID for an igloo device. - - - Model for an igloo device. - - - - - Metadata for an igloohome device. - - - Bridge ID for an igloohome device. - - - Bridge name for an igloohome device. - - - Device ID for an igloohome device. - - - Device name for an igloohome device. - - - Indicates whether a keypad is linked to a bridge for an igloohome device. - - - Keypad ID for an igloohome device. - - - - - Metadata for a KeyNest device. - - - Address for a KeyNest device. - - - Current or last store ID for a KeyNest device. - - - Current status for a KeyNest device. - - - Current user company for a KeyNest device. - - - Current user email for a KeyNest device. - - - Current user name for a KeyNest device. - - - Current user phone number for a KeyNest device. - - - Default office ID for a KeyNest device. - - - Device name for a KeyNest device. - - - Fob ID for a KeyNest device. - - - Handover method for a KeyNest device. - - - Whether the KeyNest device has a photo. - - - Whether the key is in a locker that does not support the access codes API. - - - Key ID for a KeyNest device. - - - Key notes for a KeyNest device. - - - KeyNest app user for a KeyNest device. - - - Last movement timestamp for a KeyNest device. - - - Property ID for a KeyNest device. - - - Property postcode for a KeyNest device. - - - Status type for a KeyNest device. - - - Subscription plan for a KeyNest device. - - - - - Metadata for a Korelock device. - - - Device ID for a Korelock device. - - - Device name for a Korelock device. - - - Firmware version for a Korelock device. - - - Location ID for a Korelock device. Required for timebound access codes. - - - Model code for a Korelock device. - - - Serial number for a Korelock device. - - - WiFi signal strength (0-1) for a Korelock device. - - - - - Metadata for a Kwikset device. - - - Device ID for a Kwikset device. - - - Device name for a Kwikset device. - - - Model number for a Kwikset device. - - - - - Metadata for a Lockly device. - - - Device ID for a Lockly device. - - - Device name for a Lockly device. - - - Model for a Lockly device. - - - - - Metadata for a Minut device. - - - Device ID for a Minut device. - - - Device name for a Minut device. - - - Latest sensor values for a Minut device. - - - Latest accelerometer Z-axis reading for a Minut device. - - - Time of latest accelerometer Z-axis reading for a Minut device. - - - Value of latest accelerometer Z-axis reading for a Minut device. - - - - - Latest humidity reading for a Minut device. - - - Time of latest humidity reading for a Minut device. - - - Value of latest humidity reading for a Minut device. - - - - - Latest pressure reading for a Minut device. - - - Time of latest pressure reading for a Minut device. - - - Value of latest pressure reading for a Minut device. - - - - - Latest sound reading for a Minut device. - - - Time of latest sound reading for a Minut device. - - - Value of latest sound reading for a Minut device. - - - - - Latest temperature reading for a Minut device. - - - Time of latest temperature reading for a Minut device. - - - Value of latest temperature reading for a Minut device. - - - - - - - - - Metadata for a Google Nest device. - - - Custom device name for a Google Nest device. The device owner sets this value. - - - Device name for a Google Nest device. Google sets this value. - - - Display name for a Google Nest device. - - - Device ID for a Google Nest device. - - - - - Metadata for a NoiseAware device. - - - Device ID for a NoiseAware device. - - - Device model for a NoiseAware device. - - - Device name for a NoiseAware device. - - - Noise level, in decibels, for a NoiseAware device. - - - Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. - - - - - Metadata for a Nuki device. - - - Device ID for a Nuki device. - - - Device name for a Nuki device. - - - Indicates whether keypad 2 is paired for a Nuki device. - - - Indicates whether the keypad battery is in a critical state for a Nuki device. - - - Indicates whether the keypad is paired for a Nuki device. - - - - - Metadata for an Omnitec device. - - - Whether the Omnitec lock has a connected gateway for remote operations. - - - Lock ID for an Omnitec device. - - - Bluetooth MAC address for an Omnitec device. - - - Lock name for an Omnitec device. - - - Static UTC offset of the Omnitec lock in milliseconds. Does not account for DST. - - - - - Metadata for a Ring device. - - - Device ID for a Ring device. - - - Device name for a Ring device. - - - - - Metadata for a Salto KS device. - - - Battery level for a Salto KS device. - - - Customer reference for a Salto KS device. - - - Indicates whether the site has a Salto KS subscription that supports custom PINs. - - - Lock ID for a Salto KS device. - - - Lock type for a Salto KS device. - - - Locked state for a Salto KS device. - - - Model for a Salto KS device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - - - Metada for a Salto device. - - - Battery level for a Salto device. - - - Customer reference for a Salto device. - - - Lock ID for a Salto device. - - - Lock type for a Salto device. - - - Locked state for a Salto device. - - - Model for a Salto device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - - - Metadata for a Schlage device. - - - Device ID for a Schlage device. - - - Device name for a Schlage device. - - - Model for a Schlage device. - - - - - Metadata for Seam Bridge. - - - Device number for Seam Bridge. - - - Name for Seam Bridge. - - - Unlock method for Seam Bridge. - - - - - Metadata for a Sensi device. - - - Device ID for a Sensi device. - - - Device name for a Sensi device. - - - Set to true when the device does not support the /dual-setpoints API endpoint. - - - Product type for a Sensi device. - - - - - Metadata for a SmartThings device. - - - Device ID for a SmartThings device. - - - Device name for a SmartThings device. - - - Location ID for a SmartThings device. - - - Model for a SmartThings device. - - - - - Metadata for a tado° device. - - - Device type for a tado° device. - - - Serial number for a tado° device. - - - - - Metadata for a Tedee device. - - - Bridge ID for a Tedee device. - - - Bridge name for a Tedee device. - - - Device ID for a Tedee device. - - - Device model for a Tedee device. - - - Device name for a Tedee device. - - - Keypad ID for a Tedee device. - - - Serial number for a Tedee device. - - - - - Metadata for a TTLock device. - - - Feature value for a TTLock device. - - - Features for a TTLock device. - - - Indicates whether a TTLock device supports auto-lock time configuration. - - - Indicates whether a TTLock device supports an incomplete keyboard passcode. - - - Indicates whether a TTLock device supports the lock command. - - - Indicates whether a TTLock device supports a passcode. - - - Indicates whether a TTLock device supports passcode management. - - - Indicates whether a TTLock device supports unlock via gateway. - - - Indicates whether a TTLock device supports Wi-Fi. - - - - - Indicates whether a TTLock device has a gateway. - - - Lock alias for a TTLock device. - - - Lock ID for a TTLock device. - - - Lock-side timezone offset in milliseconds east of UTC, as configured in the TTLock app. Source of truth for the lock's wall-clock interpretation of access code start/end times — a misconfigured value here is the typical cause of customer "codes offset by N hours" reports. Diagnostic only; Seam does not convert times based on this value. - - - Wireless keypads for a TTLock device. - - - - - Metadata for a 2N device. - - - Device ID for a 2N device. - - - Device name for a 2N device. - - - - - Metadata for an Ultraloq device. - - - Device ID for an Ultraloq device. - - - Device name for an Ultraloq device. - - - Device type for an Ultraloq device. - - - IANA timezone for the Ultraloq device. - - - - - Metadata for an ASSA ABLOY Visionline system. - - - Encoder ID for an ASSA ABLOY Visionline system. - - - - - Metadata for a Wyze device. - - - Device ID for a Wyze device. - - - Device information model for a Wyze device. - - - Device name for a Wyze device. - - - Keypad UUID for a Wyze device. - - - Locker status (hardlock) for a Wyze device. - - - Product model for a Wyze device. - - - Product name for a Wyze device. - - - Product type for a Wyze device. - - - - - The delay in seconds before the lock automatically locks after being unlocked. - - - Indicates whether automatic locking is enabled. - - - Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. - - - Indicates whether the door is open. - - - Indicates whether the device supports native entry events. - - - Keypad battery status. - - - Keypad battery charge level. - - - - - Indicates whether the lock is locked. - - - Maximum number of active access codes that the device supports. - - - Supported code lengths for access codes. - - - Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). - - - Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - - - ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. - - - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - - - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - ID of the workspace that contains the thermostat schedule. - - - - - ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". - - - Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. - - - Fan mode settings that the thermostat supports. - - - HVAC mode settings that the thermostat supports. - - - Current climate setting. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - Metadata specific to the Ecobee climate, if applicable. - - - Reference to the Ecobee climate, if applicable. - - - Indicates if the climate preset is optimized by Ecobee. - - - Indicates whether the climate preset is owned by the user or the system. - - - - - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - - - The default climate setting. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - Metadata specific to the Ecobee climate, if applicable. - - - Reference to the Ecobee climate, if applicable. - - - Indicates if the climate preset is optimized by Ecobee. - - - Indicates whether the climate preset is owned by the user or the system. - - - - - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - - - Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. - - - The fan mode setting. - - - Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. - - - Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. - - - Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. - - - Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. - - - Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - - - Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - - - Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - - - Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. - - - Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. - - - Maximum number of climate presets that the thermostat can support for weekly programming. - - - Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - - - Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - - - Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. - - - Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. - - - Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - - - Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. - - - Reported relative humidity, as a value between 0 and 1, inclusive. - - - Reported temperature in °C. - - - Reported temperature in °F. - - - Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - - - Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. - - - Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - - - Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - - - Date and time at which the thermostat weekly program was created. - - - ID of the thermostat daily program to run on Fridays. - - - ID of the thermostat daily program to run on Mondays. - - - ID of the thermostat daily program to run on Saturdays. - - - ID of the thermostat daily program to run on Sundays. - - - ID of the thermostat daily program to run on Thursdays. - - - ID of the thermostat daily program to run on Tuesdays. - - - ID of the thermostat daily program to run on Wednesdays. - - - - - - - - IDs of the spaces the device is in. - - - - Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. - - - - Unique identifier for the Seam workspace associated with the device. - - -## Access Codes - - - Indicates whether it is currently possible to use offline access codes for the device. - - - - Indicates whether it is currently possible to use online access codes for the device. - - - - The supports accessory keypad. - +--- - - The supports offline access codes. - +**`can_remotely_lock`** _Boolean_ - - Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. - +Indicates whether the device supports remote locking. - - Indicates whether the device supports native entry events. - +--- - - Keypad battery status. - - - Keypad battery charge level. - - - +**`can_remotely_unlock`** _Boolean_ - - Maximum number of active access codes that the device supports. - +Indicates whether the device supports remote unlocking. - - Supported code lengths for access codes. - +--- - - Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). - +**`can_run_thermostat_programs`** _Boolean_ -## Locks +Indicates whether the thermostat supports running climate programs. - - The delay in seconds before the lock automatically locks after being unlocked. - +--- - - Indicates whether automatic locking is enabled. - +**`can_simulate_connection`** _Boolean_ - - Indicates whether the door is open. - +Indicates whether the device supports simulating connection in a sandbox. - - Indicates whether the lock is locked. - +--- + +**`can_simulate_disconnection`** _Boolean_ + +Indicates whether the device supports simulating disconnection in a sandbox. + +--- + +**`can_simulate_hub_connection`** _Boolean_ + +Indicates whether the hub supports simulating connection in a sandbox. + +--- + +**`can_simulate_hub_disconnection`** _Boolean_ + +Indicates whether the hub supports simulating disconnection in a sandbox. + +--- + +**`can_simulate_paid_subscription`** _Boolean_ + +Indicates whether the device supports simulating a paid subscription in a sandbox. + +--- + +**`can_simulate_removal`** _Boolean_ + +Indicates whether the device supports simulating removal in a sandbox. + +--- + +**`can_turn_off_hvac`** _Boolean_ + +Indicates whether the thermostat can be turned off. + +--- + +**`can_unlock_with_code`** _Boolean_ + +Indicates whether the lock supports unlocking with an access code. + +--- + +**`capabilities_supported`** _List_ _of Enums_ + +Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). + +--- + +**`connected_account_id`** _UUID_ + +Unique identifier for the account associated with the device. + +--- + +**`created_at`** _Datetime_ + +Date and time at which the device object was created. + +--- + +**`custom_metadata`** _Record_ + +Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + +--- + +**`device_id`** _UUID_ + +ID of the device. + +--- + +**`device_type`** _Enum_ + +Type of the device. + + + +- akuvox_lock +- august_lock +- brivo_access_point +- butterflymx_panel +- avigilon_alta_entry +- doorking_lock +- genie_door +- igloo_lock +- linear_lock +- lockly_lock +- kwikset_lock +- nuki_lock +- salto_lock +- schlage_lock +- smartthings_lock +- wyze_lock +- yale_lock +- two_n_intercom +- controlbyweb_device +- ttlock_lock +- igloohome_lock +- four_suites_door +- dormakaba_oracode_door +- tedee_lock +- akiles_lock +- ultraloq_lock +- keyincode_lock +- omnitec_lock +- keynest_key +- noiseaware_activity_zone +- minut_sensor +- ecobee_thermostat +- nest_thermostat +- honeywell_resideo_thermostat +- tado_thermostat +- sensi_thermostat +- smartthings_thermostat +- ios_phone +- android_phone +- ring_camera + + +--- + +**`display_name`** _String_ + +Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. + +--- + +[**`errors`**](#errors) _List_ _of Objects_ + +Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. + +The specific structure of each object in this list depends on the value of its `error_code` field. + +Variants: + + + +Indicates that the account is disconnected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- account_disconnected + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is not a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the Salto site user limit has been reached. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_subscription_limit_exceeded + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is not a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that one or more dormakaba sites associated with the connected account could not be connected. Contact dormakaba support. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- dormakaba_sites_disconnected + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is not a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the device is offline. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_offline + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the device has been removed. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_removed + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the hub is disconnected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- hub_disconnected + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the device is disconnected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_disconnected + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- empty_backup_access_code_pool + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the user is not authorized to use the August lock. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- august_lock_not_authorized + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the lock is not connected to a bridge. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- august_lock_missing_bridge + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the lock is not paired with a gateway. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- ttlock_lock_not_paired_to_gateway + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that device credentials are missing. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- missing_device_credentials + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the auxiliary heat is running. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- auxiliary_heat_running + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that a subscription is required to connect. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- subscription_required + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the Lockly lock is not connected to a Wi-Fi bridge. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- lockly_missing_wifi_bridge + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- bridge_disconnected + +--- + +**`is_bridge_error`** _Boolean_ + +Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates whether the error is related specifically to the connected account. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + +--- + +**`is_managed`** _Boolean_ + +Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). + +--- + +**`nickname`** _String_ + +Optional nickname to describe the device, settable through Seam. + +--- + +**`space_ids`** _List_ _of UUIDs_ + +IDs of the spaces the device is in. + +--- + +[**`warnings`**](#warnings) _List_ _of Objects_ + +Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. + +The specific structure of each object in this list depends on the value of its `warning_code` field. + +Variants: + + + +Indicates that the backup access code is unhealthy. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- partial_backup_access_code_pool + + + + +Indicates that there are too many backup codes. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- many_active_backup_codes + + + + +Indicates that the Wyze Lock is not connected to a gateway. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- wyze_device_missing_gateway + + + + +Indicates that a third-party integration has been detected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- third_party_integration_detected + + + + +Indicates that the Remote Unlock feature is not enabled in the settings." + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- ttlock_lock_gateway_unlocking_not_enabled + + + + +Indicates that the gateway signal is weak. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- ttlock_weak_gateway_signal + + + + +Indicates that the device is in power saving mode and may have limited functionality. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- power_saving_mode + + + + +Indicates that the temperature threshold has been exceeded. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- temperature_threshold_exceeded + + + + +Indicates that the device appears to be unresponsive. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_communication_degraded + + + + +Indicates that a scheduled maintenance window has been detected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- scheduled_maintenance_window + + + + +Indicates that the device has a flaky connection. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_has_flaky_connection + + + + +Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_office_mode + + + + +Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_privacy_mode + + + + +Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_subscription_limit_almost_reached + + + + +Indicates that a change in the reported device model has been detected for this Salto KS lock, which may occur after an IQ hub reset. Access code support may be affected. See https://help.getseam.com/articles/5098842588-salto-ks-lock-loses-access-code-support for troubleshooting steps. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_lock_access_code_support_removed + + + + +Indicates that an unknown issue occurred while syncing the state of the phone with the provider. This issue may affect the proper functioning of the phone. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- unknown_issue_with_phone + + + + +Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- lockly_time_zone_not_configured + + + + +Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- ultraloq_time_zone_unknown + + + + +Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- two_n_device_missing_timezone + + + + +Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- hub_required_for_additional_capabilities + + + + +Indicates a provider-specific issue that may affect device functionality. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- provider_issue + + + + +Indicates that the key is in a locker that does not support the access codes API. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- keynest_unsupported_locker + + + + +Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- accessory_keypad_setup_required + + + + +Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- unreliable_online_status + + + + +Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. + +**`active_access_code_count`** _Number_ + +Number of active access codes on the device when the warning was set. + +--- + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`max_active_access_code_count`** _Number_ + +Maximum number of active access codes supported by the device. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- max_access_codes_reached + + + + +Indicates that the connected Kwikset account has member-level access to this lock's home. Admin or owner access is required to manage access codes and control the lock remotely. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- insufficient_permissions + + + +--- + +**`workspace_id`** _UUID_ + +Unique identifier for the Seam workspace associated with the device. + +--- + +## device.properties + +**`akiles_metadata`** _Object_ + +Metadata for an Akiles device. + + + + + Group ID to which to add users for an Akiles device. + + + Gadget ID for an Akiles device. + + + Gadget name for an Akiles device. + + + Product name for an Akiles device. + + + +--- + +**`assa_abloy_credential_service_metadata`** _Object_ + +ASSA ABLOY Credential Service metadata for the phone. + + + + + Endpoints associated with the phone. + + + ID of the associated endpoint. + + + Indicated whether the endpoint is active. + + + Indicates whether the credential service has active endpoints associated with the phone. + + + +--- + +**`assa_abloy_vostio_metadata`** _Object_ + +Metadata for an ASSA ABLOY Vostio system. + + + + + Encoder name for an ASSA ABLOY Vostio system. + + + +--- + +**`august_metadata`** _Object_ + +Metadata for an August device. + + + + + Indicates whether an August device has a keypad. + + + House ID for an August device. + + + House name for an August device. + + + Keypad battery level for an August device. + + + Lock ID for an August device. + + + Lock name for an August device. + + + Model for an August device. + + + +--- + +**`auto_lock_delay_seconds`** _Number_ + +The delay in seconds before the lock automatically locks after being unlocked. + +--- + +**`auto_lock_enabled`** _Boolean_ + +Indicates whether automatic locking is enabled. + +--- + +**`avigilon_alta_metadata`** _Object_ + +Metadata for an Avigilon Alta system. + + + + + Entry name for an Avigilon Alta system. + + + Total count of entry relays for an Avigilon Alta system. + + + Organization name for an Avigilon Alta system. + + + Site ID for an Avigilon Alta system. + + + Site name for an Avigilon Alta system. + + + Zone ID for an Avigilon Alta system. + + + Zone name for an Avigilon Alta system. + + + +--- + +**`brivo_metadata`** _Object_ + +Metadata for a Brivo device. + + + + + Indicates whether the Brivo access point has activation (remote unlock) enabled. + + + Device name for a Brivo device. + + + +--- + +**`code_constraints`** _List_ _of Objects_ + +Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. + + +constraint_type Enum + + + - no_zeros + - cannot_start_with_12 + - no_triple_consecutive_ints + - cannot_specify_pin_code + - pin_code_matches_existing_set + - start_date_in_future + - no_ascending_or_descending_sequence + - at_least_three_unique_digits + - cannot_contain_089 + - cannot_contain_0789 + - unique_first_four_digits + - no_all_same_digits + - name_length + - name_must_be_unique + + + + + max_length + +Number + +Maximum name length constraint for access codes. + + + min_length + +Number + +Minimum name length constraint for access codes. + + + +--- + +**`controlbyweb_metadata`** _Object_ + +Metadata for a ControlByWeb device. + + + + + Device ID for a ControlByWeb device. + + + Device name for a ControlByWeb device. + + + Relay name for a ControlByWeb device. + + + +--- + +**`door_open`** _Boolean_ + +Indicates whether the door is open. + +--- + +**`dormakaba_oracode_metadata`** _Object_ + +Metadata for a dormakaba Oracode device. + + + + + Device ID for a dormakaba Oracode device. + + + Door ID for a dormakaba Oracode device. + + + Indicates whether a door is wireless for a dormakaba Oracode device. + + + Door name for a dormakaba Oracode device. + + + IANA time zone for a dormakaba Oracode device. + + + Predefined time slots for a dormakaba Oracode device. + + + Check in time for a time slot for a dormakaba Oracode device. + + + Checkout time for a time slot for a dormakaba Oracode device. + + + ID of a user level for a dormakaba Oracode device. + + + Prefix for a user level for a dormakaba Oracode device. + + + Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot. + + + Indicates whether a time slot for a dormakaba Oracode device is in biweekly mode. + + + Indicates whether a time slot for a dormakaba Oracode device is a master time slot. + + + Indicates whether a time slot for a dormakaba Oracode device is a one-shot time slot. + + + Name of a time slot for a dormakaba Oracode device. + + + Prefix for a time slot for a dormakaba Oracode device. + + + Site ID for a dormakaba Oracode device. + **Deprecated**. Previously marked as "@DEPRECATED." + + + Site name for a dormakaba Oracode device. + + + +--- + +**`ecobee_metadata`** _Object_ + +Metadata for an ecobee device. + + + + + Device name for an ecobee device. + + + Device ID for an ecobee device. + + + +--- + +**`four_suites_metadata`** _Object_ + +Metadata for a 4SUITES device. + + + + + Device ID for a 4SUITES device. + + + Device name for a 4SUITES device. + + + Reclose delay, in seconds, for a 4SUITES device. + + + +--- + +**`genie_metadata`** _Object_ + +Metadata for a Genie device. + + + + + Lock name for a Genie device. + + + Door name for a Genie device. + + + +--- + +**`has_native_entry_events`** _Boolean_ + +Indicates whether the device supports native entry events. + +--- + +**`honeywell_resideo_metadata`** _Object_ + +Metadata for a Honeywell Resideo device. + + + + + Device name for a Honeywell Resideo device. + + + Device ID for a Honeywell Resideo device. + + + +--- + +**`igloo_metadata`** _Object_ + +Metadata for an igloo device. + + + + + Bridge ID for an igloo device. + + + Device ID for an igloo device. + + + Model for an igloo device. + + + +--- + +**`igloohome_metadata`** _Object_ + +Metadata for an igloohome device. + + + + + Bridge ID for an igloohome device. + + + Bridge name for an igloohome device. + + + Device ID for an igloohome device. + + + Device name for an igloohome device. + + + Indicates whether a keypad is linked to a bridge for an igloohome device. + + + Keypad ID for an igloohome device. + + + +--- + +**`keynest_metadata`** _Object_ + +Metadata for a KeyNest device. + + + + + Address for a KeyNest device. + + + Current or last store ID for a KeyNest device. + + + Current status for a KeyNest device. + + + Current user company for a KeyNest device. + + + Current user email for a KeyNest device. + + + Current user name for a KeyNest device. + + + Current user phone number for a KeyNest device. + + + Default office ID for a KeyNest device. + + + Device name for a KeyNest device. + + + Fob ID for a KeyNest device. + + + Handover method for a KeyNest device. + + + Whether the KeyNest device has a photo. + + + Whether the key is in a locker that does not support the access codes API. + + + Key ID for a KeyNest device. + + + Key notes for a KeyNest device. + + + KeyNest app user for a KeyNest device. + + + Last movement timestamp for a KeyNest device. + + + Property ID for a KeyNest device. + + + Property postcode for a KeyNest device. + + + Status type for a KeyNest device. + + + Subscription plan for a KeyNest device. + + + +--- + +**`keypad_battery`** _Object_ + +Keypad battery status. + + + + + Keypad battery charge level. + + + +--- + +**`korelock_metadata`** _Object_ + +Metadata for a Korelock device. + + + + + Device ID for a Korelock device. + + + Device name for a Korelock device. + + + Firmware version for a Korelock device. + + + Location ID for a Korelock device. Required for timebound access codes. + + + Model code for a Korelock device. + + + Serial number for a Korelock device. + + + WiFi signal strength (0-1) for a Korelock device. + + + +--- + +**`kwikset_metadata`** _Object_ + +Metadata for a Kwikset device. + + + + + Device ID for a Kwikset device. + + + Device name for a Kwikset device. + + + Model number for a Kwikset device. + + + +--- + +**`locked`** _Boolean_ + +Indicates whether the lock is locked. + +--- + +**`lockly_metadata`** _Object_ + +Metadata for a Lockly device. + + + + + Device ID for a Lockly device. + + + Device name for a Lockly device. + + + Model for a Lockly device. + + + +--- + +**`max_active_codes_supported`** _Number_ + +Maximum number of active access codes that the device supports. + +--- + +**`minut_metadata`** _Object_ + +Metadata for a Minut device. + + + + + Device ID for a Minut device. + + + Device name for a Minut device. + + + Latest sensor values for a Minut device. + + + Latest accelerometer Z-axis reading for a Minut device. + + + Time of latest accelerometer Z-axis reading for a Minut device. + + + Value of latest accelerometer Z-axis reading for a Minut device. + + + Latest humidity reading for a Minut device. + + + Time of latest humidity reading for a Minut device. + + + Value of latest humidity reading for a Minut device. + + + Latest pressure reading for a Minut device. + + + Time of latest pressure reading for a Minut device. + + + Value of latest pressure reading for a Minut device. + + + Latest sound reading for a Minut device. + + + Time of latest sound reading for a Minut device. + + + Value of latest sound reading for a Minut device. + + + Latest temperature reading for a Minut device. + + + Time of latest temperature reading for a Minut device. + + + Value of latest temperature reading for a Minut device. + + + +--- + +**`model`** _Object_ + +Device model-related properties. + + + + + + **Deprecated**. use device.properties.model.can_connect_accessory_keypad + + + + Indicates whether the device can connect a accessory keypad. + + + Display name of the device model. + + + Indicates whether the device has a built in accessory keypad. + + + Display name that corresponds to the manufacturer-specific terminology for the device. + + + **Deprecated**. use device.can_program_offline_access_codes. + + + **Deprecated**. use device.can_program_online_access_codes. + + + +--- + +**`name`** _String_ + +Name of the device. + +**Deprecated**. use device.display_name instead + +--- + +**`nest_metadata`** _Object_ + +Metadata for a Google Nest device. + + + + + Custom device name for a Google Nest device. The device owner sets this value. + + + Device name for a Google Nest device. Google sets this value. + + + Display name for a Google Nest device. + + + Device ID for a Google Nest device. + + + +--- + +**`noiseaware_metadata`** _Object_ + +Metadata for a NoiseAware device. + + + + + Device ID for a NoiseAware device. + + + Device model for a NoiseAware device. + + + + - `indoor` + - `outdoor` + + + + + Device name for a NoiseAware device. + + + Noise level, in decibels, for a NoiseAware device. + + + Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. + + + +--- + +**`nuki_metadata`** _Object_ + +Metadata for a Nuki device. + + + + + Device ID for a Nuki device. + + + Device name for a Nuki device. + + + Indicates whether keypad 2 is paired for a Nuki device. + + + Indicates whether the keypad battery is in a critical state for a Nuki device. + + + Indicates whether the keypad is paired for a Nuki device. + + + +--- + +**`offline_access_codes_enabled`** _Boolean_ + +Indicates whether it is currently possible to use offline access codes for the device. + +**Deprecated**. use device.can_program_offline_access_codes + +--- + +**`omnitec_metadata`** _Object_ + +Metadata for an Omnitec device. + + + + + Whether the Omnitec lock has a connected gateway for remote operations. + + + Lock ID for an Omnitec device. + + + Bluetooth MAC address for an Omnitec device. + + + Lock name for an Omnitec device. + + + Static UTC offset of the Omnitec lock in milliseconds. Does not account for DST. + + + +--- + +**`online`** _Boolean_ + +Indicates whether the device is online. + +--- + +**`online_access_codes_enabled`** _Boolean_ + +Indicates whether it is currently possible to use online access codes for the device. + +**Deprecated**. use device.can_program_online_access_codes + +--- + +**`ring_metadata`** _Object_ + +Metadata for a Ring device. + + + + + Device ID for a Ring device. + + + Device name for a Ring device. + + + +--- + +**`salto_ks_metadata`** _Object_ + +Metadata for a Salto KS device. + + + + + Battery level for a Salto KS device. + + + Customer reference for a Salto KS device. + + + Indicates whether the site has a Salto KS subscription that supports custom PINs. + + + Lock ID for a Salto KS device. + + + Lock type for a Salto KS device. + + + Locked state for a Salto KS device. + + + Model for a Salto KS device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + +--- + +**`salto_metadata`** _Object_ + +Metada for a Salto device. + +**Deprecated**. Use `salto_ks_metadata ` instead. + + + + + Battery level for a Salto device. + + + Customer reference for a Salto device. + + + Lock ID for a Salto device. + + + Lock type for a Salto device. + + + Locked state for a Salto device. + + + Model for a Salto device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + +--- + +**`salto_space_credential_service_metadata`** _Object_ + +Salto Space credential service metadata for the phone. + + + + + Indicates whether the credential service has an active associated phone. + + + +--- + +**`schlage_metadata`** _Object_ + +Metadata for a Schlage device. + + + + + Device ID for a Schlage device. + + + Device name for a Schlage device. + + + Model for a Schlage device. + + + +--- + +**`seam_bridge_metadata`** _Object_ + +Metadata for Seam Bridge. + + + + + Device number for Seam Bridge. + + + Name for Seam Bridge. + + + Unlock method for Seam Bridge. + + + + - `bridge` + - `doorking` + + + + + +--- + +**`sensi_metadata`** _Object_ + +Metadata for a Sensi device. + + + + + Device ID for a Sensi device. + + + Device name for a Sensi device. + + + Set to true when the device does not support the /dual-setpoints API endpoint. + + + Product type for a Sensi device. + + + +--- + +**`smartthings_metadata`** _Object_ + +Metadata for a SmartThings device. + + + + + Device ID for a SmartThings device. + + + Device name for a SmartThings device. + + + Location ID for a SmartThings device. + + + Model for a SmartThings device. + + + +--- + +**`supported_code_lengths`** _List_ _of Numbers_ + +Supported code lengths for access codes. + +--- + +**`supports_accessory_keypad`** _Boolean_ + + + **Deprecated**. use device.properties.model.can_connect_accessory_keypad + + +--- + +**`supports_backup_access_code_pool`** _Boolean_ + +Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). + +--- + +**`supports_offline_access_codes`** _Boolean_ + +**Deprecated**. use offline_access_codes_enabled + +--- + +**`tado_metadata`** _Object_ + +Metadata for a tado° device. + + + + + Device type for a tado° device. + + + Serial number for a tado° device. + + + +--- + +**`tedee_metadata`** _Object_ + +Metadata for a Tedee device. + + + + + Bridge ID for a Tedee device. + + + Bridge name for a Tedee device. + + + Device ID for a Tedee device. + + + Device model for a Tedee device. + + + Device name for a Tedee device. + + + Keypad ID for a Tedee device. + + + Serial number for a Tedee device. + + + +--- + +**`ttlock_metadata`** _Object_ + +Metadata for a TTLock device. + + + + + Feature value for a TTLock device. + + + Features for a TTLock device. + + + Indicates whether a TTLock device supports auto-lock time configuration. + + + Indicates whether a TTLock device supports an incomplete keyboard passcode. + + + Indicates whether a TTLock device supports the lock command. + + + Indicates whether a TTLock device supports a passcode. + + + Indicates whether a TTLock device supports passcode management. + + + Indicates whether a TTLock device supports unlock via gateway. + + + Indicates whether a TTLock device supports Wi-Fi. + + + Indicates whether a TTLock device has a gateway. + + + Lock alias for a TTLock device. + + + Lock ID for a TTLock device. + + + Lock-side timezone offset in milliseconds east of UTC, as configured in the TTLock app. Source of truth for the lock's wall-clock interpretation of access code start/end times — a misconfigured value here is the typical cause of customer "codes offset by N hours" reports. Diagnostic only; Seam does not convert times based on this value. + + + Wireless keypads for a TTLock device. + + + ID for a wireless keypad for a TTLock device. + + + Name for a wireless keypad for a TTLock device. + + + +--- + +**`two_n_metadata`** _Object_ + +Metadata for a 2N device. + + + + + Device ID for a 2N device. + + + Device name for a 2N device. + + + +--- + +**`ultraloq_metadata`** _Object_ + +Metadata for an Ultraloq device. + + + + + Device ID for an Ultraloq device. + + + Device name for an Ultraloq device. + + + Device type for an Ultraloq device. + + + IANA timezone for the Ultraloq device. + + + +--- + +**`visionline_metadata`** _Object_ + +Metadata for an ASSA ABLOY Visionline system. + + + + + Encoder ID for an ASSA ABLOY Visionline system. + + + +--- + +**`wyze_metadata`** _Object_ + +Metadata for a Wyze device. + + + + + Device ID for a Wyze device. + + + Device information model for a Wyze device. + + + Device name for a Wyze device. + + + Keypad UUID for a Wyze device. + + + Locker status (hardlock) for a Wyze device. + + + Product model for a Wyze device. + + + Product name for a Wyze device. + + + Product type for a Wyze device. + + + +--- + +## Errors + +**`ttlock_lock_not_paired_to_gateway`** + +Indicates that the lock is not paired with a gateway. + +--- + +**`salto_ks_subscription_limit_exceeded`** + +Indicates that the Salto site user limit has been reached. + +--- + +**`lockly_missing_wifi_bridge`** + +Indicates that the Lockly lock is not connected to a Wi-Fi bridge. + +--- + +**`dormakaba_sites_disconnected`** + +Indicates that one or more dormakaba sites associated with the connected account could not be connected. Contact dormakaba support. + +--- + +**`august_lock_not_authorized`** + +Indicates that the user is not authorized to use the August lock. + +--- + +**`august_lock_missing_bridge`** + +Indicates that the lock is not connected to a bridge. + +--- + +**`empty_backup_access_code_pool`** + +Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. + +--- + +**`subscription_required`** + +Indicates that a subscription is required to connect. + +--- + +**`missing_device_credentials`** + +Indicates that device credentials are missing. + +--- + +**`hub_disconnected`** + +Indicates that the hub is disconnected. + +--- + +**`device_removed`** + +Indicates that the device has been removed. + +--- + +**`device_offline`** + +Indicates that the device is offline. + +--- + +**`device_disconnected`** + +Indicates that the device is disconnected. + +--- + +**`account_disconnected`** + +Indicates that the account is disconnected. + +--- + +**`bridge_disconnected`** + +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). + +--- + +## Warnings + +**`accessory_keypad_setup_required`** + +Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. + +--- + +**`device_communication_degraded`** + +Indicates that the device appears to be unresponsive. + +--- + +**`device_has_flaky_connection`** + +Indicates that the device has a flaky connection. + +--- + +**`hub_required_for_additional_capabilities`** + +Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. + +--- + +**`insufficient_permissions`** + +Indicates that the connected Kwikset account has member-level access to this lock's home. Admin or owner access is required to manage access codes and control the lock remotely. + +--- + +**`keynest_unsupported_locker`** + +Indicates that the key is in a locker that does not support the access codes API. + +--- + +**`lockly_time_zone_not_configured`** + +Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. + +--- + +**`many_active_backup_codes`** + +Indicates that there are too many backup codes. + +--- + +**`max_access_codes_reached`** + +Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. + +--- + +**`partial_backup_access_code_pool`** + +Indicates that the backup access code is unhealthy. + +--- + +**`power_saving_mode`** + +Indicates that the device is in power saving mode and may have limited functionality. + +--- + +**`provider_issue`** + +Indicates a provider-specific issue that may affect device functionality. + +--- + +**`salto_ks_lock_access_code_support_removed`** + +Indicates that a change in the reported device model has been detected for this Salto KS lock, which may occur after an IQ hub reset. Access code support may be affected. See https://help.getseam.com/articles/5098842588-salto-ks-lock-loses-access-code-support for troubleshooting steps. + +--- + +**`salto_ks_office_mode`** + +Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. + +--- + +**`salto_ks_privacy_mode`** + +Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. + +--- + +**`salto_ks_subscription_limit_almost_reached`** + +Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. + +--- + +**`scheduled_maintenance_window`** + +Indicates that a scheduled maintenance window has been detected. + +--- + +**`third_party_integration_detected`** + +Indicates that a third-party integration has been detected. + +--- + +**`ttlock_lock_gateway_unlocking_not_enabled`** + +Indicates that the Remote Unlock feature is not enabled in the settings." + +--- + +**`ttlock_weak_gateway_signal`** + +Indicates that the gateway signal is weak. + +--- + +**`two_n_device_missing_timezone`** + +Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. + +--- + +**`ultraloq_time_zone_unknown`** + +Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. + +--- + +**`unreliable_online_status`** + +Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. + +--- + +**`wyze_device_missing_gateway`** + +Indicates that the Wyze Lock is not connected to a gateway. + +--- + +## Endpoints + +[**`/locks/configure_auto_lock`**](./configure_auto_lock) + +Configures the auto-lock setting for a specified [lock](https://docs.seam.co/low-level-apis/smart-locks). + +[**`/locks/get`**](./get) + +Returns a specified [lock](https://docs.seam.co/low-level-apis/smart-locks). + +[**`/locks/list`**](./list) + +Returns a list of all [locks](https://docs.seam.co/low-level-apis/smart-locks). + +[**`/locks/lock_door`**](./lock_door) + +Locks a [lock](https://docs.seam.co/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](https://docs.seam.co/low-level-apis/smart-locks/lock-and-unlock). + +[**`/locks/unlock_door`**](./unlock_door) + +Unlocks a [lock](https://docs.seam.co/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](https://docs.seam.co/low-level-apis/smart-locks/lock-and-unlock). diff --git a/mintlify-docs/api/thermostats/object.mdx b/mintlify-docs/api/thermostats/object.mdx index 288d1f1d8..cc9a32427 100644 --- a/mintlify-docs/api/thermostats/object.mdx +++ b/mintlify-docs/api/thermostats/object.mdx @@ -5,6 +5,7 @@ description: 'Learn how the device object represents a thermostat connected to S ## The device Object for Thermostats + Represents a [thermostat](/capability-guides/thermostats). You can use the Seam API to perform the following management and monitoring actions for thermostats: @@ -17,6 +18,181 @@ You can use the Seam API to perform the following management and monitoring acti The Seam API represents a thermostat as a `device` resource that includes both basic device properties and thermostat-specific properties. +--- + + + + +A thermostat device resource. + +```json +{ + "can_hvac_cool": true, + "can_hvac_heat": true, + "can_hvac_heat_cool": true, + "can_turn_off_hvac": true, + "capabilities_supported": ["thermostat"], + "connected_account_id": "a0b1c2d3-e4f5-6a7b-8c9d-0e1f2a3b4c5d", + "created_at": "2024-10-03T22:12:15.666Z", + "custom_metadata": { "id": "internalId1" }, + "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", + "device_type": "ecobee_thermostat", + "display_name": "Living Room", + "errors": [], + "is_managed": true, + "space_ids": [], + "location": { + "location_name": "2948 20th St, San Francisco, CA, 94110, US", + "timezone": "America/Los_Angeles" + }, + "nickname": "Living Room", + "properties": { + "active_climate_preset": { + "can_delete": true, + "can_edit": true, + "climate_preset_key": "sleep", + "cooling_set_point_celsius": 23.88888888888889, + "display_name": "Sleep", + "fan_mode_setting": "auto", + "heating_set_point_celsius": 17.77777777777778, + "hvac_mode_setting": "heat_cool", + "manual_override_allowed": true + }, + "appearance": { "name": "Living Room" }, + "available_climate_presets": [ + { + "climate_preset_key": "sleep", + "can_edit": true, + "can_delete": true, + "can_use_with_thermostat_daily_programs": false, + "name": "Sleep", + "display_name": "Sleep", + "fan_mode_setting": "auto", + "hvac_mode_setting": "heat_cool", + "manual_override_allowed": true, + "cooling_set_point_celsius": 23.88888888888889, + "heating_set_point_celsius": 17.77777777777778, + "cooling_set_point_fahrenheit": 75, + "heating_set_point_fahrenheit": 64 + }, + { + "climate_preset_key": "home", + "can_edit": true, + "can_delete": true, + "can_use_with_thermostat_daily_programs": false, + "name": "Home", + "display_name": "Home", + "fan_mode_setting": "auto", + "hvac_mode_setting": "heat_cool", + "manual_override_allowed": false, + "cooling_set_point_celsius": 23.88888888888889, + "heating_set_point_celsius": 17.77777777777778, + "cooling_set_point_fahrenheit": 75, + "heating_set_point_fahrenheit": 64 + }, + { + "climate_preset_key": "work", + "can_edit": true, + "can_delete": true, + "can_use_with_thermostat_daily_programs": false, + "name": "Work", + "display_name": "Work", + "fan_mode_setting": "auto", + "hvac_mode_setting": "heat_cool", + "manual_override_allowed": false, + "cooling_set_point_celsius": 23.88888888888889, + "heating_set_point_celsius": 17.77777777777778, + "cooling_set_point_fahrenheit": 75, + "heating_set_point_fahrenheit": 64 + } + ], + "available_fan_mode_settings": ["auto", "on"], + "available_hvac_mode_settings": ["cool", "heat", "heat_cool", "off"], + "current_climate_setting": { + "display_name": "Manual Setting", + "fan_mode_setting": "auto", + "heating_set_point_celsius": 25, + "heating_set_point_fahrenheit": 77, + "hvac_mode_setting": "heat", + "manual_override_allowed": true + }, + "ecobee_metadata": { + "device_name": "Living Room", + "ecobee_device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0" + }, + "fallback_climate_preset_key": "eco", + "fan_mode_setting": "auto", + "has_direct_power": true, + "image_alt_text": "Ecobee 3 Lite Thermostat", + "image_url": "https://connect.getseam.com/_next/image?url=https://connect.getseam.com/assets/images/devices/ecobee_3-lite_front.png&q=75&w=128", + "is_cooling": false, + "is_fan_running": false, + "is_heating": false, + "is_temporary_manual_override_active": false, + "manufacturer": "ecobee", + "max_cooling_set_point_celsius": 33.333333333333336, + "max_cooling_set_point_fahrenheit": 92, + "max_heating_set_point_celsius": 26.11111111111111, + "max_heating_set_point_fahrenheit": 79, + "min_cooling_set_point_celsius": 18.333333333333336, + "min_cooling_set_point_fahrenheit": 65, + "min_heating_cooling_delta_celsius": 2.7777777777777777, + "min_heating_cooling_delta_fahrenheit": 5, + "min_heating_set_point_celsius": 7.222222222222222, + "min_heating_set_point_fahrenheit": 45, + "model": { + "display_name": "Thermostat", + "manufacturer_display_name": "Ecobee" + }, + "name": "Living Room", + "online": true, + "relative_humidity": 0.36, + "temperature_celsius": 21.11111111111111, + "temperature_fahrenheit": 70, + "temperature_threshold": { + "lower_limit_celsius": 16.66666666666667, + "lower_limit_fahrenheit": 62, + "upper_limit_celsius": 26.66666666666667, + "upper_limit_fahrenheit": 80 + }, + "thermostat_daily_programs": [ + { + "thermostat_daily_program_id": "1a2b3c4d-5e6f-7890-1234-56789abcdef1", + "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", + "name": "Weekday Program", + "periods": [ + { "starts_at_time": "00:00:00", "climate_preset_key": "sleep" }, + { "starts_at_time": "07:00:00", "climate_preset_key": "home" }, + { "starts_at_time": "09:00:00", "climate_preset_key": "work" }, + { "starts_at_time": "18:00:00", "climate_preset_key": "home" }, + { "starts_at_time": "22:00:00", "climate_preset_key": "sleep" } + ], + "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab", + "created_at": "2025-05-30T04:01:25.455Z" + }, + { + "thermostat_daily_program_id": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f90", + "device_id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0", + "name": "Weekend Program", + "periods": [ + { "starts_at_time": "00:00:00", "climate_preset_key": "sleep" }, + { "starts_at_time": "08:00:00", "climate_preset_key": "home" }, + { "starts_at_time": "23:00:00", "climate_preset_key": "sleep" } + ], + "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab", + "created_at": "2025-05-30T04:02:19.952Z" + } + ], + "thermostat_weekly_program": null + }, + "warnings": [], + "workspace_id": "9f8e7d6c-5b4a-3c2d-1e0f-9876543210ab" +} +``` + + + + ```json Thermostat Device @@ -228,1682 +404,3351 @@ The Seam API represents a thermostat as a `device` resource that includes both b ## Properties - - Indicates whether the lock supports configuring automatic locking. - +**`can_configure_auto_lock`** _Boolean_ - - Indicates whether the thermostat supports cooling. - +Indicates whether the lock supports configuring automatic locking. - - Indicates whether the thermostat supports heating. - +--- - - Indicates whether the thermostat supports simultaneous heating and cooling. - +**`can_hvac_cool`** _Boolean_ - - Indicates whether the device supports programming offline access codes. - +Indicates whether the thermostat supports cooling. - - Indicates whether the device supports programming online access codes. - +--- - - Indicates whether the thermostat supports different climate programs for each day of the week. - +**`can_hvac_heat`** _Boolean_ - - Indicates whether the thermostat supports a single climate program applied to every day. - +Indicates whether the thermostat supports heating. - - Indicates whether the thermostat supports weekday/weekend climate programs. - +--- - - Indicates whether the device supports remote locking. - +**`can_hvac_heat_cool`** _Boolean_ - - Indicates whether the device supports remote unlocking. - +Indicates whether the thermostat supports simultaneous heating and cooling. - - Indicates whether the thermostat supports running climate programs. - +--- - - Indicates whether the device supports simulating connection in a sandbox. - +**`can_program_offline_access_codes`** _Boolean_ - - Indicates whether the device supports simulating disconnection in a sandbox. - +Indicates whether the device supports programming offline access codes. - - Indicates whether the hub supports simulating connection in a sandbox. - +--- - - Indicates whether the hub supports simulating disconnection in a sandbox. - +**`can_program_online_access_codes`** _Boolean_ - - Indicates whether the device supports simulating a paid subscription in a sandbox. - +Indicates whether the device supports programming online access codes. - - Indicates whether the device supports simulating removal in a sandbox. - +--- - - Indicates whether the thermostat can be turned off. - +**`can_program_thermostat_programs_as_different_each_day`** _Boolean_ - - Indicates whether the lock supports unlocking with an access code. - +Indicates whether the thermostat supports different climate programs for each day of the week. - - Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). - +--- - - Unique identifier for the account associated with the device. - +**`can_program_thermostat_programs_as_same_each_day`** _Boolean_ - - Date and time at which the device object was created. - +Indicates whether the thermostat supports a single climate program applied to every day. - - Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. - +--- - - ID of the device. - +**`can_program_thermostat_programs_as_weekday_weekend`** _Boolean_ - - Type of the device. - +Indicates whether the thermostat supports weekday/weekend climate programs. - - Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. - - - - Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. - - - - Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). - - - - Optional nickname to describe the device, settable through Seam. - - - - Properties of the device. - - - Accessory keypad properties and state. - - - Keypad battery properties. - - - The level. - - - - - Indicates if an accessory keypad is connected to the device. - - - - - Appearance-related properties, as reported by the device. - - - Name of the device as seen from the provider API and application, not settable through Seam. - - - - - Represents the current status of the battery charge level. - - - Battery charge level as a value between 0 and 1, inclusive. - - - Represents the current status of the battery charge level. Values are `critical`, which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; `low`, which signifies that the battery is under the preferred threshold and should be charged soon; `good`, which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and `full`, which represents a battery that is fully charged, providing the maximum duration of usage. - - - - - Indicates the battery level of the device as a decimal value between 0 and 1, inclusive. - - - Array of noise threshold IDs that are currently triggering. - - - Indicates whether the device has direct power. - - - Alt text for the device image. - - - Image URL for the device. - - - Manufacturer of the device. When a device, such as a smart lock, is connected through a smart hub, the manufacturer of the device might be different from that of the smart hub. - - - Device model-related properties. - - - The accessory keypad supported. - - - Indicates whether the device can connect a accessory keypad. - - - Display name of the device model. - - - Indicates whether the device has a built in accessory keypad. - - - Display name that corresponds to the manufacturer-specific terminology for the device. - - - The offline access codes supported. - - - The online access codes supported. - - - - - Name of the device. - - - Indicates current noise level in decibels, if the device supports noise detection. - - - Indicates whether it is currently possible to use offline access codes for the device. - - - Indicates whether the device is online. - - - Indicates whether it is currently possible to use online access codes for the device. - - - Serial number of the device. - - - The supports accessory keypad. - - - The supports offline access codes. - - - ASSA ABLOY Credential Service metadata for the phone. - - - Endpoints associated with the phone. - - - Indicates whether the credential service has active endpoints associated with the phone. - - - - - Salto Space credential service metadata for the phone. - - - Indicates whether the credential service has an active associated phone. - - - - - Metadata for an Akiles device. - - - Group ID to which to add users for an Akiles device. - - - Gadget ID for an Akiles device. - - - Gadget name for an Akiles device. - - - Product name for an Akiles device. - - - - - Metadata for an ASSA ABLOY Vostio system. - - - Encoder name for an ASSA ABLOY Vostio system. - - - - - Metadata for an August device. - - - Indicates whether an August device has a keypad. - - - House ID for an August device. - - - House name for an August device. - - - Keypad battery level for an August device. - - - Lock ID for an August device. - - - Lock name for an August device. - - - Model for an August device. - - - - - Metadata for an Avigilon Alta system. - - - Entry name for an Avigilon Alta system. - - - Total count of entry relays for an Avigilon Alta system. - - - Organization name for an Avigilon Alta system. - - - Site ID for an Avigilon Alta system. - - - Site name for an Avigilon Alta system. - - - Zone ID for an Avigilon Alta system. - - - Zone name for an Avigilon Alta system. - - - - - Metadata for a Brivo device. - - - Indicates whether the Brivo access point has activation (remote unlock) enabled. - - - Device name for a Brivo device. - - - - - Metadata for a ControlByWeb device. - - - Device ID for a ControlByWeb device. - - - Device name for a ControlByWeb device. - - - Relay name for a ControlByWeb device. - - - - - Metadata for a dormakaba Oracode device. - - - Device ID for a dormakaba Oracode device. - - - Door ID for a dormakaba Oracode device. - - - Indicates whether a door is wireless for a dormakaba Oracode device. - - - Door name for a dormakaba Oracode device. - - - IANA time zone for a dormakaba Oracode device. - - - Predefined time slots for a dormakaba Oracode device. - - - Site ID for a dormakaba Oracode device. - - - Site name for a dormakaba Oracode device. - - - - - Metadata for an ecobee device. - - - Device name for an ecobee device. - - - Device ID for an ecobee device. - - - - - Metadata for a 4SUITES device. - - - Device ID for a 4SUITES device. - - - Device name for a 4SUITES device. - - - Reclose delay, in seconds, for a 4SUITES device. - - - - - Metadata for a Genie device. - - - Lock name for a Genie device. - - - Door name for a Genie device. - - - - - Metadata for a Honeywell Resideo device. - - - Device name for a Honeywell Resideo device. - - - Device ID for a Honeywell Resideo device. - - - - - Metadata for an igloo device. - - - Bridge ID for an igloo device. - - - Device ID for an igloo device. - - - Model for an igloo device. - - - - - Metadata for an igloohome device. - - - Bridge ID for an igloohome device. - - - Bridge name for an igloohome device. - - - Device ID for an igloohome device. - - - Device name for an igloohome device. - - - Indicates whether a keypad is linked to a bridge for an igloohome device. - - - Keypad ID for an igloohome device. - - - - - Metadata for a KeyNest device. - - - Address for a KeyNest device. - - - Current or last store ID for a KeyNest device. - - - Current status for a KeyNest device. - - - Current user company for a KeyNest device. - - - Current user email for a KeyNest device. - - - Current user name for a KeyNest device. - - - Current user phone number for a KeyNest device. - - - Default office ID for a KeyNest device. - - - Device name for a KeyNest device. - - - Fob ID for a KeyNest device. - - - Handover method for a KeyNest device. - - - Whether the KeyNest device has a photo. - - - Whether the key is in a locker that does not support the access codes API. - - - Key ID for a KeyNest device. - - - Key notes for a KeyNest device. - - - KeyNest app user for a KeyNest device. - - - Last movement timestamp for a KeyNest device. - - - Property ID for a KeyNest device. - - - Property postcode for a KeyNest device. - - - Status type for a KeyNest device. - - - Subscription plan for a KeyNest device. - - - - - Metadata for a Korelock device. - - - Device ID for a Korelock device. - - - Device name for a Korelock device. - - - Firmware version for a Korelock device. - - - Location ID for a Korelock device. Required for timebound access codes. - - - Model code for a Korelock device. - - - Serial number for a Korelock device. - - - WiFi signal strength (0-1) for a Korelock device. - - - - - Metadata for a Kwikset device. - - - Device ID for a Kwikset device. - - - Device name for a Kwikset device. - - - Model number for a Kwikset device. - - - - - Metadata for a Lockly device. - - - Device ID for a Lockly device. - - - Device name for a Lockly device. - - - Model for a Lockly device. - - - - - Metadata for a Minut device. - - - Device ID for a Minut device. - - - Device name for a Minut device. - - - Latest sensor values for a Minut device. - - - Latest accelerometer Z-axis reading for a Minut device. - - - Time of latest accelerometer Z-axis reading for a Minut device. - - - Value of latest accelerometer Z-axis reading for a Minut device. - - - - - Latest humidity reading for a Minut device. - - - Time of latest humidity reading for a Minut device. - - - Value of latest humidity reading for a Minut device. - - - - - Latest pressure reading for a Minut device. - - - Time of latest pressure reading for a Minut device. - - - Value of latest pressure reading for a Minut device. - - - - - Latest sound reading for a Minut device. - - - Time of latest sound reading for a Minut device. - - - Value of latest sound reading for a Minut device. - - - - - Latest temperature reading for a Minut device. - - - Time of latest temperature reading for a Minut device. - - - Value of latest temperature reading for a Minut device. - - - - - - - - - Metadata for a Google Nest device. - - - Custom device name for a Google Nest device. The device owner sets this value. - - - Device name for a Google Nest device. Google sets this value. - - - Display name for a Google Nest device. - - - Device ID for a Google Nest device. - - - - - Metadata for a NoiseAware device. - - - Device ID for a NoiseAware device. - - - Device model for a NoiseAware device. - - - Device name for a NoiseAware device. - - - Noise level, in decibels, for a NoiseAware device. - - - Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. - - - - - Metadata for a Nuki device. - - - Device ID for a Nuki device. - - - Device name for a Nuki device. - - - Indicates whether keypad 2 is paired for a Nuki device. - - - Indicates whether the keypad battery is in a critical state for a Nuki device. - - - Indicates whether the keypad is paired for a Nuki device. - - - - - Metadata for an Omnitec device. - - - Whether the Omnitec lock has a connected gateway for remote operations. - - - Lock ID for an Omnitec device. - - - Bluetooth MAC address for an Omnitec device. - - - Lock name for an Omnitec device. - - - Static UTC offset of the Omnitec lock in milliseconds. Does not account for DST. - - - - - Metadata for a Ring device. - - - Device ID for a Ring device. - - - Device name for a Ring device. - - - - - Metadata for a Salto KS device. - - - Battery level for a Salto KS device. - - - Customer reference for a Salto KS device. - - - Indicates whether the site has a Salto KS subscription that supports custom PINs. - - - Lock ID for a Salto KS device. - - - Lock type for a Salto KS device. - - - Locked state for a Salto KS device. - - - Model for a Salto KS device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - - - Metada for a Salto device. - - - Battery level for a Salto device. - - - Customer reference for a Salto device. - - - Lock ID for a Salto device. - - - Lock type for a Salto device. - - - Locked state for a Salto device. - - - Model for a Salto device. - - - Site ID for the Salto KS site to which the device belongs. - - - Site name for the Salto KS site to which the device belongs. - - - - - Metadata for a Schlage device. - - - Device ID for a Schlage device. - - - Device name for a Schlage device. - - - Model for a Schlage device. - - - - - Metadata for Seam Bridge. - - - Device number for Seam Bridge. - - - Name for Seam Bridge. - - - Unlock method for Seam Bridge. - - - - - Metadata for a Sensi device. - - - Device ID for a Sensi device. - - - Device name for a Sensi device. - - - Set to true when the device does not support the /dual-setpoints API endpoint. - - - Product type for a Sensi device. - - - - - Metadata for a SmartThings device. - - - Device ID for a SmartThings device. - - - Device name for a SmartThings device. - - - Location ID for a SmartThings device. - - - Model for a SmartThings device. - - - - - Metadata for a tado° device. - - - Device type for a tado° device. - - - Serial number for a tado° device. - - - - - Metadata for a Tedee device. - - - Bridge ID for a Tedee device. - - - Bridge name for a Tedee device. - - - Device ID for a Tedee device. - - - Device model for a Tedee device. - - - Device name for a Tedee device. - - - Keypad ID for a Tedee device. - - - Serial number for a Tedee device. - - - - - Metadata for a TTLock device. - - - Feature value for a TTLock device. - - - Features for a TTLock device. - - - Indicates whether a TTLock device supports auto-lock time configuration. - - - Indicates whether a TTLock device supports an incomplete keyboard passcode. - - - Indicates whether a TTLock device supports the lock command. - - - Indicates whether a TTLock device supports a passcode. - - - Indicates whether a TTLock device supports passcode management. - - - Indicates whether a TTLock device supports unlock via gateway. - - - Indicates whether a TTLock device supports Wi-Fi. - - - - - Indicates whether a TTLock device has a gateway. - - - Lock alias for a TTLock device. - - - Lock ID for a TTLock device. - - - Lock-side timezone offset in milliseconds east of UTC, as configured in the TTLock app. Source of truth for the lock's wall-clock interpretation of access code start/end times — a misconfigured value here is the typical cause of customer "codes offset by N hours" reports. Diagnostic only; Seam does not convert times based on this value. - - - Wireless keypads for a TTLock device. - - - - - Metadata for a 2N device. - - - Device ID for a 2N device. - - - Device name for a 2N device. - - - - - Metadata for an Ultraloq device. - - - Device ID for an Ultraloq device. - - - Device name for an Ultraloq device. - - - Device type for an Ultraloq device. - - - IANA timezone for the Ultraloq device. - - - - - Metadata for an ASSA ABLOY Visionline system. - - - Encoder ID for an ASSA ABLOY Visionline system. - - - - - Metadata for a Wyze device. - - - Device ID for a Wyze device. - - - Device information model for a Wyze device. - - - Device name for a Wyze device. - - - Keypad UUID for a Wyze device. - - - Locker status (hardlock) for a Wyze device. - - - Product model for a Wyze device. - - - Product name for a Wyze device. - - - Product type for a Wyze device. - - - - - The delay in seconds before the lock automatically locks after being unlocked. - - - Indicates whether automatic locking is enabled. - - - Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. - - - Indicates whether the door is open. - - - Indicates whether the device supports native entry events. - - - Keypad battery status. - - - Keypad battery charge level. - - - - - Indicates whether the lock is locked. - - - Maximum number of active access codes that the device supports. - - - Supported code lengths for access codes. - - - Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). - - - Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - - - ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. - - - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - - - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - ID of the workspace that contains the thermostat schedule. - - - - - ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". - - - Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. - - - Fan mode settings that the thermostat supports. - - - HVAC mode settings that the thermostat supports. - - - Current climate setting. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - Metadata specific to the Ecobee climate, if applicable. - - - Reference to the Ecobee climate, if applicable. - - - Indicates if the climate preset is optimized by Ecobee. - - - Indicates whether the climate preset is owned by the user or the system. - - - - - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - - - The default climate setting. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - Metadata specific to the Ecobee climate, if applicable. - - - Reference to the Ecobee climate, if applicable. - - - Indicates if the climate preset is optimized by Ecobee. - - - Indicates whether the climate preset is owned by the user or the system. - - - - - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - - - Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. - - - The fan mode setting. - - - Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. - - - Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. - - - Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. - - - Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. - - - Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - - - Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - - - Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - - - Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. - - - Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. - - - Maximum number of climate presets that the thermostat can support for weekly programming. - - - Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - - - Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - - - Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. - - - Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. - - - Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - - - Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. - - - Reported relative humidity, as a value between 0 and 1, inclusive. - - - Reported temperature in °C. - - - Reported temperature in °F. - - - Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - - - Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. - - - Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - - - Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - - - Date and time at which the thermostat weekly program was created. - - - ID of the thermostat daily program to run on Fridays. - - - ID of the thermostat daily program to run on Mondays. - - - ID of the thermostat daily program to run on Saturdays. - - - ID of the thermostat daily program to run on Sundays. - - - ID of the thermostat daily program to run on Thursdays. - - - ID of the thermostat daily program to run on Tuesdays. - - - ID of the thermostat daily program to run on Wednesdays. - - - - - - - - IDs of the spaces the device is in. - - - - Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. - - - - Unique identifier for the Seam workspace associated with the device. - - -## Thermostats - - - Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - - - ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. - - - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - - - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - - - ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - ID of the workspace that contains the thermostat schedule. - - - - - - ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - - - - Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". - - - - Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. - - - - Fan mode settings that the thermostat supports. - - - - HVAC mode settings that the thermostat supports. - - - - Current climate setting. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - Metadata specific to the Ecobee climate, if applicable. - - - Reference to the Ecobee climate, if applicable. - - - Indicates if the climate preset is optimized by Ecobee. - - - Indicates whether the climate preset is owned by the user or the system. - - - - - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - - - - The default climate setting. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - - - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - - - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - - - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - Metadata specific to the Ecobee climate, if applicable. - - - Reference to the Ecobee climate, if applicable. - - - Indicates if the climate preset is optimized by Ecobee. - - - Indicates whether the climate preset is owned by the user or the system. - - - - - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - - - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - - - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - - - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - - - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - - - - - - Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. - - - - The fan mode setting. - +--- - - Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. - +**`can_remotely_lock`** _Boolean_ - - Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. - +Indicates whether the device supports remote locking. - - Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. - +--- - - Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. - +**`can_remotely_unlock`** _Boolean_ - - Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - +Indicates whether the device supports remote unlocking. - - Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - +--- - - Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - +**`can_run_thermostat_programs`** _Boolean_ - - Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. - +Indicates whether the thermostat supports running climate programs. - - Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. - +--- - - Maximum number of climate presets that the thermostat can support for weekly programming. - +**`can_simulate_connection`** _Boolean_ - - Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - +Indicates whether the device supports simulating connection in a sandbox. - - Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - +--- - - Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. - +**`can_simulate_disconnection`** _Boolean_ - - Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. - +Indicates whether the device supports simulating disconnection in a sandbox. - - Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - +--- - - Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. - +**`can_simulate_hub_connection`** _Boolean_ - - Reported relative humidity, as a value between 0 and 1, inclusive. - +Indicates whether the hub supports simulating connection in a sandbox. - - Reported temperature in °C. - +--- - - Reported temperature in °F. - +**`can_simulate_hub_disconnection`** _Boolean_ - - Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - - - +Indicates whether the hub supports simulating disconnection in a sandbox. - - Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. - +--- - - Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - +**`can_simulate_paid_subscription`** _Boolean_ - - Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - - - Date and time at which the thermostat weekly program was created. - - - ID of the thermostat daily program to run on Fridays. - - - ID of the thermostat daily program to run on Mondays. - - - ID of the thermostat daily program to run on Saturdays. - - - ID of the thermostat daily program to run on Sundays. - - - ID of the thermostat daily program to run on Thursdays. - - - ID of the thermostat daily program to run on Tuesdays. - - - ID of the thermostat daily program to run on Wednesdays. - - - +Indicates whether the device supports simulating a paid subscription in a sandbox. + +--- + +**`can_simulate_removal`** _Boolean_ + +Indicates whether the device supports simulating removal in a sandbox. + +--- + +**`can_turn_off_hvac`** _Boolean_ + +Indicates whether the thermostat can be turned off. + +--- + +**`can_unlock_with_code`** _Boolean_ + +Indicates whether the lock supports unlocking with an access code. + +--- + +**`capabilities_supported`** _List_ _of Enums_ + +Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). + +--- + +**`connected_account_id`** _UUID_ + +Unique identifier for the account associated with the device. + +--- + +**`created_at`** _Datetime_ + +Date and time at which the device object was created. + +--- + +**`custom_metadata`** _Record_ + +Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + +--- + +**`device_id`** _UUID_ + +ID of the device. + +--- + +**`device_type`** _Enum_ + +Type of the device. + + + +- akuvox_lock +- august_lock +- brivo_access_point +- butterflymx_panel +- avigilon_alta_entry +- doorking_lock +- genie_door +- igloo_lock +- linear_lock +- lockly_lock +- kwikset_lock +- nuki_lock +- salto_lock +- schlage_lock +- smartthings_lock +- wyze_lock +- yale_lock +- two_n_intercom +- controlbyweb_device +- ttlock_lock +- igloohome_lock +- four_suites_door +- dormakaba_oracode_door +- tedee_lock +- akiles_lock +- ultraloq_lock +- keyincode_lock +- omnitec_lock +- keynest_key +- noiseaware_activity_zone +- minut_sensor +- ecobee_thermostat +- nest_thermostat +- honeywell_resideo_thermostat +- tado_thermostat +- sensi_thermostat +- smartthings_thermostat +- ios_phone +- android_phone +- ring_camera + + +--- + +**`display_name`** _String_ + +Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. + +--- + +[**`errors`**](#errors) _List_ _of Objects_ + +Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. + +The specific structure of each object in this list depends on the value of its `error_code` field. + +Variants: + + + +Indicates that the account is disconnected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- account_disconnected + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is not a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the Salto site user limit has been reached. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_subscription_limit_exceeded + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is not a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that one or more dormakaba sites associated with the connected account could not be connected. Contact dormakaba support. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- dormakaba_sites_disconnected + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is not a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the device is offline. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_offline + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the device has been removed. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_removed + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the hub is disconnected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- hub_disconnected + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the device is disconnected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_disconnected + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- empty_backup_access_code_pool + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the user is not authorized to use the August lock. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- august_lock_not_authorized + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the lock is not connected to a bridge. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- august_lock_missing_bridge + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the lock is not paired with a gateway. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- ttlock_lock_not_paired_to_gateway + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that device credentials are missing. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- missing_device_credentials + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the auxiliary heat is running. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- auxiliary_heat_running + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that a subscription is required to connect. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- subscription_required + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the Lockly lock is not connected to a Wi-Fi bridge. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- lockly_missing_wifi_bridge + +--- + +**`is_device_error`** _Boolean_ + +Indicates that the error is a device error. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + + +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). + +**`created_at`** _Datetime_ + +Date and time at which Seam created the error. + +--- + +**`error_code`** _Enum_ + +Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + +Enum values: + +- bridge_disconnected + +--- + +**`is_bridge_error`** _Boolean_ + +Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + +--- + +**`is_connected_account_error`** _Boolean_ + +Indicates whether the error is related specifically to the connected account. + +--- + +**`message`** _String_ + +Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + +--- + +**`is_managed`** _Boolean_ + +Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). + +--- + +**`nickname`** _String_ + +Optional nickname to describe the device, settable through Seam. + +--- + +**`space_ids`** _List_ _of UUIDs_ + +IDs of the spaces the device is in. + +--- + +[**`warnings`**](#warnings) _List_ _of Objects_ + +Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. + +The specific structure of each object in this list depends on the value of its `warning_code` field. + +Variants: + + + +Indicates that the backup access code is unhealthy. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- partial_backup_access_code_pool + + + + +Indicates that there are too many backup codes. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- many_active_backup_codes + + + + +Indicates that the Wyze Lock is not connected to a gateway. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- wyze_device_missing_gateway + + + + +Indicates that a third-party integration has been detected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- third_party_integration_detected + + + + +Indicates that the Remote Unlock feature is not enabled in the settings." + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- ttlock_lock_gateway_unlocking_not_enabled + + + + +Indicates that the gateway signal is weak. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- ttlock_weak_gateway_signal + + + + +Indicates that the device is in power saving mode and may have limited functionality. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- power_saving_mode + + + + +Indicates that the temperature threshold has been exceeded. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- temperature_threshold_exceeded + + + + +Indicates that the device appears to be unresponsive. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_communication_degraded + + + + +Indicates that a scheduled maintenance window has been detected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- scheduled_maintenance_window + + + + +Indicates that the device has a flaky connection. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- device_has_flaky_connection + + + + +Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_office_mode + + + + +Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_privacy_mode + + + + +Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_subscription_limit_almost_reached + + + + +Indicates that a change in the reported device model has been detected for this Salto KS lock, which may occur after an IQ hub reset. Access code support may be affected. See https://help.getseam.com/articles/5098842588-salto-ks-lock-loses-access-code-support for troubleshooting steps. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- salto_ks_lock_access_code_support_removed + + + + +Indicates that an unknown issue occurred while syncing the state of the phone with the provider. This issue may affect the proper functioning of the phone. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- unknown_issue_with_phone + + + + +Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- lockly_time_zone_not_configured + + + + +Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- ultraloq_time_zone_unknown + + + + +Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- two_n_device_missing_timezone + + + + +Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- hub_required_for_additional_capabilities + + + + +Indicates a provider-specific issue that may affect device functionality. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- provider_issue + + + + +Indicates that the key is in a locker that does not support the access codes API. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- keynest_unsupported_locker + + + + +Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- accessory_keypad_setup_required + + + + +Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- unreliable_online_status + + + + +Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. + +**`active_access_code_count`** _Number_ + +Number of active access codes on the device when the warning was set. + +--- + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`max_active_access_code_count`** _Number_ + +Maximum number of active access codes supported by the device. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- max_access_codes_reached + + + + +Indicates that the connected Kwikset account has member-level access to this lock's home. Admin or owner access is required to manage access codes and control the lock remotely. + +**`created_at`** _Datetime_ + +Date and time at which Seam created the warning. + +--- + +**`message`** _String_ + +Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + +--- + +**`warning_code`** _Enum_ + +Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + +Enum values: + +- insufficient_permissions + + + +--- + +**`workspace_id`** _UUID_ + +Unique identifier for the Seam workspace associated with the device. + +--- + +## device.properties + +**`active_thermostat_schedule`** _Object_ + +Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + **Deprecated**. Use `active_thermostat_schedule_id` with + `/thermostats/schedules/get` instead. + + + + + + Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + + + ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + + + Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + + + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + + + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + + + ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + + + ID of the workspace that contains the thermostat schedule. + + + +--- + +**`active_thermostat_schedule_id`** _UUID_ + +ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + +--- + +**`akiles_metadata`** _Object_ + +Metadata for an Akiles device. + + + + + Group ID to which to add users for an Akiles device. + + + Gadget ID for an Akiles device. + + + Gadget name for an Akiles device. + + + Product name for an Akiles device. + + + +--- + +**`assa_abloy_credential_service_metadata`** _Object_ + +ASSA ABLOY Credential Service metadata for the phone. + + + + + Endpoints associated with the phone. + + + ID of the associated endpoint. + + + Indicated whether the endpoint is active. + + + Indicates whether the credential service has active endpoints associated with the phone. + + + +--- + +**`assa_abloy_vostio_metadata`** _Object_ + +Metadata for an ASSA ABLOY Vostio system. + + + + + Encoder name for an ASSA ABLOY Vostio system. + + + +--- + +**`august_metadata`** _Object_ + +Metadata for an August device. + + + + + Indicates whether an August device has a keypad. + + + House ID for an August device. + + + House name for an August device. + + + Keypad battery level for an August device. + + + Lock ID for an August device. + + + Lock name for an August device. + + + Model for an August device. + + + +--- + +**`available_climate_preset_modes`** _List_ _of Enums_ + +Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". + +--- + +**`available_climate_presets`** _List_ _of Objects_ + +Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. + + +can_delete Boolean + +Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + can_edit + +Boolean + +Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + can_use_with_thermostat_daily_programs + +Boolean + +Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + climate_preset_key + +String + +Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + climate_preset_mode + +Enum + + + - home + - away + - wake + - sleep + - occupied + - unoccupied + + + + +The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + cooling_set_point_celsius + +Number + +Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + cooling_set_point_fahrenheit + +Number + +Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + display_name + +String + +Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + ecobee_metadata + +Object + +Metadata specific to the Ecobee climate, if applicable. + + + ecobee_metadata.climate_ref + +String + +Reference to the Ecobee climate, if applicable. + + + ecobee_metadata.is_optimized + +Boolean + +Indicates if the climate preset is optimized by Ecobee. + + + ecobee_metadata.owner + +Enum + + + - user + - system + + + + +Indicates whether the climate preset is owned by the user or the system. + + + fan_mode_setting + +Enum + + + - auto + - on + - circulate + + + + +Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + heating_set_point_celsius + +Number + +Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + heating_set_point_fahrenheit + +Number + +Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + hvac_mode_setting + +Enum + + + - off + - heat + - cool + - heat_cool + - eco + + + + +Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + manual_override_allowed + +Boolean + +Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + + + name + +String + +User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + +--- + +**`available_fan_mode_settings`** _List_ _of Enums_ + +Fan mode settings that the thermostat supports. + +--- + +**`available_hvac_mode_settings`** _List_ _of Enums_ + +HVAC mode settings that the thermostat supports. + +--- + +**`avigilon_alta_metadata`** _Object_ + +Metadata for an Avigilon Alta system. + + + + + Entry name for an Avigilon Alta system. + + + Total count of entry relays for an Avigilon Alta system. + + + Organization name for an Avigilon Alta system. + + + Site ID for an Avigilon Alta system. + + + Site name for an Avigilon Alta system. + + + Zone ID for an Avigilon Alta system. + + + Zone name for an Avigilon Alta system. + + + +--- + +**`brivo_metadata`** _Object_ + +Metadata for a Brivo device. + + + + + Indicates whether the Brivo access point has activation (remote unlock) enabled. + + + Device name for a Brivo device. + + + +--- + +**`controlbyweb_metadata`** _Object_ + +Metadata for a ControlByWeb device. + + + + + Device ID for a ControlByWeb device. + + + Device name for a ControlByWeb device. + + + Relay name for a ControlByWeb device. + + + +--- + +**`current_climate_setting`** _Object_ + +Current climate setting. + + + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + + - `home` + - `away` + - `wake` + - `sleep` + - `occupied` + - `unoccupied` + + + + + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + Metadata specific to the Ecobee climate, if applicable. + + + Reference to the Ecobee climate, if applicable. + + + Indicates if the climate preset is optimized by Ecobee. + + + Indicates whether the climate preset is owned by the user or the system. + + + + - `user` + - `system` + + + + + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + + - `auto` + - `on` + - `circulate` + + + + + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + + - `off` + - `heat` + - `cool` + - `heat_cool` + - `eco` + + + + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + **Deprecated**. Use 'thermostat_schedule.is_override_allowed' + + + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + +--- + +**`default_climate_setting`** _Object_ + + + **Deprecated**. use fallback_climate_preset_key to specify a fallback climate + preset instead. + + + + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + + + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + + + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + + + + - `home` + - `away` + - `wake` + - `sleep` + - `occupied` + - `unoccupied` + + + + + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + Metadata specific to the Ecobee climate, if applicable. + + + Reference to the Ecobee climate, if applicable. + + + Indicates if the climate preset is optimized by Ecobee. + + + Indicates whether the climate preset is owned by the user or the system. + + + + - `user` + - `system` + + + + + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + + + + - `auto` + - `on` + - `circulate` + + + + + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + + + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + + + + - `off` + - `heat` + - `cool` + - `heat_cool` + - `eco` + + + + + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + **Deprecated**. Use 'thermostat_schedule.is_override_allowed' + + + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + + + +--- + +**`dormakaba_oracode_metadata`** _Object_ + +Metadata for a dormakaba Oracode device. + + + + + Device ID for a dormakaba Oracode device. + + + Door ID for a dormakaba Oracode device. + + + Indicates whether a door is wireless for a dormakaba Oracode device. + + + Door name for a dormakaba Oracode device. + + + IANA time zone for a dormakaba Oracode device. + + + Predefined time slots for a dormakaba Oracode device. + + + Check in time for a time slot for a dormakaba Oracode device. + + + Checkout time for a time slot for a dormakaba Oracode device. + + + ID of a user level for a dormakaba Oracode device. + + + Prefix for a user level for a dormakaba Oracode device. + + + Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot. + + + Indicates whether a time slot for a dormakaba Oracode device is in biweekly mode. + + + Indicates whether a time slot for a dormakaba Oracode device is a master time slot. + + + Indicates whether a time slot for a dormakaba Oracode device is a one-shot time slot. + + + Name of a time slot for a dormakaba Oracode device. + + + Prefix for a time slot for a dormakaba Oracode device. + + + Site ID for a dormakaba Oracode device. + **Deprecated**. Previously marked as "@DEPRECATED." + + + Site name for a dormakaba Oracode device. + + + +--- + +**`ecobee_metadata`** _Object_ + +Metadata for an ecobee device. + + + + + Device name for an ecobee device. + + + Device ID for an ecobee device. + + + +--- + +**`fallback_climate_preset_key`** _String_ + +Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. + +--- + +**`fan_mode_setting`** _Enum_ + + + **Deprecated**. Use `current_climate_setting.fan_mode_setting` instead. + + + + +- auto +- on +- circulate + + +--- + +**`four_suites_metadata`** _Object_ + +Metadata for a 4SUITES device. + + + + + Device ID for a 4SUITES device. + + + Device name for a 4SUITES device. + + + Reclose delay, in seconds, for a 4SUITES device. + + + +--- + +**`genie_metadata`** _Object_ + +Metadata for a Genie device. + + + + + Lock name for a Genie device. + + + Door name for a Genie device. + + + +--- + +**`honeywell_resideo_metadata`** _Object_ + +Metadata for a Honeywell Resideo device. + + + + + Device name for a Honeywell Resideo device. + + + Device ID for a Honeywell Resideo device. + + + +--- + +**`igloo_metadata`** _Object_ + +Metadata for an igloo device. + + + + + Bridge ID for an igloo device. + + + Device ID for an igloo device. + + + Model for an igloo device. + + + +--- + +**`igloohome_metadata`** _Object_ + +Metadata for an igloohome device. + + + + + Bridge ID for an igloohome device. + + + Bridge name for an igloohome device. + + + Device ID for an igloohome device. + + + Device name for an igloohome device. + + + Indicates whether a keypad is linked to a bridge for an igloohome device. + + + Keypad ID for an igloohome device. + + + +--- + +**`is_cooling`** _Boolean_ + +Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. + +--- + +**`is_fan_running`** _Boolean_ + +Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. + +--- + +**`is_heating`** _Boolean_ + +Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. + +--- + +**`is_temporary_manual_override_active`** _Boolean_ + +Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. + +--- + +**`keynest_metadata`** _Object_ + +Metadata for a KeyNest device. + + + + + Address for a KeyNest device. + + + Current or last store ID for a KeyNest device. + + + Current status for a KeyNest device. + + + Current user company for a KeyNest device. + + + Current user email for a KeyNest device. + + + Current user name for a KeyNest device. + + + Current user phone number for a KeyNest device. + + + Default office ID for a KeyNest device. + + + Device name for a KeyNest device. + + + Fob ID for a KeyNest device. + + + Handover method for a KeyNest device. + + + Whether the KeyNest device has a photo. + + + Whether the key is in a locker that does not support the access codes API. + + + Key ID for a KeyNest device. + + + Key notes for a KeyNest device. + + + KeyNest app user for a KeyNest device. + + + Last movement timestamp for a KeyNest device. + + + Property ID for a KeyNest device. + + + Property postcode for a KeyNest device. + + + Status type for a KeyNest device. + + + Subscription plan for a KeyNest device. + + + +--- + +**`korelock_metadata`** _Object_ + +Metadata for a Korelock device. + + + + + Device ID for a Korelock device. + + + Device name for a Korelock device. + + + Firmware version for a Korelock device. + + + Location ID for a Korelock device. Required for timebound access codes. + + + Model code for a Korelock device. + + + Serial number for a Korelock device. + + + WiFi signal strength (0-1) for a Korelock device. + + + +--- + +**`kwikset_metadata`** _Object_ + +Metadata for a Kwikset device. + + + + + Device ID for a Kwikset device. + + + Device name for a Kwikset device. + + + Model number for a Kwikset device. + + + +--- + +**`lockly_metadata`** _Object_ + +Metadata for a Lockly device. + + + + + Device ID for a Lockly device. + + + Device name for a Lockly device. + + + Model for a Lockly device. + + + +--- + +**`max_cooling_set_point_celsius`** _Number_ + +Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + +--- + +**`max_cooling_set_point_fahrenheit`** _Number_ + +Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + +--- + +**`max_heating_set_point_celsius`** _Number_ + +Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + +--- + +**`max_heating_set_point_fahrenheit`** _Number_ + +Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + +--- + +**`max_thermostat_daily_program_periods_per_day`** _Number_ + +Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. + +--- + +**`max_unique_climate_presets_per_thermostat_weekly_program`** _Number_ + +Maximum number of climate presets that the thermostat can support for weekly programming. + +--- + +**`min_cooling_set_point_celsius`** _Number_ + +Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + +--- + +**`min_cooling_set_point_fahrenheit`** _Number_ + +Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + +--- + +**`min_heating_cooling_delta_celsius`** _Number_ + +Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + +--- + +**`min_heating_cooling_delta_fahrenheit`** _Number_ + +Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + +--- + +**`min_heating_set_point_celsius`** _Number_ + +Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + +--- + +**`min_heating_set_point_fahrenheit`** _Number_ + +Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + +--- + +**`minut_metadata`** _Object_ + +Metadata for a Minut device. + + + + + Device ID for a Minut device. + + + Device name for a Minut device. + + + Latest sensor values for a Minut device. + + + Latest accelerometer Z-axis reading for a Minut device. + + + Time of latest accelerometer Z-axis reading for a Minut device. + + + Value of latest accelerometer Z-axis reading for a Minut device. + + + Latest humidity reading for a Minut device. + + + Time of latest humidity reading for a Minut device. + + + Value of latest humidity reading for a Minut device. + + + Latest pressure reading for a Minut device. + + + Time of latest pressure reading for a Minut device. + + + Value of latest pressure reading for a Minut device. + + + Latest sound reading for a Minut device. + + + Time of latest sound reading for a Minut device. + + + Value of latest sound reading for a Minut device. + + + Latest temperature reading for a Minut device. + + + Time of latest temperature reading for a Minut device. + + + Value of latest temperature reading for a Minut device. + + + +--- + +**`model`** _Object_ + +Device model-related properties. + + + + + + **Deprecated**. use device.properties.model.can_connect_accessory_keypad + + + + Indicates whether the device can connect a accessory keypad. + + + Display name of the device model. + + + Indicates whether the device has a built in accessory keypad. + + + Display name that corresponds to the manufacturer-specific terminology for the device. + + + **Deprecated**. use device.can_program_offline_access_codes. + + + **Deprecated**. use device.can_program_online_access_codes. + + + +--- + +**`name`** _String_ + +Name of the device. + +**Deprecated**. use device.display_name instead + +--- + +**`nest_metadata`** _Object_ + +Metadata for a Google Nest device. + + + + + Custom device name for a Google Nest device. The device owner sets this value. + + + Device name for a Google Nest device. Google sets this value. + + + Display name for a Google Nest device. + + + Device ID for a Google Nest device. + + + +--- + +**`noiseaware_metadata`** _Object_ + +Metadata for a NoiseAware device. + + + + + Device ID for a NoiseAware device. + + + Device model for a NoiseAware device. + + + + - `indoor` + - `outdoor` + + + + + Device name for a NoiseAware device. + + + Noise level, in decibels, for a NoiseAware device. + + + Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. + + + +--- + +**`nuki_metadata`** _Object_ + +Metadata for a Nuki device. + + + + + Device ID for a Nuki device. + + + Device name for a Nuki device. + + + Indicates whether keypad 2 is paired for a Nuki device. + + + Indicates whether the keypad battery is in a critical state for a Nuki device. + + + Indicates whether the keypad is paired for a Nuki device. + + + +--- + +**`omnitec_metadata`** _Object_ + +Metadata for an Omnitec device. + + + + + Whether the Omnitec lock has a connected gateway for remote operations. + + + Lock ID for an Omnitec device. + + + Bluetooth MAC address for an Omnitec device. + + + Lock name for an Omnitec device. + + + Static UTC offset of the Omnitec lock in milliseconds. Does not account for DST. + + + +--- + +**`online`** _Boolean_ + +Indicates whether the device is online. + +--- + +**`relative_humidity`** _Number_ + +Reported relative humidity, as a value between 0 and 1, inclusive. + +--- + +**`ring_metadata`** _Object_ + +Metadata for a Ring device. + + + + + Device ID for a Ring device. + + + Device name for a Ring device. + + + +--- + +**`salto_ks_metadata`** _Object_ + +Metadata for a Salto KS device. + + + + + Battery level for a Salto KS device. + + + Customer reference for a Salto KS device. + + + Indicates whether the site has a Salto KS subscription that supports custom PINs. + + + Lock ID for a Salto KS device. + + + Lock type for a Salto KS device. + + + Locked state for a Salto KS device. + + + Model for a Salto KS device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + +--- + +**`salto_metadata`** _Object_ + +Metada for a Salto device. + +**Deprecated**. Use `salto_ks_metadata ` instead. + + + + + Battery level for a Salto device. + + + Customer reference for a Salto device. + + + Lock ID for a Salto device. + + + Lock type for a Salto device. + + + Locked state for a Salto device. + + + Model for a Salto device. + + + Site ID for the Salto KS site to which the device belongs. + + + Site name for the Salto KS site to which the device belongs. + + + +--- + +**`salto_space_credential_service_metadata`** _Object_ + +Salto Space credential service metadata for the phone. + + + + + Indicates whether the credential service has an active associated phone. + + + +--- + +**`schlage_metadata`** _Object_ + +Metadata for a Schlage device. + + + + + Device ID for a Schlage device. + + + Device name for a Schlage device. + + + Model for a Schlage device. + + + +--- + +**`seam_bridge_metadata`** _Object_ + +Metadata for Seam Bridge. + + + + + Device number for Seam Bridge. + + + Name for Seam Bridge. + + + Unlock method for Seam Bridge. + + + + - `bridge` + - `doorking` + + + + + +--- + +**`sensi_metadata`** _Object_ + +Metadata for a Sensi device. + + + + + Device ID for a Sensi device. + + + Device name for a Sensi device. + + + Set to true when the device does not support the /dual-setpoints API endpoint. + + + Product type for a Sensi device. + + + +--- + +**`smartthings_metadata`** _Object_ + +Metadata for a SmartThings device. + + + + + Device ID for a SmartThings device. + + + Device name for a SmartThings device. + + + Location ID for a SmartThings device. + + + Model for a SmartThings device. + + + +--- + +**`tado_metadata`** _Object_ + +Metadata for a tado° device. + + + + + Device type for a tado° device. + + + Serial number for a tado° device. + + + +--- + +**`tedee_metadata`** _Object_ + +Metadata for a Tedee device. + + + + + Bridge ID for a Tedee device. + + + Bridge name for a Tedee device. + + + Device ID for a Tedee device. + + + Device model for a Tedee device. + + + Device name for a Tedee device. + + + Keypad ID for a Tedee device. + + + Serial number for a Tedee device. + + + +--- + +**`temperature_celsius`** _Number_ + +Reported temperature in °C. + +--- + +**`temperature_fahrenheit`** _Number_ + +Reported temperature in °F. + +--- + +**`temperature_threshold`** _Object_ + +Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + + + Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + + + +--- + +**`thermostat_daily_program_period_precision_minutes`** _Number_ + +Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. + +--- + +**`thermostat_daily_programs`** _List_ _of Objects_ + +Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + + +created_at Datetime + +Date and time at which the thermostat daily program was created. + + + device_id + +UUID + +ID of the thermostat device on which the thermostat daily program is configured. + + + name + +String + +User-friendly name to identify the thermostat daily program. + + + periods + +List + +Array of thermostat daily program periods. + + + thermostat_daily_program_id + +UUID + +ID of the thermostat daily program. + + + workspace_id + +UUID + +ID of the workspace that contains the thermostat daily program. + + + +--- + +**`thermostat_weekly_program`** _Object_ + +Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + + + + + Date and time at which the thermostat weekly program was created. + + + ID of the thermostat daily program to run on Fridays. + + + ID of the thermostat daily program to run on Mondays. + + + ID of the thermostat daily program to run on Saturdays. + + + ID of the thermostat daily program to run on Sundays. + + + ID of the thermostat daily program to run on Thursdays. + + + ID of the thermostat daily program to run on Tuesdays. + + + ID of the thermostat daily program to run on Wednesdays. + + + +--- + +**`ttlock_metadata`** _Object_ + +Metadata for a TTLock device. + + + + + Feature value for a TTLock device. + + + Features for a TTLock device. + + + Indicates whether a TTLock device supports auto-lock time configuration. + + + Indicates whether a TTLock device supports an incomplete keyboard passcode. + + + Indicates whether a TTLock device supports the lock command. + + + Indicates whether a TTLock device supports a passcode. + + + Indicates whether a TTLock device supports passcode management. + + + Indicates whether a TTLock device supports unlock via gateway. + + + Indicates whether a TTLock device supports Wi-Fi. + + + Indicates whether a TTLock device has a gateway. + + + Lock alias for a TTLock device. + + + Lock ID for a TTLock device. + + + Lock-side timezone offset in milliseconds east of UTC, as configured in the TTLock app. Source of truth for the lock's wall-clock interpretation of access code start/end times — a misconfigured value here is the typical cause of customer "codes offset by N hours" reports. Diagnostic only; Seam does not convert times based on this value. + + + Wireless keypads for a TTLock device. + + + ID for a wireless keypad for a TTLock device. + + + Name for a wireless keypad for a TTLock device. + + + +--- + +**`two_n_metadata`** _Object_ + +Metadata for a 2N device. + + + + + Device ID for a 2N device. + + + Device name for a 2N device. + + + +--- + +**`ultraloq_metadata`** _Object_ + +Metadata for an Ultraloq device. + + + + + Device ID for an Ultraloq device. + + + Device name for an Ultraloq device. + + + Device type for an Ultraloq device. + + + IANA timezone for the Ultraloq device. + + + +--- + +**`visionline_metadata`** _Object_ + +Metadata for an ASSA ABLOY Visionline system. + + + + + Encoder ID for an ASSA ABLOY Visionline system. + + + +--- + +**`wyze_metadata`** _Object_ + +Metadata for a Wyze device. + + + + + Device ID for a Wyze device. + + + Device information model for a Wyze device. + + + Device name for a Wyze device. + + + Keypad UUID for a Wyze device. + + + Locker status (hardlock) for a Wyze device. + + + Product model for a Wyze device. + + + Product name for a Wyze device. + + + Product type for a Wyze device. + + + +--- + +## Errors + +**`auxiliary_heat_running`** + +Indicates that the auxiliary heat is running. + +--- + +**`subscription_required`** + +Indicates that a subscription is required to connect. + +--- + +**`missing_device_credentials`** + +Indicates that device credentials are missing. + +--- + +**`hub_disconnected`** + +Indicates that the hub is disconnected. + +--- + +**`device_removed`** + +Indicates that the device has been removed. + +--- + +**`device_offline`** + +Indicates that the device is offline. + +--- + +**`device_disconnected`** + +Indicates that the device is disconnected. + +--- + +**`account_disconnected`** + +Indicates that the account is disconnected. + +--- + +**`bridge_disconnected`** + +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). + +--- + +## Warnings + +**`device_communication_degraded`** + +Indicates that the device appears to be unresponsive. + +--- + +**`device_has_flaky_connection`** + +Indicates that the device has a flaky connection. + +--- + +**`scheduled_maintenance_window`** + +Indicates that a scheduled maintenance window has been detected. + +--- + +**`temperature_threshold_exceeded`** + +Indicates that the temperature threshold has been exceeded. + +--- + +**`third_party_integration_detected`** + +Indicates that a third-party integration has been detected. + +--- + +## Endpoints + +[**`/thermostats/activate_climate_preset`**](./activate_climate_preset) + +Activates a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). + +[**`/thermostats/cool`**](./cool) + +Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [cool mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings). + +[**`/thermostats/create_climate_preset`**](./create_climate_preset) + +Creates a [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). + +[**`/thermostats/delete_climate_preset`**](./delete_climate_preset) + +Deletes a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). + +[**`/thermostats/heat`**](./heat) + +Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [heat mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings). + +[**`/thermostats/heat_cool`**](./heat_cool) + +Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [heat-cool ("auto") mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings). + +[**`/thermostats/list`**](./list) + +Returns a list of all [thermostats](https://docs.seam.co/capability-guides/thermostats). + +[**`/thermostats/off`**](./off) + +Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to ["off" mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings). + +[**`/thermostats/set_fallback_climate_preset`**](./set_fallback_climate_preset) + +Sets a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) as the ["fallback"](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) preset for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). + +[**`/thermostats/set_fan_mode`**](./set_fan_mode) + +Sets the [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). + +[**`/thermostats/set_hvac_mode`**](./set_hvac_mode) + +Sets the [HVAC mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). + +[**`/thermostats/set_temperature_threshold`**](./set_temperature_threshold) + +Sets a [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range. + +[**`/thermostats/update_climate_preset`**](./update_climate_preset) + +Updates a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). + +[**`/thermostats/update_weekly_program`**](./update_weekly_program) + +Updates the thermostat weekly program for a thermostat device. To configure a weekly program, specify the ID of the daily program that you want to use for each day of the week. When you update a weekly program, the set of programs that you specify overwrites any previous weekly program for the thermostat. From dcf644d9d2c8869902feb290af33261b4c8f6c8b Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 6 Jul 2026 23:42:31 +0000 Subject: [PATCH 5/6] feat: normalize generated docs links to root-relative and heal anchors Rewrite absolute https://docs.seam.co/ links in generated output (openapi.json + api/**/*.mdx) to root-relative / links in the canonicalize postprocess step, matching the hand-written content's link convention. Upstream @seamapi/types descriptions use the absolute form, which also hid these links from broken-link validation. Relativizing exposed GitBook-era anchors that no longer match Mintlify's heading slugs, so the postprocess step now also heals anchors on internal links against the actual headings (and explicit id="..." markers) of the target pages: it rewrites dotted GitBook anchors to Mintlify slugs (acs_system.errors.x -> acs_system-errors-x), completes GitBook-truncated slugs by prefix match, redirects section anchors that became child pages (access-codes#backup-access-codes -> access-codes/backup-access-codes), and drops anchors whose sections no longer exist anywhere on the target page (with a generate-time warning for content follow-up). Mechanical result: a line-for-line link swap across the generated pages and spec; validate:mintlify and the broken-links/anchors check pass clean. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01P1YTCN8DidaFWzvLYyge3N --- mintlify-codegen/lib/canonicalize-links.ts | 90 +- mintlify-codegen/lib/postprocess.ts | 59 +- mintlify-docs/api/access_codes/errors.mdx | 6 +- mintlify-docs/api/access_codes/events.mdx | 34 +- mintlify-docs/api/access_codes/object.mdx | 14 +- .../api/access_codes/simulate/object.mdx | 2 +- .../api/access_codes/unmanaged/errors.mdx | 6 +- .../api/access_codes/unmanaged/events.mdx | 8 +- .../api/access_codes/unmanaged/object.mdx | 8 +- mintlify-docs/api/access_grants/errors.mdx | 4 +- mintlify-docs/api/access_grants/events.mdx | 4 +- mintlify-docs/api/access_grants/object.mdx | 4 +- mintlify-docs/api/access_methods/errors.mdx | 4 +- mintlify-docs/api/access_methods/object.mdx | 4 +- .../api/acs/access_groups/errors.mdx | 2 +- .../api/acs/access_groups/object.mdx | 4 +- mintlify-docs/api/acs/credentials/errors.mdx | 12 +- mintlify-docs/api/acs/credentials/events.mdx | 8 +- mintlify-docs/api/acs/credentials/object.mdx | 56 +- mintlify-docs/api/acs/encoders/events.mdx | 4 +- mintlify-docs/api/acs/encoders/object.mdx | 20 +- .../api/acs/encoders/simulate/object.mdx | 8 +- mintlify-docs/api/acs/entrances/events.mdx | 4 +- mintlify-docs/api/acs/entrances/object.mdx | 38 +- mintlify-docs/api/acs/object.mdx | 26 +- mintlify-docs/api/acs/systems/errors.mdx | 26 +- mintlify-docs/api/acs/systems/events.mdx | 6 +- mintlify-docs/api/acs/systems/object.mdx | 44 +- mintlify-docs/api/acs/users/errors.mdx | 20 +- mintlify-docs/api/acs/users/events.mdx | 4 +- mintlify-docs/api/acs/users/object.mdx | 46 +- mintlify-docs/api/action_attempts/object.mdx | 4 +- mintlify-docs/api/client_sessions/object.mdx | 24 +- mintlify-docs/api/connect_webviews/object.mdx | 12 +- .../api/connected_accounts/errors.mdx | 4 +- .../api/connected_accounts/object.mdx | 6 +- .../connected_accounts/simulate/object.mdx | 2 +- mintlify-docs/api/devices/errors.mdx | 8 +- mintlify-docs/api/devices/events.mdx | 6 +- mintlify-docs/api/devices/object.mdx | 240 +-- mintlify-docs/api/devices/simulate/object.mdx | 6 +- .../api/devices/unmanaged/errors.mdx | 8 +- .../api/devices/unmanaged/events.mdx | 6 +- .../api/devices/unmanaged/object.mdx | 6 +- mintlify-docs/api/locks/errors.mdx | 2 +- mintlify-docs/api/locks/events.mdx | 8 +- mintlify-docs/api/locks/object.mdx | 34 +- mintlify-docs/api/locks/simulate/object.mdx | 4 +- .../noise_sensors/noise_thresholds/events.mdx | 2 +- .../noise_sensors/noise_thresholds/object.mdx | 4 +- mintlify-docs/api/noise_sensors/object.mdx | 2 +- .../api/noise_sensors/simulate/object.mdx | 2 +- mintlify-docs/api/phones/object.mdx | 2 +- mintlify-docs/api/phones/simulate/object.mdx | 2 +- mintlify-docs/api/thermostats/events.mdx | 24 +- mintlify-docs/api/thermostats/object.mdx | 186 +- .../api/thermostats/schedules/object.mdx | 22 +- .../api/thermostats/simulate/object.mdx | 4 +- mintlify-docs/api/user_identities/object.mdx | 2 +- .../api/user_identities/unmanaged/object.mdx | 6 +- mintlify-docs/api/webhooks/object.mdx | 8 +- mintlify-docs/api/workspaces/object.mdx | 22 +- mintlify-docs/openapi.json | 1890 ++++++++--------- 63 files changed, 1635 insertions(+), 1498 deletions(-) diff --git a/mintlify-codegen/lib/canonicalize-links.ts b/mintlify-codegen/lib/canonicalize-links.ts index 6091cdc23..604c49472 100644 --- a/mintlify-codegen/lib/canonicalize-links.ts +++ b/mintlify-codegen/lib/canonicalize-links.ts @@ -64,18 +64,24 @@ function splitAnchor(raw: string): { path: string; suffix: string } { * absolute `docs.seam.co/...` links, Markdown `](/...)` links, and JSX * `href="/..."` attributes; external links and non-redirected paths pass * through unchanged. + * + * Absolute `https://docs.seam.co/` links become root-relative + * `/` links — the convention used by the hand-written mintlify-docs + * content — so generated pages link consistently regardless of the form the + * upstream @seamapi/types descriptions use. */ export function canonicalizeLinks( text: string, redirects: Map, ): string { - // Absolute docs.seam.co links (the dominant form in @seamapi/types text). + // Absolute docs.seam.co links (the dominant form in @seamapi/types text): + // canonicalize and relativize. let out = text.replace( /https?:\/\/docs\.seam\.co(\/[^\s"')>\]]*)?/g, (_full, pathPart?: string) => { const { path, suffix } = splitAnchor(pathPart ?? '/') const canon = canonicalizePath(path, redirects) - return `https://docs.seam.co${canon === '/' ? '' : canon}${suffix}` + return `${canon}${suffix}` }, ) // Relative Markdown links: ](/path) @@ -94,6 +100,86 @@ export function canonicalizeLinks( return out } +/** Heading slug matching Mintlify's anchor generation: lowercased, backticks + * stripped, punctuation and spaces hyphenated (`connected_account.connected` + * -> `connected_account-connected`), hyphen runs collapsed. */ +export function headingSlug(heading: string): string { + return heading + .trim() + .toLowerCase() + .replace(/`/g, '') + .replace(/[^\w\s-]/g, '-') + .replace(/\s+/g, '-') + .replace(/-+/g, '-') + .replace(/^-|-$/g, '') +} + +/** Collect the anchors of an mdx page (frontmatter excluded): heading slugs + * (with any trailing GitBook-style inline `` marker stripped) plus every + * explicit `id="…"` attribute. */ +export function pageAnchors(content: string): Set { + const body = content.replace(/^---\n[\s\S]*?\n---/, '') + const slugs = new Set() + for (const m of body.matchAll(/^#{1,6}\s+(.+?)\s*$/gm)) { + const heading = (m[1] ?? '').replace(/]*>.*?<\/a>/g, '') + slugs.add(headingSlug(heading)) + } + for (const m of body.matchAll(/\bid="([^"]+)"/g)) { + if (m[1] != null) slugs.add(m[1]) + } + return slugs +} + +/** + * Heal anchors on internal Markdown links: upstream @seamapi/types + * descriptions still carry GitBook-era anchors (e.g. + * `#acs_system.errors.seam_bridge_disconnected`, or slugs GitBook truncated) + * that don't match Mintlify's heading slugs. For each `](/path#anchor)` link + * whose target page is known, in order: keep valid anchors, rewrite ones + * whose slugified/normalized/truncated form matches a real heading, rewrite a + * GitBook section that became a child page (`/access-codes#backup-access-codes` + * -> `/access-codes/backup-access-codes`), and finally drop what can't be + * resolved (linking to the page top beats a broken anchor). Unknown target + * pages pass through untouched. + */ +export function healAnchors( + text: string, + routeAnchors: Map>, +): string { + const normalize = (anchor: string): string => + anchor.replace(/^id-/, '').replace(/[.-]/g, '') + + return text.replace( + /\]\((\/[^)\s#]*)#([^)\s]+)\)/g, + (full, path: string, anchor: string) => { + const route = path.replace(/\/$/, '') || '/' + const anchors = routeAnchors.get(route) + if (anchors == null) return full + if (anchors.has(anchor)) return full + + const slugged = headingSlug(anchor) + if (anchors.has(slugged)) return `](${path}#${slugged})` + const normalized = [...anchors].find( + (a) => normalize(a) === normalize(anchor), + ) + if (normalized != null) return `](${path}#${normalized})` + // GitBook truncated long heading slugs; match on the prefix when unique. + const prefixed = [...anchors].filter((a) => a.startsWith(slugged)) + if (prefixed.length === 1) return `](${path}#${prefixed[0]})` + // A GitBook page section that became its own child page. + if (routeAnchors.has(`${route}/${anchor}`)) { + return `](${route}/${anchor})` + } + + // eslint-disable-next-line no-console + console.log( + ` Dropping unresolvable anchor #${anchor} on link to ${path}`, + ) + return `](${path})` + }, + ) +} + /** Canonicalize links across openapi.json and every API `.mdx` page. */ export async function canonicalizeGeneratedLinks( docsDir: string, diff --git a/mintlify-codegen/lib/postprocess.ts b/mintlify-codegen/lib/postprocess.ts index 059551ba6..30611fe65 100644 --- a/mintlify-codegen/lib/postprocess.ts +++ b/mintlify-codegen/lib/postprocess.ts @@ -1,11 +1,18 @@ /* eslint-disable no-console */ +import { readdir, readFile } from 'node:fs/promises' +import { join } from 'node:path' + import type Metalsmith from 'metalsmith' -import { canonicalizeLinks } from './canonicalize-links.js' +import { + canonicalizeLinks, + healAnchors, + pageAnchors, +} from './canonicalize-links.js' /** * Metalsmith plugin: canonicalize docs links in the generated output - * (openapi.json plus every API `.mdx` page). Guards against two classes of + * (openapi.json plus every API `.mdx` page). Guards against three classes of * upstream @seamapi/types regression: * 1. legacy `/latest` reappearing in `docs.seam.co/latest/...` links * (the site serves at the root; a `/latest/:path*` redirect handles old @@ -14,13 +21,18 @@ import { canonicalizeLinks } from './canonicalize-links.js' * still resolve in the browser but cost an extra hop and dodge anchor * validation. We rewrite them to their final canonical destination so * generated content links directly. See DOC-210. + * 3. GitBook-era anchors that don't match Mintlify's heading slugs — these + * are healed against the actual headings of the target page, or dropped + * when unresolvable. + * Absolute `https://docs.seam.co/...` links also become root-relative here, + * matching the hand-written content's link convention. * This is self-healing: every `npm run generate` re-applies it, so source * descriptions can lag without leaving stale links in the published docs. * * Runs after the docs-json plugin so the redirect map reflects the final * docs.json, and after layouts so it sees the rendered pages. */ -export const postprocess: Metalsmith.Plugin = (files) => { +export const postprocess: Metalsmith.Plugin = async (files, metalsmith) => { console.log('Canonicalizing docs links in generated output...') const docsJsonFile = files['docs.json'] @@ -33,6 +45,11 @@ export const postprocess: Metalsmith.Plugin = (files) => { redirects.set(r.source, r.destination) } + const routeAnchors = await collectRouteAnchors( + metalsmith.destination(), + files, + ) + const targets = Object.keys(files).filter( (key) => key === 'openapi.json' || @@ -44,7 +61,10 @@ export const postprocess: Metalsmith.Plugin = (files) => { const file = files[key] if (file == null) continue const content = file.contents.toString() - const replaced = canonicalizeLinks(content, redirects) + const replaced = healAnchors( + canonicalizeLinks(content, redirects), + routeAnchors, + ) if (replaced !== content) { file.contents = Buffer.from(replaced) count++ @@ -52,3 +72,34 @@ export const postprocess: Metalsmith.Plugin = (files) => { } console.log(` Canonicalized links in ${count} generated file(s)`) } + +/** + * Map every site route to its page's heading anchors. Pages in the build take + * priority (the generated api tree); everything else is read from the + * destination tree on disk (the hand-written guides). + */ +async function collectRouteAnchors( + destination: string, + files: Metalsmith.Files, +): Promise>> { + const routeAnchors = new Map>() + + const routeFor = (relativePath: string): string => { + const route = `/${relativePath.replace(/\.mdx$/, '').replace(/\/index$/, '')}` + return route === '/index' ? '/' : route + } + + const entries = await readdir(destination, { recursive: true }) + for (const entry of entries) { + if (!entry.endsWith('.mdx') || entry.startsWith('node_modules')) continue + const content = await readFile(join(destination, entry), 'utf8') + routeAnchors.set(routeFor(entry), pageAnchors(content)) + } + + for (const [key, file] of Object.entries(files)) { + if (!key.endsWith('.mdx')) continue + routeAnchors.set(routeFor(key), pageAnchors(file.contents.toString())) + } + + return routeAnchors +} diff --git a/mintlify-docs/api/access_codes/errors.mdx b/mintlify-docs/api/access_codes/errors.mdx index baa7f1730..aa19732da 100644 --- a/mintlify-docs/api/access_codes/errors.mdx +++ b/mintlify-docs/api/access_codes/errors.mdx @@ -41,11 +41,11 @@ Each error is an object with the following shape: - Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). - Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. + Indicates that the error is a [connected account](/api/connected_accounts/object) error. @@ -152,7 +152,7 @@ Indicates that the account is disconnected. #### `bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). --- diff --git a/mintlify-docs/api/access_codes/events.mdx b/mintlify-docs/api/access_codes/events.mdx index 646e3db5e..46ae3ecd5 100644 --- a/mintlify-docs/api/access_codes/events.mdx +++ b/mintlify-docs/api/access_codes/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Access Code resource, with ## `access_code.created` -An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was created. +An [access code](/low-level-apis/smart-locks/access-codes) was created. @@ -72,7 +72,7 @@ An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) w ## `access_code.changed` -An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed. +An [access code](/low-level-apis/smart-locks/access-codes) was changed. @@ -149,7 +149,7 @@ An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) w ## `access_code.name_changed` -The name of an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed on the device. +The name of an [access code](/low-level-apis/smart-locks/access-codes) was changed on the device. @@ -247,7 +247,7 @@ The name of an [access code](https://docs.seam.co/low-level-apis/smart-locks/acc ## `access_code.code_changed` -The pin code of an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed on the device. +The pin code of an [access code](/low-level-apis/smart-locks/access-codes) was changed on the device. @@ -345,7 +345,7 @@ The pin code of an [access code](https://docs.seam.co/low-level-apis/smart-locks ## `access_code.time_frame_changed` -The time frame of an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed on the device. +The time frame of an [access code](/low-level-apis/smart-locks/access-codes) was changed on the device. @@ -451,7 +451,7 @@ The time frame of an [access code](https://docs.seam.co/low-level-apis/smart-loc ## `access_code.mutations_requested` -Mutations were requested on an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). This event fires at request time, before the change is confirmed on the device. +Mutations were requested on an [access code](/low-level-apis/smart-locks/access-codes). This event fires at request time, before the change is confirmed on the device. @@ -523,7 +523,7 @@ Mutations were requested on an [access code](https://docs.seam.co/low-level-apis ## `access_code.scheduled_on_device` -An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was [scheduled natively](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) on a device. +An [access code](/low-level-apis/smart-locks/access-codes) was [scheduled natively](/low-level-apis/smart-locks/access-codes#native-scheduling) on a device. @@ -595,7 +595,7 @@ An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) w ## `access_code.set_on_device` -An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was set on a device. +An [access code](/low-level-apis/smart-locks/access-codes) was set on a device. @@ -667,7 +667,7 @@ An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) w ## `access_code.removed_from_device` -An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was removed from a device. +An [access code](/low-level-apis/smart-locks/access-codes) was removed from a device. @@ -734,7 +734,7 @@ An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) w ## `access_code.delay_in_setting_on_device` -There was an unusually long delay in setting an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) on a device. +There was an unusually long delay in setting an [access code](/low-level-apis/smart-locks/access-codes) on a device. @@ -831,7 +831,7 @@ There was an unusually long delay in setting an [access code](https://docs.seam. ## `access_code.failed_to_set_on_device` -An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) failed to be set on a device. +An [access code](/low-level-apis/smart-locks/access-codes) failed to be set on a device. @@ -928,7 +928,7 @@ An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) f ## `access_code.deleted` -An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was deleted. +An [access code](/low-level-apis/smart-locks/access-codes) was deleted. @@ -1000,7 +1000,7 @@ An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) w ## `access_code.delay_in_removing_from_device` -There was an unusually long delay in removing an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) from a device. +There was an unusually long delay in removing an [access code](/low-level-apis/smart-locks/access-codes) from a device. @@ -1097,7 +1097,7 @@ There was an unusually long delay in removing an [access code](https://docs.seam ## `access_code.failed_to_remove_from_device` -An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) failed to be removed from a device. +An [access code](/low-level-apis/smart-locks/access-codes) failed to be removed from a device. @@ -1194,7 +1194,7 @@ An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) f ## `access_code.modified_external_to_seam` -An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was modified outside of Seam. +An [access code](/low-level-apis/smart-locks/access-codes) was modified outside of Seam. @@ -1261,7 +1261,7 @@ An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) w ## `access_code.deleted_external_to_seam` -An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was deleted outside of Seam. +An [access code](/low-level-apis/smart-locks/access-codes) was deleted outside of Seam. @@ -1328,7 +1328,7 @@ An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) w ## `access_code.backup_access_code_pulled` -A [backup access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) was pulled from the backup access code pool and set on a device. +A [backup access code](/low-level-apis/smart-locks/access-codes/backup-access-codes) was pulled from the backup access code pool and set on a device. diff --git a/mintlify-docs/api/access_codes/object.mdx b/mintlify-docs/api/access_codes/object.mdx index 3d207aebe..f327d42b1 100644 --- a/mintlify-docs/api/access_codes/object.mdx +++ b/mintlify-docs/api/access_codes/object.mdx @@ -5,15 +5,15 @@ description: 'Learn how the access_code object represents a smart lock PIN code ## The access_code Object -Represents a smart lock [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). +Represents a smart lock [access code](/low-level-apis/smart-locks/access-codes). An access code is a code used for a keypad or pinpad device. Unlike physical keys, which can easily be lost or duplicated, PIN codes can be customized, tracked, and altered on the fly. Using the Seam Access Code API, you can easily generate access codes on the hundreds of door lock models with which we integrate. -Seam supports programming two types of access codes: [ongoing](https://docs.seam.co/low-level-apis/smart-locks/access-codes#ongoing-access-codes) and [time-bound](https://docs.seam.co/low-level-apis/smart-locks/access-codes#time-bound-access-codes). To differentiate between the two, refer to the `type` property of the access code. Ongoing codes display as `ongoing`, whereas time-bound codes are labeled `time_bound`. An ongoing access code is active, until it has been removed from the device. To specify an ongoing access code, leave both `starts_at` and `ends_at` empty. A time-bound access code will be programmed at the `starts_at` time and removed at the `ends_at` time. +Seam supports programming two types of access codes: [ongoing](/low-level-apis/smart-locks/access-codes#ongoing-access-codes) and [time-bound](/low-level-apis/smart-locks/access-codes#time-bound-access-codes). To differentiate between the two, refer to the `type` property of the access code. Ongoing codes display as `ongoing`, whereas time-bound codes are labeled `time_bound`. An ongoing access code is active, until it has been removed from the device. To specify an ongoing access code, leave both `starts_at` and `ends_at` empty. A time-bound access code will be programmed at the `starts_at` time and removed at the `ends_at` time. -In addition, for certain devices, Seam also supports [offline access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes#offline-access-codes). Offline access (PIN) codes are designed for door locks that might not always maintain an internet connection. For this type of access code, the device manufacturer uses encryption keys (tokens) to create server-based registries of algorithmically-generated offline PIN codes. Because the tokens remain synchronized with the managed devices, the locks do not require an active internet connection—and you do not need to be near the locks—to create an offline access code. Then, owners or managers can share these offline codes with users through a variety of mechanisms, such as messaging applications. That is, lock users do not need to install a smartphone application to receive an offline access code. +In addition, for certain devices, Seam also supports [offline access codes](/low-level-apis/smart-locks/access-codes#offline-access-codes). Offline access (PIN) codes are designed for door locks that might not always maintain an internet connection. For this type of access code, the device manufacturer uses encryption keys (tokens) to create server-based registries of algorithmically-generated offline PIN codes. Because the tokens remain synchronized with the managed devices, the locks do not require an active internet connection—and you do not need to be near the locks—to create an offline access code. Then, owners or managers can share these offline codes with users through a variety of mechanisms, such as messaging applications. That is, lock users do not need to install a smartphone application to receive an offline access code. -For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes. +For granting a person access to a space, [Access Grants](/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes. @@ -190,7 +190,7 @@ For granting a person access to a space, [Access Grants](https://docs.seam.co/us - Errors associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). + Errors associated with the [access code](/low-level-apis/smart-locks/access-codes). @@ -242,7 +242,7 @@ For granting a person access to a space, [Access Grants](https://docs.seam.co/us - Current status of the access code within the operational lifecycle. Values are `setting`, a transitional phase that indicates that the code is being configured or activated; `set`, which indicates that the code is active and operational; `unset`, which indicates a deactivated or unused state, either before activation or after deliberate deactivation; `removing`, which indicates a transitional period in which the code is being deleted or made inactive; and `unknown`, which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. See also [Lifecycle of Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/lifecycle-of-access-codes). + Current status of the access code within the operational lifecycle. Values are `setting`, a transitional phase that indicates that the code is being configured or activated; `set`, which indicates that the code is active and operational; `unset`, which indicates a deactivated or unused state, either before activation or after deliberate deactivation; `removing`, which indicates a transitional period in which the code is being deleted or made inactive; and `unknown`, which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. See also [Lifecycle of Access Codes](/low-level-apis/smart-locks/access-codes/lifecycle-of-access-codes). @@ -250,7 +250,7 @@ For granting a person access to a space, [Access Grants](https://docs.seam.co/us - Warnings associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). + Warnings associated with the [access code](/low-level-apis/smart-locks/access-codes). diff --git a/mintlify-docs/api/access_codes/simulate/object.mdx b/mintlify-docs/api/access_codes/simulate/object.mdx index 8932962ae..76cca742e 100644 --- a/mintlify-docs/api/access_codes/simulate/object.mdx +++ b/mintlify-docs/api/access_codes/simulate/object.mdx @@ -7,4 +7,4 @@ description: 'Use the access code simulation endpoints to create unmanaged acces [**`/access_codes/simulate/create_unmanaged_access_code`**](./create_unmanaged_access_code) -Simulates the creation of an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). +Simulates the creation of an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/access_codes/unmanaged/errors.mdx b/mintlify-docs/api/access_codes/unmanaged/errors.mdx index 571f2e68e..71920c771 100644 --- a/mintlify-docs/api/access_codes/unmanaged/errors.mdx +++ b/mintlify-docs/api/access_codes/unmanaged/errors.mdx @@ -41,11 +41,11 @@ Each error is an object with the following shape: - Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). - Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. + Indicates that the error is a [connected account](/api/connected_accounts/object) error. @@ -152,7 +152,7 @@ Indicates that the account is disconnected. #### `bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). --- diff --git a/mintlify-docs/api/access_codes/unmanaged/events.mdx b/mintlify-docs/api/access_codes/unmanaged/events.mdx index 44d1e1897..7a7e5f150 100644 --- a/mintlify-docs/api/access_codes/unmanaged/events.mdx +++ b/mintlify-docs/api/access_codes/unmanaged/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Unmanaged Access Codes reso ## `access_code.unmanaged.converted_to_managed` -An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was converted successfully to a managed access code. +An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was converted successfully to a managed access code. @@ -72,7 +72,7 @@ An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/acces ## `access_code.unmanaged.failed_to_convert_to_managed` -An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) failed to be converted to a managed access code. +An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) failed to be converted to a managed access code. @@ -169,7 +169,7 @@ An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/acces ## `access_code.unmanaged.created` -An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was created on a device. +An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was created on a device. @@ -236,7 +236,7 @@ An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/acces ## `access_code.unmanaged.removed` -An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was removed from a device. +An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was removed from a device. diff --git a/mintlify-docs/api/access_codes/unmanaged/object.mdx b/mintlify-docs/api/access_codes/unmanaged/object.mdx index 6658e6362..c7ef3d2d6 100644 --- a/mintlify-docs/api/access_codes/unmanaged/object.mdx +++ b/mintlify-docs/api/access_codes/unmanaged/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the unmanaged_access_code object represents an existing ## The unmanaged_access_code Object -Represents an [unmanaged smart lock access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes). +Represents an [unmanaged smart lock access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes). An access code is a code used for a keypad or pinpad device. Unlike physical keys, which can easily be lost or duplicated, PIN codes can be customized, tracked, and altered on the fly. @@ -15,7 +15,7 @@ Prior to using Seam to manage your devices, you may have used another lock manag Not all providers support unmanaged access codes. The following providers do not support unmanaged access codes: -- [Kwikset](https://docs.seam.co/device-and-system-integration-guides/kwikset-locks) +- [Kwikset](/device-and-system-integration-guides/kwikset-locks) @@ -102,7 +102,7 @@ Not all providers support unmanaged access codes. The following providers do not - Errors associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). + Errors associated with the [access code](/low-level-apis/smart-locks/access-codes). @@ -126,7 +126,7 @@ Not all providers support unmanaged access codes. The following providers do not - Warnings associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). + Warnings associated with the [access code](/low-level-apis/smart-locks/access-codes). diff --git a/mintlify-docs/api/access_grants/errors.mdx b/mintlify-docs/api/access_grants/errors.mdx index 113fd58c3..4af32911b 100644 --- a/mintlify-docs/api/access_grants/errors.mdx +++ b/mintlify-docs/api/access_grants/errors.mdx @@ -100,7 +100,7 @@ Each warning is an object with the following shape: ### `being_deleted` -Indicates that the [access grant](https://docs.seam.co/use-cases/granting-access) is being deleted. +Indicates that the [access grant](/use-cases/granting-access) is being deleted. --- @@ -136,6 +136,6 @@ Indicates that the access grant should have access to more locations than it cur ### `updating_access_times` -Indicates that the access times for this [access grant](https://docs.seam.co/use-cases/granting-access) are being updated. +Indicates that the access times for this [access grant](/use-cases/granting-access) are being updated. --- diff --git a/mintlify-docs/api/access_grants/events.mdx b/mintlify-docs/api/access_grants/events.mdx index 386c09a49..8dfd6aa08 100644 --- a/mintlify-docs/api/access_grants/events.mdx +++ b/mintlify-docs/api/access_grants/events.mdx @@ -171,7 +171,7 @@ Access requested as part of an Access Grant to a particular door was successfull - ID of the affected [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + ID of the affected [entrance](/low-level-apis/access-systems/retrieving-entrance-details). @@ -223,7 +223,7 @@ Access to a particular door that was requested as part of an Access Grant was lo - ID of the affected [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + ID of the affected [entrance](/low-level-apis/access-systems/retrieving-entrance-details). diff --git a/mintlify-docs/api/access_grants/object.mdx b/mintlify-docs/api/access_grants/object.mdx index e1097ecbf..9c5fa498c 100644 --- a/mintlify-docs/api/access_grants/object.mdx +++ b/mintlify-docs/api/access_grants/object.mdx @@ -96,7 +96,7 @@ Represents an Access Grant. Access Grants enable you to grant a user identity ac - Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access). + Errors associated with the [access grant](/use-cases/granting-access). @@ -136,7 +136,7 @@ Represents an Access Grant. Access Grants enable you to grant a user identity ac - Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access). + Warnings associated with the [access grant](/use-cases/granting-access). diff --git a/mintlify-docs/api/access_methods/errors.mdx b/mintlify-docs/api/access_methods/errors.mdx index 1f1d1313f..71a4f446e 100644 --- a/mintlify-docs/api/access_methods/errors.mdx +++ b/mintlify-docs/api/access_methods/errors.mdx @@ -39,7 +39,7 @@ Each warning is an object with the following shape: ### `being_deleted` -Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted. +Indicates that the [access method](/use-cases/granting-access/creating-an-access-grant) is being deleted. --- @@ -51,6 +51,6 @@ Indicates that all attempts to create an access code on this device before the s ### `updating_access_times` -Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated. +Indicates that the access times for this [access method](/use-cases/granting-access/creating-an-access-grant) are being updated. --- diff --git a/mintlify-docs/api/access_methods/object.mdx b/mintlify-docs/api/access_methods/object.mdx index fcf18a07d..c263701b0 100644 --- a/mintlify-docs/api/access_methods/object.mdx +++ b/mintlify-docs/api/access_methods/object.mdx @@ -121,11 +121,11 @@ Represents an access method for an Access Grant. Access methods describe the mod - Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress. + Pending mutations for the [access method](/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress. - Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). + Warnings associated with the [access method](/use-cases/granting-access/creating-an-access-grant). diff --git a/mintlify-docs/api/acs/access_groups/errors.mdx b/mintlify-docs/api/acs/access_groups/errors.mdx index 1bce31da8..61c207480 100644 --- a/mintlify-docs/api/acs/access_groups/errors.mdx +++ b/mintlify-docs/api/acs/access_groups/errors.mdx @@ -35,6 +35,6 @@ Each error is an object with the following shape: ### `failed_to_create_on_acs_system` -Indicates that the [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups) was not created on the [access system](https://docs.seam.co/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). +Indicates that the [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups) was not created on the [access system](/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). --- diff --git a/mintlify-docs/api/acs/access_groups/object.mdx b/mintlify-docs/api/acs/access_groups/object.mdx index 5f7bcebcc..aea65e3ff 100644 --- a/mintlify-docs/api/acs/access_groups/object.mdx +++ b/mintlify-docs/api/acs/access_groups/object.mdx @@ -7,9 +7,9 @@ description: 'Learn how the acs_access_group object defines the entrances a set Group that defines the entrances to which a set of users has access and, in some cases, the access schedule for these entrances and users. -Some access control systems use [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. +Some access control systems use [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. -To learn whether your access control system supports access groups, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). +To learn whether your access control system supports access groups, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). diff --git a/mintlify-docs/api/acs/credentials/errors.mdx b/mintlify-docs/api/acs/credentials/errors.mdx index e64e18d05..1389e408e 100644 --- a/mintlify-docs/api/acs/credentials/errors.mdx +++ b/mintlify-docs/api/acs/credentials/errors.mdx @@ -35,36 +35,36 @@ Each warning is an object with the following shape: ### `being_deleted` -Indicates that the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is being deleted. +Indicates that the [credential](/low-level-apis/access-systems/managing-credentials) is being deleted. --- ### `needs_to_be_reissued` -Access permissions for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) have changed. [Reissue](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners/creating-and-encoding-card-based-credentials) (re-encode) the credential. This issue may affect the proper functioning of the credential. +Access permissions for the [credential](/low-level-apis/access-systems/managing-credentials) have changed. [Reissue](/low-level-apis/access-systems/working-with-card-encoders-and-scanners/creating-and-encoding-card-based-credentials) (re-encode) the credential. This issue may affect the proper functioning of the credential. --- ### `schedule_externally_modified` -Indicates that the schedule of one of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials)'s children was modified externally. +Indicates that the schedule of one of the [credential](/low-level-apis/access-systems/managing-credentials)'s children was modified externally. --- ### `schedule_modified` -Indicates that the schedule of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was modified to avoid creating a credential with a start date in the past. +Indicates that the schedule of the [credential](/low-level-apis/access-systems/managing-credentials) was modified to avoid creating a credential with a start date in the past. --- ### `unknown_issue_with_acs_credential` -An unknown issue occurred while syncing the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) with the provider. This issue may affect the proper functioning of the credential. +An unknown issue occurred while syncing the state of the [credential](/low-level-apis/access-systems/managing-credentials) with the provider. This issue may affect the proper functioning of the credential. --- ### `waiting_to_be_issued` -Indicates that the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is waiting to be issued. +Indicates that the [credential](/low-level-apis/access-systems/managing-credentials) is waiting to be issued. --- diff --git a/mintlify-docs/api/acs/credentials/events.mdx b/mintlify-docs/api/acs/credentials/events.mdx index f87244f28..5f89c07c1 100644 --- a/mintlify-docs/api/acs/credentials/events.mdx +++ b/mintlify-docs/api/acs/credentials/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Credential resource, with e ## `acs_credential.deleted` -An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was deleted. +An [access system credential](/low-level-apis/access-systems/managing-credentials) was deleted. @@ -62,7 +62,7 @@ An [access system credential](https://docs.seam.co/low-level-apis/access-systems ## `acs_credential.issued` -An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was issued. +An [access system credential](/low-level-apis/access-systems/managing-credentials) was issued. @@ -119,7 +119,7 @@ An [access system credential](https://docs.seam.co/low-level-apis/access-systems ## `acs_credential.reissued` -An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was reissued. +An [access system credential](/low-level-apis/access-systems/managing-credentials) was reissued. @@ -176,7 +176,7 @@ An [access system credential](https://docs.seam.co/low-level-apis/access-systems ## `acs_credential.invalidated` -An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was invalidated. That is, the credential cannot be used anymore. +An [access system credential](/low-level-apis/access-systems/managing-credentials) was invalidated. That is, the credential cannot be used anymore. diff --git a/mintlify-docs/api/acs/credentials/object.mdx b/mintlify-docs/api/acs/credentials/object.mdx index 537beecd3..900bcd02a 100644 --- a/mintlify-docs/api/acs/credentials/object.mdx +++ b/mintlify-docs/api/acs/credentials/object.mdx @@ -5,13 +5,13 @@ description: 'Learn how the acs_credential object represents the means—such as ## The acs_credential Object -Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems). +Means by which an [access control system user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems). An access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs. For each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type. -For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials. +For granting a person access to a space, [Access Grants](/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials. @@ -102,11 +102,11 @@ For granting a person access to a space, [Access Grants](https://docs.seam.co/us ## Properties - Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`. + Access method for the [credential](/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`. - ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + ID of the [credential](/low-level-apis/access-systems/managing-credentials). @@ -114,15 +114,15 @@ For granting a person access to a space, [Access Grants](https://docs.seam.co/us - ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + ID of the [access control system](/low-level-apis/access-systems) that contains the [credential](/low-level-apis/access-systems/managing-credentials). - ID of the [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. + ID of the [ACS user](/low-level-apis/access-systems/user-management) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs. - Vostio-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + Vostio-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials). Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. @@ -146,47 +146,47 @@ For granting a person access to a space, [Access Grants](https://docs.seam.co/us - Number of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + Number of the card associated with the [credential](/low-level-apis/access-systems/managing-credentials). - Access (PIN) code for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + Access (PIN) code for the [credential](/low-level-apis/access-systems/managing-credentials). - ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/managing-credentials#connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. + ID of the [connected account](/low-level-apis/access-systems/managing-credentials) to which the [credential](/low-level-apis/access-systems/managing-credentials) belongs. - Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created. + Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was created. - Display name that corresponds to the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. + Display name that corresponds to the [credential](/low-level-apis/access-systems/managing-credentials) type. - Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. + Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. - Errors associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + Errors associated with the [credential](/low-level-apis/access-systems/managing-credentials). - Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. + Brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. - Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. + Display name that corresponds to the brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type. - Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been encoded onto a card. + Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) has been encoded onto a card. - Indicates whether the latest state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider. + Indicates whether the latest state of the [credential](/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider. @@ -194,35 +194,35 @@ For granting a person access to a space, [Access Grants](https://docs.seam.co/us - Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). + Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). - Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. + Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. - Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was encoded onto a card. + Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was encoded onto a card. - Date and time at which the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider. + Date and time at which the state of the [credential](/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider. - ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + ID of the parent [credential](/low-level-apis/access-systems/managing-credentials). - Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - ID of the [user identity](https://docs.seam.co/api/user_identities/object) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. + ID of the [user identity](/api/user_identities/object) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs. - Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + Visionline-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials). Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. @@ -252,9 +252,9 @@ For granting a person access to a space, [Access Grants](https://docs.seam.co/us - Warnings associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + Warnings associated with the [credential](/low-level-apis/access-systems/managing-credentials). - ID of the workspace that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + ID of the workspace that contains the [credential](/low-level-apis/access-systems/managing-credentials). diff --git a/mintlify-docs/api/acs/encoders/events.mdx b/mintlify-docs/api/acs/encoders/events.mdx index dd85abf13..b54bbce11 100644 --- a/mintlify-docs/api/acs/encoders/events.mdx +++ b/mintlify-docs/api/acs/encoders/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Encoder resource, with exam ## `acs_encoder.added` -An [access system encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was added. +An [access system encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was added. @@ -62,7 +62,7 @@ An [access system encoder](https://docs.seam.co/low-level-apis/access-systems/wo ## `acs_encoder.removed` -An [access system encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was removed. +An [access system encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was removed. diff --git a/mintlify-docs/api/acs/encoders/object.mdx b/mintlify-docs/api/acs/encoders/object.mdx index fea6fad33..5a22f1ca6 100644 --- a/mintlify-docs/api/acs/encoders/object.mdx +++ b/mintlify-docs/api/acs/encoders/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the acs_encoder object represents a hardware device that ## The acs_encoder Object -Represents a hardware device that encodes [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](https://docs.seam.co/low-level-apis/access-systems). +Represents a hardware device that encodes [credential](/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](/low-level-apis/access-systems). Some access control systems require credentials to be encoded onto plastic key cards using a card encoder. This process involves the following two key steps: @@ -16,9 +16,9 @@ Some access control systems require credentials to be encoded onto plastic key c Separately, the Seam API also supports card scanning, which enables you to scan and read the encoded data on a card. You can use this action to confirm consistency with access control system records or diagnose discrepancies if needed. -See [Working with Card Encoders and Scanners](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). +See [Working with Card Encoders and Scanners](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). -To verify if your access control system requires a card encoder, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). +To verify if your access control system requires a card encoder, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). @@ -41,29 +41,29 @@ To verify if your access control system requires a card encoder, see the corresp ## Properties - ID of the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners. + ID of the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners. - ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + ID of the [access control system](/low-level-apis/access-systems) that contains the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - ID of the connected account that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + ID of the connected account that contains the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - Date and time at which the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was created. + Date and time at which the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was created. - Display name for the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + Display name for the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - Errors associated with the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + Errors associated with the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - ID of the workspace that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + ID of the workspace that contains the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). diff --git a/mintlify-docs/api/acs/encoders/simulate/object.mdx b/mintlify-docs/api/acs/encoders/simulate/object.mdx index cce6545b3..24f7bb24e 100644 --- a/mintlify-docs/api/acs/encoders/simulate/object.mdx +++ b/mintlify-docs/api/acs/encoders/simulate/object.mdx @@ -7,16 +7,16 @@ description: 'Use the encoder simulation endpoints to make the next credential e [**`/acs/encoders/simulate/next_credential_encode_will_fail`**](./next_credential_encode_will_fail) -Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). +Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). [**`/acs/encoders/simulate/next_credential_encode_will_succeed`**](./next_credential_encode_will_succeed) -Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). +Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). [**`/acs/encoders/simulate/next_credential_scan_will_fail`**](./next_credential_scan_will_fail) -Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). +Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). [**`/acs/encoders/simulate/next_credential_scan_will_succeed`**](./next_credential_scan_will_succeed) -Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). +Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/acs/entrances/events.mdx b/mintlify-docs/api/acs/entrances/events.mdx index 49a205aee..7b49e8466 100644 --- a/mintlify-docs/api/acs/entrances/events.mdx +++ b/mintlify-docs/api/acs/entrances/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Entrance resource, with exa ## `acs_entrance.added` -An [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was added. +An [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details) was added. @@ -62,7 +62,7 @@ An [access system entrance](https://docs.seam.co/low-level-apis/access-systems/r ## `acs_entrance.removed` -An [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was removed. +An [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details) was removed. diff --git a/mintlify-docs/api/acs/entrances/object.mdx b/mintlify-docs/api/acs/entrances/object.mdx index c85e358be..f9bb7dfb0 100644 --- a/mintlify-docs/api/acs/entrances/object.mdx +++ b/mintlify-docs/api/acs/entrances/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the acs_entrance object represents a secured door, gate, ## The acs_entrance Object -Represents an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/low-level-apis/access-systems). +Represents an [entrance](/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](/low-level-apis/access-systems). In an access control system, an entrance is a secured door, gate, zone, or other method of entry. You can list details for all the `acs_entrance` resources in your workspace or get these details for a specific `acs_entrance`. You can also list all entrances associated with a specific credential, and you can list all credentials associated with a specific entrance. @@ -41,15 +41,15 @@ In an access control system, an entrance is a secured door, gate, zone, or other ## Properties - ID of the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + ID of the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). - ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + ID of the [access control system](/low-level-apis/access-systems) that contains the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). - ASSA ABLOY Vostio-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + ASSA ABLOY Vostio-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). Name of the door in the Vostio access system. @@ -70,7 +70,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Avigilon Alta-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + Avigilon Alta-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). Entry name for an Avigilon Alta system. @@ -97,7 +97,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Brivo-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + Brivo-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). ID of the access point in the Brivo access system. @@ -132,19 +132,19 @@ In an access control system, an entrance is a secured door, gate, zone, or other - ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + ID of the [connected account](/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). - Date and time at which the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was created. + Date and time at which the [entrance](/low-level-apis/access-systems/retrieving-entrance-details) was created. - Display name for the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + Display name for the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). - dormakaba Ambiance-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + dormakaba Ambiance-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). Name of the access point in the dormakaba Ambiance access system. @@ -153,7 +153,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other - dormakaba Community-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + dormakaba Community-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). Type of access point profile in the dormakaba Community access system. @@ -162,11 +162,11 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Errors associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + Errors associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). - Hotek-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + Hotek-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). Display name of the entrance. @@ -181,11 +181,11 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Indicates whether the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) is currently locked. + Indicates whether the [entrance](/low-level-apis/access-systems/retrieving-entrance-details) is currently locked. - Latch-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + Latch-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). Accessibility type in the Latch access system. @@ -203,7 +203,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Salto KS-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + Salto KS-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). Battery level of the door access device. @@ -233,7 +233,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Salto Space-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + Salto Space-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). Indicates whether AuditOnKeys is enabled for the door in the Salto Space access system. @@ -261,7 +261,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Visionline-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + Visionline-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). Category of the door in the Visionline access system. @@ -276,5 +276,5 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Warnings associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + Warnings associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). diff --git a/mintlify-docs/api/acs/object.mdx b/mintlify-docs/api/acs/object.mdx index 44a38d180..96a3567dc 100644 --- a/mintlify-docs/api/acs/object.mdx +++ b/mintlify-docs/api/acs/object.mdx @@ -26,27 +26,27 @@ The Access Control Systems (ACS) namespace contains the following resources: Group that defines the entrances to which a set of users has access and, in some cases, the access schedule for these entrances and users. -Some access control systems use [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. +Some access control systems use [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. -To learn whether your access control system supports access groups, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). +To learn whether your access control system supports access groups, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). --- ### [`acs_credential`](#acs_credential) -Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems). +Means by which an [access control system user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems). An access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs. For each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type. -For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials. +For granting a person access to a space, [Access Grants](/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials. --- ### [`acs_encoder`](#acs_encoder) -Represents a hardware device that encodes [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](https://docs.seam.co/low-level-apis/access-systems). +Represents a hardware device that encodes [credential](/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](/low-level-apis/access-systems). Some access control systems require credentials to be encoded onto plastic key cards using a card encoder. This process involves the following two key steps: @@ -57,15 +57,15 @@ Some access control systems require credentials to be encoded onto plastic key c Separately, the Seam API also supports card scanning, which enables you to scan and read the encoded data on a card. You can use this action to confirm consistency with access control system records or diagnose discrepancies if needed. -See [Working with Card Encoders and Scanners](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). +See [Working with Card Encoders and Scanners](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). -To verify if your access control system requires a card encoder, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). +To verify if your access control system requires a card encoder, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). --- ### [`acs_entrance`](#acs_entrance) -Represents an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/low-level-apis/access-systems). +Represents an [entrance](/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](/low-level-apis/access-systems). In an access control system, an entrance is a secured door, gate, zone, or other method of entry. You can list details for all the `acs_entrance` resources in your workspace or get these details for a specific `acs_entrance`. You can also list all entrances associated with a specific credential, and you can list all credentials associated with a specific entrance. @@ -73,20 +73,20 @@ In an access control system, an entrance is a secured door, gate, zone, or other ### [`acs_system`](#acs_system) -Represents an [access control system](https://docs.seam.co/low-level-apis/access-systems). +Represents an [access control system](/low-level-apis/access-systems). -Within an `acs_system`, create [`acs_user`s](https://docs.seam.co/api/acs/users/object#acs_user) and [`acs_credential`s](https://docs.seam.co/api/acs/credentials/object#acs_credential) to grant access to the `acs_user`s. +Within an `acs_system`, create [`acs_user`s](/api/acs/users/object) and [`acs_credential`s](/api/acs/credentials/object) to grant access to the `acs_user`s. -For details about the resources associated with an access control system, see the [access control systems namespace](https://docs.seam.co/api/acs/object). +For details about the resources associated with an access control system, see the [access control systems namespace](/api/acs/object). --- ### [`acs_user`](#acs_user) -Represents a [user](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access system](https://docs.seam.co/low-level-apis/access-systems). +Represents a [user](/low-level-apis/access-systems/user-management) in an [access system](/low-level-apis/access-systems). An access system user typically refers to an individual who requires access, like an employee or resident. Each user can possess multiple credentials that serve as their keys or identifiers for access. The type of credential can vary widely. For example, in the Salto system, a user can have a PIN code, a mobile app account, and a fob. In other platforms, it is not uncommon for a user to have more than one of the same credential type, such as multiple key cards. Additionally, these credentials can have a schedule or validity period. -For details about how to configure users in your access system, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). +For details about how to configure users in your access system, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). --- diff --git a/mintlify-docs/api/acs/systems/errors.mdx b/mintlify-docs/api/acs/systems/errors.mdx index a20abd3c1..ea2d1bdc6 100644 --- a/mintlify-docs/api/acs/systems/errors.mdx +++ b/mintlify-docs/api/acs/systems/errors.mdx @@ -32,27 +32,27 @@ Each error is an object with the following shape: - Indicates whether the error is related to the [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + Indicates whether the error is related to the [Seam Bridge](/capability-guides/seam-bridge). ### `account_disconnected` -Indicates that the login credentials are invalid. Reconnect the account using a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) to restore access. +Indicates that the login credentials are invalid. Reconnect the account using a [Connect Webview](/core-concepts/connect-webviews) to restore access. --- ### `acs_system_disconnected` -Indicates that the [access control system](https://docs.seam.co/low-level-apis/access-systems) has been disconnected. See [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system) to resolve the issue. +Indicates that the [access control system](/low-level-apis/access-systems) has been disconnected. See [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system) to resolve the issue. --- ### `bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. -See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. +See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). --- @@ -64,7 +64,7 @@ Indicates that the access control system provider's service is temporarily unava ### `salto_ks_certification_expired` -Indicates that the [access control system](https://docs.seam.co/low-level-apis/access-systems) has lost its Salto KS certification. Contact [support](mailto:support@seam.co) to regain access. +Indicates that the [access control system](/low-level-apis/access-systems) has lost its Salto KS certification. Contact [support](mailto:support@seam.co) to regain access. --- @@ -76,17 +76,17 @@ Indicates that the maximum number of users allowed for the site has been reached ### `seam_bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. -This error might also occur if Seam Bridge is connected to the wrong [workspace](https://docs.seam.co/core-concepts/workspaces). -See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. +This error might also occur if Seam Bridge is connected to the wrong [workspace](/core-concepts/workspaces). +See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). --- ### `visionline_instance_unreachable` -Indicates that [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge) is functioning correctly and the Seam API can communicate with Seam Bridge, but the Seam API cannot connect to the on-premises [Visionline access control system](https://docs.seam.co/device-and-system-integration-guides/assa-abloy-visionline-access-control-system). -For example, the IP address of the on-premises access control system may be set incorrectly within the Seam [workspace](https://docs.seam.co/core-concepts/workspaces). -See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.visionline_instance_unreachable). +Indicates that [Seam Bridge](/capability-guides/seam-bridge) is functioning correctly and the Seam API can communicate with Seam Bridge, but the Seam API cannot connect to the on-premises [Visionline access control system](/device-and-system-integration-guides/assa-abloy-visionline-access-control-system). +For example, the IP address of the on-premises access control system may be set incorrectly within the Seam [workspace](/core-concepts/workspaces). +See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-visionline_instance_unreachable). --- @@ -138,6 +138,6 @@ Indicates that the access control system requires additional setup before it can ### `time_zone_does_not_match_location` -Indicates the [access control system](https://docs.seam.co/low-level-apis/access-systems) time zone could not be determined because the reported physical location does not match the time zone configured on the physical [ACS entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). +Indicates the [access control system](/low-level-apis/access-systems) time zone could not be determined because the reported physical location does not match the time zone configured on the physical [ACS entrances](/low-level-apis/access-systems/retrieving-entrance-details). --- diff --git a/mintlify-docs/api/acs/systems/events.mdx b/mintlify-docs/api/acs/systems/events.mdx index edf5a4a30..36516e960 100644 --- a/mintlify-docs/api/acs/systems/events.mdx +++ b/mintlify-docs/api/acs/systems/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the ACS System resource, with e ## `acs_system.connected` -An [access system](https://docs.seam.co/low-level-apis/access-systems) was connected. +An [access system](/low-level-apis/access-systems) was connected. @@ -57,7 +57,7 @@ An [access system](https://docs.seam.co/low-level-apis/access-systems) was conne ## `acs_system.added` -An [access system](https://docs.seam.co/low-level-apis/access-systems) was added. +An [access system](/low-level-apis/access-systems) was added. @@ -109,7 +109,7 @@ An [access system](https://docs.seam.co/low-level-apis/access-systems) was added ## `acs_system.disconnected` -An [access system](https://docs.seam.co/low-level-apis/access-systems) was disconnected. +An [access system](/low-level-apis/access-systems) was disconnected. diff --git a/mintlify-docs/api/acs/systems/object.mdx b/mintlify-docs/api/acs/systems/object.mdx index 7534bf14f..2a6c3d07b 100644 --- a/mintlify-docs/api/acs/systems/object.mdx +++ b/mintlify-docs/api/acs/systems/object.mdx @@ -5,11 +5,11 @@ description: 'Learn how the acs_system object represents an access control syste ## The acs_system Object -Represents an [access control system](https://docs.seam.co/low-level-apis/access-systems). +Represents an [access control system](/low-level-apis/access-systems). -Within an `acs_system`, create [`acs_user`s](https://docs.seam.co/api/acs/users/object#acs_user) and [`acs_credential`s](https://docs.seam.co/api/acs/credentials/object#acs_credential) to grant access to the `acs_user`s. +Within an `acs_system`, create [`acs_user`s](/api/acs/users/object) and [`acs_credential`s](/api/acs/credentials/object) to grant access to the `acs_user`s. -For details about the resources associated with an access control system, see the [access control systems namespace](https://docs.seam.co/api/acs/object). +For details about the resources associated with an access control system, see the [access control systems namespace](/api/acs/object). @@ -46,51 +46,51 @@ For details about the resources associated with an access control system, see th ## Properties - Number of access groups in the [access control system](https://docs.seam.co/low-level-apis/access-systems). + Number of access groups in the [access control system](/low-level-apis/access-systems). - ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems). + ID of the [access control system](/low-level-apis/access-systems). - Number of users in the [access control system](https://docs.seam.co/low-level-apis/access-systems). + Number of users in the [access control system](/low-level-apis/access-systems). - ID of the connected account associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems). + ID of the connected account associated with the [access control system](/low-level-apis/access-systems). - IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems). + IDs of the [connected accounts](/core-concepts/connected-accounts) associated with the [access control system](/low-level-apis/access-systems). - Date and time at which the [access control system](https://docs.seam.co/low-level-apis/access-systems) was created. + Date and time at which the [access control system](/low-level-apis/access-systems) was created. - ID of the default credential manager `acs_system` for this [access control system](https://docs.seam.co/low-level-apis/access-systems). + ID of the default credential manager `acs_system` for this [access control system](/low-level-apis/access-systems). - Errors associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems). + Errors associated with the [access control system](/low-level-apis/access-systems). - Brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type. + Brand-specific terminology for the [access control system](/low-level-apis/access-systems) type. - Display name that corresponds to the brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type. + Display name that corresponds to the brand-specific terminology for the [access control system](/low-level-apis/access-systems) type. - Alternative text for the [access control system](https://docs.seam.co/low-level-apis/access-systems) image. + Alternative text for the [access control system](/low-level-apis/access-systems) image. - URL for the image that represents the [access control system](https://docs.seam.co/low-level-apis/access-systems). + URL for the image that represents the [access control system](/low-level-apis/access-systems). @@ -98,16 +98,16 @@ For details about the resources associated with an access control system, see th - Location information for the [access control system](https://docs.seam.co/low-level-apis/access-systems). + Location information for the [access control system](/low-level-apis/access-systems). - Time zone in which the [access control system](https://docs.seam.co/low-level-apis/access-systems) is located. + Time zone in which the [access control system](/low-level-apis/access-systems) is located. - Name of the [access control system](https://docs.seam.co/low-level-apis/access-systems). + Name of the [access control system](/low-level-apis/access-systems). @@ -119,10 +119,10 @@ For details about the resources associated with an access control system, see th - Visionline-specific metadata for the [access control system](https://docs.seam.co/low-level-apis/access-systems). + Visionline-specific metadata for the [access control system](/low-level-apis/access-systems). - IP address or hostname of the main Visionline server relative to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge) on the local network. + IP address or hostname of the main Visionline server relative to [Seam Bridge](/capability-guides/seam-bridge) on the local network. Keyset loaded into a reader. Mobile keys and reader administration tools securely authenticate only with readers programmed with a matching keyset. @@ -134,9 +134,9 @@ For details about the resources associated with an access control system, see th - Warnings associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems). + Warnings associated with the [access control system](/low-level-apis/access-systems). - ID of the workspace that contains the [access control system](https://docs.seam.co/low-level-apis/access-systems). + ID of the workspace that contains the [access control system](/low-level-apis/access-systems). diff --git a/mintlify-docs/api/acs/users/errors.mdx b/mintlify-docs/api/acs/users/errors.mdx index 4bd25b232..fa73f4439 100644 --- a/mintlify-docs/api/acs/users/errors.mdx +++ b/mintlify-docs/api/acs/users/errors.mdx @@ -35,37 +35,37 @@ Each error is an object with the following shape: ### `deleted_externally` -Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was deleted from the [access system](https://docs.seam.co/low-level-apis/access-systems) outside of Seam. +Indicates that the [access system user](/low-level-apis/access-systems/user-management) was deleted from the [access system](/low-level-apis/access-systems) outside of Seam. --- ### `failed_to_create_on_acs_system` -Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was not created on the [access system](https://docs.seam.co/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). +Indicates that the [access system user](/low-level-apis/access-systems/user-management) was not created on the [access system](/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). --- ### `failed_to_delete_on_acs_system` -Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was not deleted on the [access system](https://docs.seam.co/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). +Indicates that the [access system user](/low-level-apis/access-systems/user-management) was not deleted on the [access system](/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). --- ### `failed_to_update_on_acs_system` -Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was not updated on the [access system](https://docs.seam.co/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). +Indicates that the [access system user](/low-level-apis/access-systems/user-management) was not updated on the [access system](/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). --- ### `latch_conflict_with_resident_user` -Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created from the Seam API but also exists on Mission Control. This is unsupported. Contact Seam [support](mailto:support@seam.co). +Indicates that the [access system user](/low-level-apis/access-systems/user-management) was created from the Seam API but also exists on Mission Control. This is unsupported. Contact Seam [support](mailto:support@seam.co). --- ### `salto_ks_subscription_limit_exceeded` -Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) could not be subscribed on Salto KS because the subscription limit has been exceeded. +Indicates that the [access system user](/low-level-apis/access-systems/user-management) could not be subscribed on Salto KS because the subscription limit has been exceeded. --- @@ -101,24 +101,24 @@ Each warning is an object with the following shape: ### `being_deleted` -Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is being deleted from the [access system](https://docs.seam.co/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly. +Indicates that the [access system user](/low-level-apis/access-systems/user-management) is being deleted from the [access system](/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly. --- ### `latch_resident_user` -Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user. +Indicates that the [access system user](/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user. --- ### `salto_ks_user_not_subscribed` -Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed. +Indicates that the [access system user](/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed. --- ### `unknown_issue_with_acs_user` -An unknown issue occurred while syncing the state of this [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user. +An unknown issue occurred while syncing the state of this [access system user](/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user. --- diff --git a/mintlify-docs/api/acs/users/events.mdx b/mintlify-docs/api/acs/users/events.mdx index 77841774d..e77218a69 100644 --- a/mintlify-docs/api/acs/users/events.mdx +++ b/mintlify-docs/api/acs/users/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the ACS User resource, with exa ## `acs_user.created` -An [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created. +An [access system user](/low-level-apis/access-systems/user-management) was created. @@ -62,7 +62,7 @@ An [access system user](https://docs.seam.co/low-level-apis/access-systems/user- ## `acs_user.deleted` -An [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was deleted. +An [access system user](/low-level-apis/access-systems/user-management) was deleted. diff --git a/mintlify-docs/api/acs/users/object.mdx b/mintlify-docs/api/acs/users/object.mdx index c809cd62d..609082ed7 100644 --- a/mintlify-docs/api/acs/users/object.mdx +++ b/mintlify-docs/api/acs/users/object.mdx @@ -5,11 +5,11 @@ description: 'Learn how the acs_user object represents an individual—such as a ## The acs_user Object -Represents a [user](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access system](https://docs.seam.co/low-level-apis/access-systems). +Represents a [user](/low-level-apis/access-systems/user-management) in an [access system](/low-level-apis/access-systems). An access system user typically refers to an individual who requires access, like an employee or resident. Each user can possess multiple credentials that serve as their keys or identifiers for access. The type of credential can vary widely. For example, in the Salto system, a user can have a PIN code, a mobile app account, and a fob. In other platforms, it is not uncommon for a user to have more than one of the same credential type, such as multiple key cards. Additionally, these credentials can have a schedule or validity period. -For details about how to configure users in your access system, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). +For details about how to configure users in your access system, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). @@ -63,7 +63,7 @@ For details about how to configure users in your access system, see the correspo ## Properties - `starts_at` and `ends_at` timestamps for the [access system user's](https://docs.seam.co/low-level-apis/access-systems/user-management) access. + `starts_at` and `ends_at` timestamps for the [access system user's](/low-level-apis/access-systems/user-management) access. Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. @@ -75,23 +75,23 @@ For details about how to configure users in your access system, see the correspo - ID of the [access system](https://docs.seam.co/low-level-apis/access-systems) that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + ID of the [access system](/low-level-apis/access-systems) that contains the [access system user](/low-level-apis/access-systems/user-management). - ID of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + ID of the [access system user](/low-level-apis/access-systems/user-management). - The ID of the connected account that is associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + The ID of the connected account that is associated with the [access system user](/low-level-apis/access-systems/user-management). - Date and time at which the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created. + Date and time at which the [access system user](/low-level-apis/access-systems/user-management) was created. - Display name for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + Display name for the [access system user](/low-level-apis/access-systems/user-management). @@ -99,23 +99,23 @@ For details about how to configure users in your access system, see the correspo - Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + Email address of the [access system user](/low-level-apis/access-systems/user-management). - Errors associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + Errors associated with the [access system user](/low-level-apis/access-systems/user-management). - Brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type. + Brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type. - Display name that corresponds to the brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type. + Display name that corresponds to the brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type. - Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + Full name of the [access system user](/low-level-apis/access-systems/user-management). @@ -127,19 +127,19 @@ For details about how to configure users in your access system, see the correspo - Indicates whether the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is currently [suspended](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users). + Indicates whether the [access system user](/low-level-apis/access-systems/user-management) is currently [suspended](/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users). - Pending mutations associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. + Pending mutations associated with the [access system user](/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. - Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). + Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). - Salto Space-specific metadata associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + Salto Space-specific metadata associated with the [access system user](/low-level-apis/access-systems/user-management). Indicates whether AuditOpenings is enabled for the user in the Salto Space access system. @@ -151,25 +151,25 @@ For details about how to configure users in your access system, see the correspo - Email address of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + Email address of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management). - Full name of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + Full name of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management). - ID of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + ID of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management). - Phone number of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). + Phone number of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). - Warnings associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + Warnings associated with the [access system user](/low-level-apis/access-systems/user-management). - ID of the workspace that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + ID of the workspace that contains the [access system user](/low-level-apis/access-systems/user-management). diff --git a/mintlify-docs/api/action_attempts/object.mdx b/mintlify-docs/api/action_attempts/object.mdx index 287082197..cb4a65ad5 100644 --- a/mintlify-docs/api/action_attempts/object.mdx +++ b/mintlify-docs/api/action_attempts/object.mdx @@ -85,8 +85,8 @@ Result of the action attempt. Null for pending and errored action attempts. [**`/action_attempts/get`**](./get) -Returns a specified [action attempt](https://docs.seam.co/core-concepts/action-attempts). +Returns a specified [action attempt](/core-concepts/action-attempts). [**`/action_attempts/list`**](./list) -Returns a list of the [action attempts](https://docs.seam.co/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s. +Returns a list of the [action attempts](/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s. diff --git a/mintlify-docs/api/client_sessions/object.mdx b/mintlify-docs/api/client_sessions/object.mdx index be232fdb0..098f54e41 100644 --- a/mintlify-docs/api/client_sessions/object.mdx +++ b/mintlify-docs/api/client_sessions/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the client_session object restricts your users to their ## The client_session Object -Represents a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). If you want to restrict your users' access to their own devices, use client sessions. +Represents a [client session](/core-concepts/authentication/client-session-tokens). If you want to restrict your users' access to their own devices, use client sessions. You create each client session with a custom `user_identifier_key`. Normally, the `user_identifier_key` is a user ID that your application provides. @@ -13,7 +13,7 @@ When calling the Seam API from your backend using an API key, you can pass the ` A client session has a token that you can use with the Seam JavaScript SDK to make requests from the client (browser) directly to the Seam API. The token restricts the user's access to only the devices that they own. -See also [Get Started with React](https://docs.seam.co/ui-components/overview/getting-started-with-seam-components/get-started-with-react-components-and-client-session-tokens). +See also [Get Started with React](/ui-components/overview/getting-started-with-seam-components/get-started-with-react-components-and-client-session-tokens). @@ -51,43 +51,43 @@ See also [Get Started with React](https://docs.seam.co/ui-components/overview/ge - IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). + IDs of the [Connect Webviews](/core-concepts/connect-webviews) associated with the [client session](/core-concepts/authentication/client-session-tokens). - IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). + IDs of the [connected accounts](/core-concepts/connected-accounts) associated with the [client session](/core-concepts/authentication/client-session-tokens). - Date and time at which the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) was created. + Date and time at which the [client session](/core-concepts/authentication/client-session-tokens) was created. - Customer key associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). + Customer key associated with the [client session](/core-concepts/authentication/client-session-tokens). - Number of devices associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). + Number of devices associated with the [client session](/core-concepts/authentication/client-session-tokens). - Date and time at which the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) expires. + Date and time at which the [client session](/core-concepts/authentication/client-session-tokens) expires. - Client session token associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). + Client session token associated with the [client session](/core-concepts/authentication/client-session-tokens). - Your user ID for the user associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). + Your user ID for the user associated with the [client session](/core-concepts/authentication/client-session-tokens). - ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session. + ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session. - IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session. + IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session. diff --git a/mintlify-docs/api/connect_webviews/object.mdx b/mintlify-docs/api/connect_webviews/object.mdx index 75c8d382e..03f1b84f5 100644 --- a/mintlify-docs/api/connect_webviews/object.mdx +++ b/mintlify-docs/api/connect_webviews/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the connect_webview object embeds a client-side flow tha ## The connect_webview Object -Represents a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews). +Represents a [Connect Webview](/core-concepts/connect-webviews). Connect Webviews are fully-embedded client-side components that you add to your app. Your users interact with your embedded Connect Webviews to link their IoT device or system accounts to Seam. That is, Connect Webviews walk your users through the process of logging in to their device or system accounts. Seam handles all the authentication steps, and—once your user has completed the authorization through your app—you can access and control their devices or systems using the Seam API. @@ -65,7 +65,7 @@ To list all providers within a category, use `/devices/list_device_providers` wi - List of accepted [provider keys](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). + List of accepted [provider keys](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). @@ -77,7 +77,7 @@ To list all providers within a category, use `/devices/list_device_providers` wi - Indicates whether Seam should [import all new devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for use and management by the Seam API. + Indicates whether Seam should [import all new devices](/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for use and management by the Seam API. @@ -93,7 +93,7 @@ To list all providers within a category, use `/devices/list_device_providers` wi - Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. @@ -117,7 +117,7 @@ To list all providers within a category, use `/devices/list_device_providers` wi - Selected provider of the Connect Webview, one of the [provider keys](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). + Selected provider of the Connect Webview, one of the [provider keys](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). @@ -129,7 +129,7 @@ To list all providers within a category, use `/devices/list_device_providers` wi - Indicates whether Seam should [finish syncing all devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#wait_for_device_creation) in a newly-connected account before completing the associated Connect Webview. + Indicates whether Seam should [finish syncing all devices](/core-concepts/connect-webviews/customizing-connect-webviews#wait_for_device_creation) in a newly-connected account before completing the associated Connect Webview. diff --git a/mintlify-docs/api/connected_accounts/errors.mdx b/mintlify-docs/api/connected_accounts/errors.mdx index d16250031..6a261d549 100644 --- a/mintlify-docs/api/connected_accounts/errors.mdx +++ b/mintlify-docs/api/connected_accounts/errors.mdx @@ -34,7 +34,7 @@ Each error is an object with the following shape: - Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). @@ -55,7 +55,7 @@ Indicates that the account is disconnected. ### `bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). --- diff --git a/mintlify-docs/api/connected_accounts/object.mdx b/mintlify-docs/api/connected_accounts/object.mdx index c18920e8a..b651e345d 100644 --- a/mintlify-docs/api/connected_accounts/object.mdx +++ b/mintlify-docs/api/connected_accounts/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the connected_account object represents an external thir ## The connected_account Object -Represents a [connected account](https://docs.seam.co/core-concepts/connected-accounts). A connected account is an external third-party account to which your user has authorized Seam to get access, for example, an August account with a list of door locks. +Represents a [connected account](/core-concepts/connected-accounts). A connected account is an external third-party account to which your user has authorized Seam to get access, for example, an August account with a list of door locks. @@ -54,7 +54,7 @@ Represents a [connected account](https://docs.seam.co/core-concepts/connected-ac - Indicates whether Seam should [import all new devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for management by the Seam API. + Indicates whether Seam should [import all new devices](/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for management by the Seam API. @@ -66,7 +66,7 @@ Represents a [connected account](https://docs.seam.co/core-concepts/connected-ac - Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. diff --git a/mintlify-docs/api/connected_accounts/simulate/object.mdx b/mintlify-docs/api/connected_accounts/simulate/object.mdx index fbb80381c..3533e7347 100644 --- a/mintlify-docs/api/connected_accounts/simulate/object.mdx +++ b/mintlify-docs/api/connected_accounts/simulate/object.mdx @@ -7,4 +7,4 @@ description: 'Use the connected account simulation endpoint to disconnect an acc [**`/connected_accounts/simulate/disconnect`**](./disconnect) -Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). +Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/devices/errors.mdx b/mintlify-docs/api/devices/errors.mdx index fcd3c52a8..e0dbf9864 100644 --- a/mintlify-docs/api/devices/errors.mdx +++ b/mintlify-docs/api/devices/errors.mdx @@ -34,11 +34,11 @@ Each error is an object with the following shape: - Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). - Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. + Indicates that the error is a [connected account](/api/connected_accounts/object) error. @@ -87,7 +87,7 @@ Indicates that a subscription is required to connect. #### `empty_backup_access_code_pool` -Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. +Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. --- @@ -139,7 +139,7 @@ Indicates that the account is disconnected. #### `bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). --- diff --git a/mintlify-docs/api/devices/events.mdx b/mintlify-docs/api/devices/events.mdx index 270309e60..00d923626 100644 --- a/mintlify-docs/api/devices/events.mdx +++ b/mintlify-docs/api/devices/events.mdx @@ -139,7 +139,7 @@ A device was added to Seam or was re-added to Seam after having been removed. ## `device.converted_to_unmanaged` -A managed device was successfully converted to an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). +A managed device was successfully converted to an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices). @@ -791,7 +791,7 @@ Seam detected that a device is no longer using a third-party integration that wa ## `device.salto.privacy_mode_activated` -A [Salto device](https://docs.seam.co/device-and-system-integration-guides/salto-locks) activated privacy mode. +A [Salto device](/device-and-system-integration-guides/salto-locks) activated privacy mode. @@ -858,7 +858,7 @@ A [Salto device](https://docs.seam.co/device-and-system-integration-guides/salto ## `device.salto.privacy_mode_deactivated` -A [Salto device](https://docs.seam.co/device-and-system-integration-guides/salto-locks) deactivated privacy mode. +A [Salto device](/device-and-system-integration-guides/salto-locks) deactivated privacy mode. diff --git a/mintlify-docs/api/devices/object.mdx b/mintlify-docs/api/devices/object.mdx index 53434ee93..4d7988c42 100644 --- a/mintlify-docs/api/devices/object.mdx +++ b/mintlify-docs/api/devices/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the device object represents a smart lock, thermostat, s ## The device Object -Represents a [device](https://docs.seam.co/core-concepts/devices) that has been connected to Seam. +Represents a [device](/core-concepts/devices) that has been connected to Seam. @@ -470,7 +470,7 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). + Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). @@ -482,7 +482,7 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. @@ -502,7 +502,7 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). + Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices). @@ -1437,40 +1437,40 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been Supported code lengths for access codes. - Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). + Indicates whether the device supports a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes). - Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. + ID of the desired [thermostat](/capability-guides/thermostats) device. - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). ID of the workspace that contains the thermostat schedule. @@ -1478,13 +1478,13 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + ID of the active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". - Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. + Available [climate presets](/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. Fan mode settings that the thermostat supports. @@ -1496,28 +1496,28 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been Current climate setting. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). Metadata specific to the Ecobee climate, if applicable. @@ -1534,22 +1534,22 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). @@ -1557,28 +1557,28 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been The default climate setting. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). Metadata specific to the Ecobee climate, if applicable. @@ -1595,27 +1595,27 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).
- Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. + Key of the [fallback climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. The fan mode setting. @@ -1633,16 +1633,16 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. - Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. @@ -1651,22 +1651,22 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been Maximum number of climate presets that the thermostat can support for weekly programming. - Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. - Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. - Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. Reported relative humidity, as a value between 0 and 1, inclusive. @@ -1678,19 +1678,19 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been Reported temperature in °F. - Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Lower limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Lower limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Upper limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Upper limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. @@ -1698,10 +1698,10 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. - Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + Configured [daily programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + Current [weekly program](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. Date and time at which the thermostat weekly program was created. @@ -1836,7 +1836,7 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). + Indicates whether the device supports a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes). ## Hardware @@ -1934,37 +1934,37 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been ## Thermostats - Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. + ID of the desired [thermostat](/capability-guides/thermostats) device. - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). ID of the workspace that contains the thermostat schedule. @@ -1973,7 +1973,7 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + ID of the active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). @@ -1981,7 +1981,7 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. + Available [climate presets](/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. @@ -1996,28 +1996,28 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been Current climate setting. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). Metadata specific to the Ecobee climate, if applicable. @@ -2034,22 +2034,22 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). @@ -2058,28 +2058,28 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been The default climate setting. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). Metadata specific to the Ecobee climate, if applicable. @@ -2096,28 +2096,28 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). - Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. + Key of the [fallback climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. @@ -2141,19 +2141,19 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. @@ -2165,27 +2165,27 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. - Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. - Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. @@ -2201,19 +2201,19 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Lower limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Lower limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Upper limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Upper limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. @@ -2223,11 +2223,11 @@ Represents a [device](https://docs.seam.co/core-concepts/devices) that has been - Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + Configured [daily programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + Current [weekly program](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. Date and time at which the thermostat weekly program was created. diff --git a/mintlify-docs/api/devices/simulate/object.mdx b/mintlify-docs/api/devices/simulate/object.mdx index 8b1825daa..55475e7f1 100644 --- a/mintlify-docs/api/devices/simulate/object.mdx +++ b/mintlify-docs/api/devices/simulate/object.mdx @@ -7,7 +7,7 @@ description: 'Use the device simulation endpoints to connect, disconnect, and re [**`/devices/simulate/connect`**](./connect) -Simulates connecting a device to Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). +Simulates connecting a device to Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). [**`/devices/simulate/connect_to_hub`**](./connect_to_hub) @@ -18,7 +18,7 @@ This will clear the `hub_disconnected` error on the device. [**`/devices/simulate/disconnect`**](./disconnect) -Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). +Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). [**`/devices/simulate/disconnect_from_hub`**](./disconnect_from_hub) @@ -36,4 +36,4 @@ The actual device error is created/cleared by the poller after this state change [**`/devices/simulate/remove`**](./remove) -Simulates removing a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). +Simulates removing a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). diff --git a/mintlify-docs/api/devices/unmanaged/errors.mdx b/mintlify-docs/api/devices/unmanaged/errors.mdx index 178308154..fa6c7f77b 100644 --- a/mintlify-docs/api/devices/unmanaged/errors.mdx +++ b/mintlify-docs/api/devices/unmanaged/errors.mdx @@ -34,11 +34,11 @@ Each error is an object with the following shape: - Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). - Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. + Indicates that the error is a [connected account](/api/connected_accounts/object) error. @@ -87,7 +87,7 @@ Indicates that a subscription is required to connect. #### `empty_backup_access_code_pool` -Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. +Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. --- @@ -139,7 +139,7 @@ Indicates that the account is disconnected. #### `bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). --- diff --git a/mintlify-docs/api/devices/unmanaged/events.mdx b/mintlify-docs/api/devices/unmanaged/events.mdx index c31afcaa0..9ebb73b8f 100644 --- a/mintlify-docs/api/devices/unmanaged/events.mdx +++ b/mintlify-docs/api/devices/unmanaged/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Unmanaged Devices resource, ## `device.unmanaged.converted_to_managed` -An [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices) was successfully converted to a managed device. +An [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) was successfully converted to a managed device. @@ -72,7 +72,7 @@ An [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unm ## `device.unmanaged.connected` -The status of an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`. +The status of an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`. @@ -139,7 +139,7 @@ The status of an [unmanaged device](https://docs.seam.co/core-concepts/devices/m ## `device.unmanaged.disconnected` -The status of an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`. +The status of an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`. diff --git a/mintlify-docs/api/devices/unmanaged/object.mdx b/mintlify-docs/api/devices/unmanaged/object.mdx index 6cac4f5d9..c39647e42 100644 --- a/mintlify-docs/api/devices/unmanaged/object.mdx +++ b/mintlify-docs/api/devices/unmanaged/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the unmanaged_device object exposes a limited set of pro ## The unmanaged_device Object -Represents an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed). +Represents an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed). @@ -156,7 +156,7 @@ Represents an [unmanaged device](https://docs.seam.co/core-concepts/devices/mana - Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). + Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). @@ -168,7 +168,7 @@ Represents an [unmanaged device](https://docs.seam.co/core-concepts/devices/mana - Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. diff --git a/mintlify-docs/api/locks/errors.mdx b/mintlify-docs/api/locks/errors.mdx index fd783b5ea..5262b2a5e 100644 --- a/mintlify-docs/api/locks/errors.mdx +++ b/mintlify-docs/api/locks/errors.mdx @@ -38,7 +38,7 @@ Each error is an object with the following shape: - Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. + Indicates that the error is a [connected account](/api/connected_accounts/object) error. diff --git a/mintlify-docs/api/locks/events.mdx b/mintlify-docs/api/locks/events.mdx index 8ed2f7468..887706262 100644 --- a/mintlify-docs/api/locks/events.mdx +++ b/mintlify-docs/api/locks/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Lock resource, with example ## `lock.locked` -A [lock](https://docs.seam.co/low-level-apis/smart-locks) was locked. +A [lock](/low-level-apis/smart-locks) was locked. @@ -104,7 +104,7 @@ A [lock](https://docs.seam.co/low-level-apis/smart-locks) was locked. ## `lock.unlocked` -A [lock](https://docs.seam.co/low-level-apis/smart-locks) was unlocked. +A [lock](/low-level-apis/smart-locks) was unlocked. @@ -208,7 +208,7 @@ A [lock](https://docs.seam.co/low-level-apis/smart-locks) was unlocked. - Method by which the lock was unlocked. `keycode`: an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was used (see `access_code_id`). `manual`: a physical action such as a thumbturn or handle press. `remote`: a remote action via an app, Bluetooth, or the Seam API (see `action_attempt_id` if Seam-initiated; see `is_via_bluetooth` or `is_via_nfc` for the transport). `automatic`: triggered automatically, for example by a time-based schedule. `unknown`: could not be determined. + Method by which the lock was unlocked. `keycode`: an [access code](/low-level-apis/smart-locks/access-codes) was used (see `access_code_id`). `manual`: a physical action such as a thumbturn or handle press. `remote`: a remote action via an app, Bluetooth, or the Seam API (see `action_attempt_id` if Seam-initiated; see `is_via_bluetooth` or `is_via_nfc` for the transport). `automatic`: triggered automatically, for example by a time-based schedule. `unknown`: could not be determined. Possible values: `keycode`, `manual`, `automatic`, `unknown`, `remote` @@ -231,7 +231,7 @@ A [lock](https://docs.seam.co/low-level-apis/smart-locks) was unlocked. ## `lock.access_denied` -The [lock](https://docs.seam.co/low-level-apis/smart-locks) denied access to a user after one or more consecutive invalid attempts to unlock the device. +The [lock](/low-level-apis/smart-locks) denied access to a user after one or more consecutive invalid attempts to unlock the device. diff --git a/mintlify-docs/api/locks/object.mdx b/mintlify-docs/api/locks/object.mdx index c0e65b4bf..2fc7a1c07 100644 --- a/mintlify-docs/api/locks/object.mdx +++ b/mintlify-docs/api/locks/object.mdx @@ -286,7 +286,7 @@ Indicates whether the lock supports unlocking with an access code. **`capabilities_supported`** _List_ _of Enums_ -Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). +Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). --- @@ -304,7 +304,7 @@ Date and time at which the device object was created. **`custom_metadata`** _Record_ -Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. +Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. --- @@ -400,7 +400,7 @@ Enum values: **`is_connected_account_error`** _Boolean_ -Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. +Indicates that the error is a [connected account](/api/connected_accounts/object) error. --- @@ -437,7 +437,7 @@ Enum values: **`is_connected_account_error`** _Boolean_ -Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. +Indicates that the error is a [connected account](/api/connected_accounts/object) error. --- @@ -474,7 +474,7 @@ Enum values: **`is_connected_account_error`** _Boolean_ -Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. +Indicates that the error is a [connected account](/api/connected_accounts/object) error. --- @@ -615,7 +615,7 @@ Detailed description of the error. Provides insights into the issue and potentia
-Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. +Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. **`created_at`** _Datetime_ @@ -863,7 +863,7 @@ Detailed description of the error. Provides insights into the issue and potentia -Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). **`created_at`** _Datetime_ @@ -883,7 +883,7 @@ Enum values: **`is_bridge_error`** _Boolean_ -Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). +Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). --- @@ -903,7 +903,7 @@ Detailed description of the error. Provides insights into the issue and potentia **`is_managed`** _Boolean_ -Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). +Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices). --- @@ -2605,7 +2605,7 @@ Supported code lengths for access codes. **`supports_backup_access_code_pool`** _Boolean_ -Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). +Indicates whether the device supports a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes). --- @@ -2845,7 +2845,7 @@ Indicates that the lock is not connected to a bridge. **`empty_backup_access_code_pool`** -Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. +Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. --- @@ -2893,7 +2893,7 @@ Indicates that the account is disconnected. **`bridge_disconnected`** -Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). --- @@ -3047,20 +3047,20 @@ Indicates that the Wyze Lock is not connected to a gateway. [**`/locks/configure_auto_lock`**](./configure_auto_lock) -Configures the auto-lock setting for a specified [lock](https://docs.seam.co/low-level-apis/smart-locks). +Configures the auto-lock setting for a specified [lock](/low-level-apis/smart-locks). [**`/locks/get`**](./get) -Returns a specified [lock](https://docs.seam.co/low-level-apis/smart-locks). +Returns a specified [lock](/low-level-apis/smart-locks). [**`/locks/list`**](./list) -Returns a list of all [locks](https://docs.seam.co/low-level-apis/smart-locks). +Returns a list of all [locks](/low-level-apis/smart-locks). [**`/locks/lock_door`**](./lock_door) -Locks a [lock](https://docs.seam.co/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](https://docs.seam.co/low-level-apis/smart-locks/lock-and-unlock). +Locks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock). [**`/locks/unlock_door`**](./unlock_door) -Unlocks a [lock](https://docs.seam.co/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](https://docs.seam.co/low-level-apis/smart-locks/lock-and-unlock). +Unlocks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock). diff --git a/mintlify-docs/api/locks/simulate/object.mdx b/mintlify-docs/api/locks/simulate/object.mdx index 11142e090..e9f45962e 100644 --- a/mintlify-docs/api/locks/simulate/object.mdx +++ b/mintlify-docs/api/locks/simulate/object.mdx @@ -7,8 +7,8 @@ description: 'Use the lock simulation endpoints to mimic keypad code entry and m [**`/locks/simulate/keypad_code_entry`**](./keypad_code_entry) -Simulates the entry of a code on a keypad. You can only perform this action for [August](https://docs.seam.co/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). +Simulates the entry of a code on a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). [**`/locks/simulate/manual_lock_via_keypad`**](./manual_lock_via_keypad) -Simulates a manual lock action using a keypad. You can only perform this action for [August](https://docs.seam.co/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). +Simulates a manual lock action using a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/noise_sensors/noise_thresholds/events.mdx b/mintlify-docs/api/noise_sensors/noise_thresholds/events.mdx index bdbf279b5..6cb352034 100644 --- a/mintlify-docs/api/noise_sensors/noise_thresholds/events.mdx +++ b/mintlify-docs/api/noise_sensors/noise_thresholds/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Noise Thresholds resource, ## `noise_sensor.noise_threshold_triggered` -Extended periods of noise or noise exceeding a [threshold](https://docs.seam.co/capability-guides/noise-sensors#what-is-a-threshold) were detected. +Extended periods of noise or noise exceeding a [threshold](/capability-guides/noise-sensors#what-is-a-threshold) were detected. diff --git a/mintlify-docs/api/noise_sensors/noise_thresholds/object.mdx b/mintlify-docs/api/noise_sensors/noise_thresholds/object.mdx index 3dbf645ea..2dfe97b0c 100644 --- a/mintlify-docs/api/noise_sensors/noise_thresholds/object.mdx +++ b/mintlify-docs/api/noise_sensors/noise_thresholds/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the noise_threshold object sets the limits of noise tole ## The noise_threshold Object -Represents a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them. +Represents a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them. @@ -48,7 +48,7 @@ Represents a [noise threshold](https://docs.seam.co/capability-guides/noise-sens - Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors). + Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](/device-and-system-integration-guides/noiseaware-sensors). diff --git a/mintlify-docs/api/noise_sensors/object.mdx b/mintlify-docs/api/noise_sensors/object.mdx index ebd5eb2c1..18486f229 100644 --- a/mintlify-docs/api/noise_sensors/object.mdx +++ b/mintlify-docs/api/noise_sensors/object.mdx @@ -17,4 +17,4 @@ The Seam API represents a noise sensor as a `device` resource that includes both [**`/noise_sensors/list`**](./list) -Returns a list of all [noise sensors](https://docs.seam.co/capability-guides/noise-sensors). +Returns a list of all [noise sensors](/capability-guides/noise-sensors). diff --git a/mintlify-docs/api/noise_sensors/simulate/object.mdx b/mintlify-docs/api/noise_sensors/simulate/object.mdx index 35c3003b9..ab7283be5 100644 --- a/mintlify-docs/api/noise_sensors/simulate/object.mdx +++ b/mintlify-docs/api/noise_sensors/simulate/object.mdx @@ -7,4 +7,4 @@ description: 'Use the noise sensor simulation endpoint to trigger a noise thresh [**`/noise_sensors/simulate/trigger_noise_threshold`**](./trigger_noise_threshold) -Simulates the triggering of a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). +Simulates the triggering of a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/phones/object.mdx b/mintlify-docs/api/phones/object.mdx index e6f36c243..fcca6b547 100644 --- a/mintlify-docs/api/phones/object.mdx +++ b/mintlify-docs/api/phones/object.mdx @@ -47,7 +47,7 @@ Represents an app user's mobile phone. - Optional [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) for the phone. + Optional [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) for the phone. diff --git a/mintlify-docs/api/phones/simulate/object.mdx b/mintlify-docs/api/phones/simulate/object.mdx index c744f5d83..58a0f2614 100644 --- a/mintlify-docs/api/phones/simulate/object.mdx +++ b/mintlify-docs/api/phones/simulate/object.mdx @@ -7,4 +7,4 @@ description: 'Use the phone simulation endpoint to create a simulated phone in a [**`/phones/simulate/create_sandbox_phone`**](./create_sandbox_phone) -Creates a new simulated phone in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](https://docs.seam.co/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity). +Creates a new simulated phone in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity). diff --git a/mintlify-docs/api/thermostats/events.mdx b/mintlify-docs/api/thermostats/events.mdx index 594f63ae1..87c9861a4 100644 --- a/mintlify-docs/api/thermostats/events.mdx +++ b/mintlify-docs/api/thermostats/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Thermostat resource, with e ## `thermostat.climate_preset_activated` -A thermostat [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) was activated. +A thermostat [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) was activated. @@ -87,7 +87,7 @@ A thermostat [climate preset](https://docs.seam.co/capability-guides/thermostats ## `thermostat.manually_adjusted` -A [thermostat](https://docs.seam.co/capability-guides/thermostats) was adjusted manually. +A [thermostat](/capability-guides/thermostats) was adjusted manually. @@ -126,11 +126,11 @@ A [thermostat](https://docs.seam.co/capability-guides/thermostats) was adjusted - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). @@ -158,21 +158,21 @@ A [thermostat](https://docs.seam.co/capability-guides/thermostats) was adjusted - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. Possible values: `auto`, `on`, `circulate` - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. Possible values: `off`, `heat`, `cool`, `heat_cool`, `eco` @@ -195,7 +195,7 @@ A [thermostat](https://docs.seam.co/capability-guides/thermostats) was adjusted ## `thermostat.temperature_threshold_exceeded` -A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature reading exceeded the set [threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds). +A [thermostat's](/capability-guides/thermostats) temperature reading exceeded the set [threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds). @@ -292,7 +292,7 @@ A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature ## `thermostat.temperature_threshold_no_longer_exceeded` -A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature reading no longer exceeds the set [threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds). +A [thermostat's](/capability-guides/thermostats) temperature reading no longer exceeds the set [threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds). @@ -389,7 +389,7 @@ A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature ## `thermostat.temperature_reached_set_point` -A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature reading is within 1 °C of the configured cooling or heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). +A [thermostat's](/capability-guides/thermostats) temperature reading is within 1 °C of the configured cooling or heating [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). @@ -476,7 +476,7 @@ A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature ## `thermostat.temperature_changed` -A [thermostat's](https://docs.seam.co/capability-guides/thermostats) reported temperature changed by at least 1 °C. +A [thermostat's](/capability-guides/thermostats) reported temperature changed by at least 1 °C. diff --git a/mintlify-docs/api/thermostats/object.mdx b/mintlify-docs/api/thermostats/object.mdx index cc9a32427..5624852b9 100644 --- a/mintlify-docs/api/thermostats/object.mdx +++ b/mintlify-docs/api/thermostats/object.mdx @@ -526,7 +526,7 @@ Indicates whether the lock supports unlocking with an access code. **`capabilities_supported`** _List_ _of Enums_ -Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). +Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). --- @@ -544,7 +544,7 @@ Date and time at which the device object was created. **`custom_metadata`** _Record_ -Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. +Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. --- @@ -640,7 +640,7 @@ Enum values: **`is_connected_account_error`** _Boolean_ -Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. +Indicates that the error is a [connected account](/api/connected_accounts/object) error. --- @@ -677,7 +677,7 @@ Enum values: **`is_connected_account_error`** _Boolean_ -Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. +Indicates that the error is a [connected account](/api/connected_accounts/object) error. --- @@ -714,7 +714,7 @@ Enum values: **`is_connected_account_error`** _Boolean_ -Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. +Indicates that the error is a [connected account](/api/connected_accounts/object) error. --- @@ -855,7 +855,7 @@ Detailed description of the error. Provides insights into the issue and potentia -Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. +Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. **`created_at`** _Datetime_ @@ -1103,7 +1103,7 @@ Detailed description of the error. Provides insights into the issue and potentia -Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). **`created_at`** _Datetime_ @@ -1123,7 +1123,7 @@ Enum values: **`is_bridge_error`** _Boolean_ -Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). +Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). --- @@ -1143,7 +1143,7 @@ Detailed description of the error. Provides insights into the issue and potentia **`is_managed`** _Boolean_ -Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). +Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices). --- @@ -1842,7 +1842,7 @@ Unique identifier for the Seam workspace associated with the device. **`active_thermostat_schedule`** _Object_ -Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). +Active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). **Deprecated**. Use `active_thermostat_schedule_id` with @@ -1852,19 +1852,19 @@ Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/ - Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. + ID of the desired [thermostat](/capability-guides/thermostats) device. - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). Unique identifier of the type of error. Enables quick recognition and categorization of the issue. @@ -1873,19 +1873,19 @@ Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/ Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). ID of the workspace that contains the thermostat schedule. @@ -1896,7 +1896,7 @@ Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/ **`active_thermostat_schedule_id`** _UUID_ -ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). +ID of the active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). --- @@ -1996,33 +1996,33 @@ Climate preset modes that the thermostat supports, such as "home", "away", "wake **`available_climate_presets`** _List_ _of Objects_ -Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. +Available [climate presets](/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. can_delete Boolean -Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. +Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. can_edit Boolean -Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. +Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. can_use_with_thermostat_daily_programs Boolean -Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. +Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. climate_preset_key String -Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). +Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). climate_preset_mode @@ -2047,21 +2047,21 @@ The climate preset mode for the thermostat, based on the available climate prese Number -Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). +Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). cooling_set_point_fahrenheit Number -Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). +Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). display_name String -Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). +Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). ecobee_metadata @@ -2111,21 +2111,21 @@ Indicates whether the climate preset is owned by the user or the system. -Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. +Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. heating_set_point_celsius Number -Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). +Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). heating_set_point_fahrenheit Number -Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). +Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). hvac_mode_setting @@ -2142,21 +2142,21 @@ Temperature to which the thermostat should heat (in °F). See also [Set Points]( -Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. +Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. manual_override_allowed Boolean -Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). +Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). name String -User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). +User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). @@ -2247,16 +2247,16 @@ Current climate setting. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. @@ -2273,13 +2273,13 @@ Current climate setting. - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). Metadata specific to the Ecobee climate, if applicable. @@ -2301,7 +2301,7 @@ Current climate setting. - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. @@ -2312,13 +2312,13 @@ Current climate setting. - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. @@ -2331,11 +2331,11 @@ Current climate setting. - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). @@ -2351,16 +2351,16 @@ Current climate setting. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. @@ -2377,13 +2377,13 @@ Current climate setting. - Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). Metadata specific to the Ecobee climate, if applicable. @@ -2405,7 +2405,7 @@ Current climate setting. - Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. @@ -2416,13 +2416,13 @@ Current climate setting. - Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. @@ -2435,11 +2435,11 @@ Current climate setting. - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). @@ -2528,7 +2528,7 @@ Metadata for an ecobee device. **`fallback_climate_preset_key`** _String_ -Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. +Key of the [fallback climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. --- @@ -2813,25 +2813,25 @@ Metadata for a Lockly device. **`max_cooling_set_point_celsius`** _Number_ -Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. +Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. --- **`max_cooling_set_point_fahrenheit`** _Number_ -Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. +Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. --- **`max_heating_set_point_celsius`** _Number_ -Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. +Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. --- **`max_heating_set_point_fahrenheit`** _Number_ -Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. +Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. --- @@ -2849,37 +2849,37 @@ Maximum number of climate presets that the thermostat can support for weekly pro **`min_cooling_set_point_celsius`** _Number_ -Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. +Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. --- **`min_cooling_set_point_fahrenheit`** _Number_ -Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. +Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. --- **`min_heating_cooling_delta_celsius`** _Number_ -Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. +Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. --- **`min_heating_cooling_delta_fahrenheit`** _Number_ -Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. +Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. --- **`min_heating_set_point_celsius`** _Number_ -Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. +Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. --- **`min_heating_set_point_fahrenheit`** _Number_ -Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. +Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. --- @@ -3356,21 +3356,21 @@ Reported temperature in °F. **`temperature_threshold`** _Object_ -Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. +Current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Lower limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Lower limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Upper limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Upper limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. @@ -3384,7 +3384,7 @@ Precision of the thermostat's period in minutes. For example, if the thermostat **`thermostat_daily_programs`** _List_ _of Objects_ -Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. +Configured [daily programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. created_at Datetime @@ -3432,7 +3432,7 @@ ID of the workspace that contains the thermostat daily program. **`thermostat_weekly_program`** _Object_ -Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. +Current [weekly program](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. @@ -3659,7 +3659,7 @@ Indicates that the account is disconnected. **`bridge_disconnected`** -Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). --- @@ -3699,55 +3699,55 @@ Indicates that a third-party integration has been detected. [**`/thermostats/activate_climate_preset`**](./activate_climate_preset) -Activates a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). +Activates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). [**`/thermostats/cool`**](./cool) -Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [cool mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings). +Sets a specified [thermostat](/capability-guides/thermostats) to [cool mode](/capability-guides/thermostats/configure-current-climate-settings). [**`/thermostats/create_climate_preset`**](./create_climate_preset) -Creates a [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). +Creates a [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). [**`/thermostats/delete_climate_preset`**](./delete_climate_preset) -Deletes a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). +Deletes a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). [**`/thermostats/heat`**](./heat) -Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [heat mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings). +Sets a specified [thermostat](/capability-guides/thermostats) to [heat mode](/capability-guides/thermostats/configure-current-climate-settings). [**`/thermostats/heat_cool`**](./heat_cool) -Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [heat-cool ("auto") mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings). +Sets a specified [thermostat](/capability-guides/thermostats) to [heat-cool ("auto") mode](/capability-guides/thermostats/configure-current-climate-settings). [**`/thermostats/list`**](./list) -Returns a list of all [thermostats](https://docs.seam.co/capability-guides/thermostats). +Returns a list of all [thermostats](/capability-guides/thermostats). [**`/thermostats/off`**](./off) -Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to ["off" mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings). +Sets a specified [thermostat](/capability-guides/thermostats) to ["off" mode](/capability-guides/thermostats/configure-current-climate-settings). [**`/thermostats/set_fallback_climate_preset`**](./set_fallback_climate_preset) -Sets a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) as the ["fallback"](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) preset for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). +Sets a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) as the ["fallback"](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) preset for a specified [thermostat](/capability-guides/thermostats). [**`/thermostats/set_fan_mode`**](./set_fan_mode) -Sets the [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). +Sets the [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) for a specified [thermostat](/capability-guides/thermostats). [**`/thermostats/set_hvac_mode`**](./set_hvac_mode) -Sets the [HVAC mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). +Sets the [HVAC mode](/capability-guides/thermostats/configure-current-climate-settings) for a specified [thermostat](/capability-guides/thermostats). [**`/thermostats/set_temperature_threshold`**](./set_temperature_threshold) -Sets a [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range. +Sets a [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range. [**`/thermostats/update_climate_preset`**](./update_climate_preset) -Updates a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). +Updates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). [**`/thermostats/update_weekly_program`**](./update_weekly_program) diff --git a/mintlify-docs/api/thermostats/schedules/object.mdx b/mintlify-docs/api/thermostats/schedules/object.mdx index af638610c..e51d08a4d 100644 --- a/mintlify-docs/api/thermostats/schedules/object.mdx +++ b/mintlify-docs/api/thermostats/schedules/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the thermostat_schedule object activates a climate prese ## The thermostat_schedule Object -Represents a [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that activates a configured [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) on a [thermostat](https://docs.seam.co/capability-guides/thermostats) at a specified starting time and deactivates the climate preset at a specified ending time. +Represents a [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that activates a configured [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) on a [thermostat](/capability-guides/thermostats) at a specified starting time and deactivates the climate preset at a specified ending time. @@ -32,43 +32,43 @@ Represents a [thermostat schedule](https://docs.seam.co/capability-guides/thermo ## Properties - Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. + ID of the desired [thermostat](/capability-guides/thermostats) device. - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). diff --git a/mintlify-docs/api/thermostats/simulate/object.mdx b/mintlify-docs/api/thermostats/simulate/object.mdx index 0a0fbf06e..ad1c7b8b2 100644 --- a/mintlify-docs/api/thermostats/simulate/object.mdx +++ b/mintlify-docs/api/thermostats/simulate/object.mdx @@ -7,8 +7,8 @@ description: 'Use the thermostat simulation endpoints to mimic HVAC mode changes [**`/thermostats/simulate/hvac_mode_adjusted`**](./hvac_mode_adjusted) -Simulates having adjusted the [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](https://docs.seam.co/capability-guides/thermostats). Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). +Simulates having adjusted the [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](/capability-guides/thermostats). Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). [**`/thermostats/simulate/temperature_reached`**](./temperature_reached) -Simulates a [thermostat](https://docs.seam.co/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). +Simulates a [thermostat](/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). diff --git a/mintlify-docs/api/user_identities/object.mdx b/mintlify-docs/api/user_identities/object.mdx index 9a3980edd..db4e6273f 100644 --- a/mintlify-docs/api/user_identities/object.mdx +++ b/mintlify-docs/api/user_identities/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the user_identity object links a person to their applica ## The user_identity Object -Represents a [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with an application user account. +Represents a [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with an application user account. diff --git a/mintlify-docs/api/user_identities/unmanaged/object.mdx b/mintlify-docs/api/user_identities/unmanaged/object.mdx index 9c4e597c5..8bb493fef 100644 --- a/mintlify-docs/api/user_identities/unmanaged/object.mdx +++ b/mintlify-docs/api/user_identities/unmanaged/object.mdx @@ -7,14 +7,14 @@ description: 'Use the unmanaged user identity endpoints to get, list, and update [**`/user_identities/unmanaged/get`**](./get) -Returns a specified unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). +Returns a specified unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). [**`/user_identities/unmanaged/list`**](./list) -Returns a list of all unmanaged [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). +Returns a list of all unmanaged [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). [**`/user_identities/unmanaged/update`**](./update) -Updates an unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed. +Updates an unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed. This endpoint can only be used to convert unmanaged user identities to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed user identities back to unmanaged. diff --git a/mintlify-docs/api/webhooks/object.mdx b/mintlify-docs/api/webhooks/object.mdx index 6940bb726..2f49dae89 100644 --- a/mintlify-docs/api/webhooks/object.mdx +++ b/mintlify-docs/api/webhooks/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the webhook object lets you receive event notifications ## The webhook Object -Represents a [webhook](https://docs.seam.co/developer-tools/webhooks) that enables you to receive notifications of events. When you create a webhook, specify the endpoint URL at which you want to receive events and the set of event types that you want to receive. +Represents a [webhook](/developer-tools/webhooks) that enables you to receive notifications of events. When you create a webhook, specify the endpoint URL at which you want to receive events and the set of event types that you want to receive. @@ -28,15 +28,15 @@ Represents a [webhook](https://docs.seam.co/developer-tools/webhooks) that enabl ## Properties - Types of events that the [webhook](https://docs.seam.co/developer-tools/webhooks) should receive. + Types of events that the [webhook](/developer-tools/webhooks) should receive. - Secret associated with the [webhook](https://docs.seam.co/developer-tools/webhooks). + Secret associated with the [webhook](/developer-tools/webhooks). - URL for the [webhook](https://docs.seam.co/developer-tools/webhooks). + URL for the [webhook](/developer-tools/webhooks). diff --git a/mintlify-docs/api/workspaces/object.mdx b/mintlify-docs/api/workspaces/object.mdx index c9afa45dc..0a2dec71c 100644 --- a/mintlify-docs/api/workspaces/object.mdx +++ b/mintlify-docs/api/workspaces/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the workspace object represents an isolated Seam environ ## The workspace Object -Represents a Seam [workspace](https://docs.seam.co/core-concepts/workspaces). A workspace is a top-level entity that encompasses all other resources below it, such as devices, connected accounts, and Connect Webviews. Seam provides two types of workspaces. A [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) is a special type of workspace designed for testing code. Sandbox workspaces offer test device accounts and virtual devices that you can connect and control. This ability to work with virtual devices is quite handy because it removes the need to own physical devices from multiple brands. To connect real devices and systems to Seam, use a [production workspace](https://docs.seam.co/core-concepts/workspaces#production-workspaces). +Represents a Seam [workspace](/core-concepts/workspaces). A workspace is a top-level entity that encompasses all other resources below it, such as devices, connected accounts, and Connect Webviews. Seam provides two types of workspaces. A [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces) is a special type of workspace designed for testing code. Sandbox workspaces offer test device accounts and virtual devices that you can connect and control. This ability to work with virtual devices is quite handy because it removes the need to own physical devices from multiple brands. To connect real devices and systems to Seam, use a [production workspace](/core-concepts/workspaces#production-workspaces). @@ -79,7 +79,7 @@ Represents a Seam [workspace](https://docs.seam.co/core-concepts/workspaces). A ## Properties - Company name associated with the [workspace](https://docs.seam.co/core-concepts/workspaces). + Company name associated with the [workspace](/core-concepts/workspaces). @@ -90,19 +90,19 @@ Represents a Seam [workspace](https://docs.seam.co/core-concepts/workspaces). A The connect webview customization. - URL of the inviter logo for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + URL of the inviter logo for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). - Logo shape for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + Logo shape for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). - Primary button color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + Primary button color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). - Primary button text color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + Primary button text color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). - Success message for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + Success message for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). @@ -112,15 +112,15 @@ Represents a Seam [workspace](https://docs.seam.co/core-concepts/workspaces). A - Indicates whether the workspace is a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). + Indicates whether the workspace is a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). - Indicates whether the [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) is suspended. Seam suspends sandbox workspaces that have not been accessed in 14 days. + Indicates whether the [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces) is suspended. Seam suspends sandbox workspaces that have not been accessed in 14 days. - Name of the [workspace](https://docs.seam.co/core-concepts/workspaces). + Name of the [workspace](/core-concepts/workspaces). @@ -128,7 +128,7 @@ Represents a Seam [workspace](https://docs.seam.co/core-concepts/workspaces). A - Publishable key for the [workspace](https://docs.seam.co/core-concepts/workspaces). This key is used to identify the workspace in client-side applications. + Publishable key for the [workspace](/core-concepts/workspaces). This key is used to identify the workspace in client-side applications. diff --git a/mintlify-docs/openapi.json b/mintlify-docs/openapi.json index 25a659400..9a0f99399 100644 --- a/mintlify-docs/openapi.json +++ b/mintlify-docs/openapi.json @@ -12,7 +12,7 @@ "components": { "schemas": { "access_code": { - "description": "Represents a smart lock [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", + "description": "Represents a smart lock [access code](/low-level-apis/smart-locks/access-codes).", "properties": { "access_code_id": { "description": "Unique identifier for the access code.", @@ -92,7 +92,7 @@ }, "errors": { "type": "array", - "description": "Errors associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", + "description": "Errors associated with the [access code](/low-level-apis/smart-locks/access-codes).", "items": { "type": "object", "properties": { @@ -450,7 +450,7 @@ "type": "string" }, "status": { - "description": "Current status of the access code within the operational lifecycle. Values are `setting`, a transitional phase that indicates that the code is being configured or activated; `set`, which indicates that the code is active and operational; `unset`, which indicates a deactivated or unused state, either before activation or after deliberate deactivation; `removing`, which indicates a transitional period in which the code is being deleted or made inactive; and `unknown`, which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. See also [Lifecycle of Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/lifecycle-of-access-codes).", + "description": "Current status of the access code within the operational lifecycle. Values are `setting`, a transitional phase that indicates that the code is being configured or activated; `set`, which indicates that the code is active and operational; `unset`, which indicates a deactivated or unused state, either before activation or after deliberate deactivation; `removing`, which indicates a transitional period in which the code is being deleted or made inactive; and `unknown`, which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. See also [Lifecycle of Access Codes](/low-level-apis/smart-locks/access-codes/lifecycle-of-access-codes).", "enum": [ "setting", "set", @@ -470,7 +470,7 @@ }, "warnings": { "type": "array", - "description": "Warnings associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", + "description": "Warnings associated with the [access code](/low-level-apis/smart-locks/access-codes).", "items": { "type": "object", "properties": { @@ -563,7 +563,7 @@ "type": "string" }, "errors": { - "description": "Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Errors associated with the [access grant](/use-cases/granting-access).", "items": { "discriminator": { "propertyName": "error_code" @@ -867,7 +867,7 @@ }, "warnings": { "type": "array", - "description": "Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Warnings associated with the [access grant](/use-cases/granting-access).", "items": { "type": "object", "properties": { @@ -987,7 +987,7 @@ "type": "string" }, "pending_mutations": { - "description": "Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", + "description": "Pending mutations for the [access method](/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -1197,15 +1197,15 @@ "type": "array" }, "warnings": { - "description": "Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", + "description": "Warnings associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", "items": { - "description": "Warning associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", + "description": "Warning associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted.", + "description": "Indicates that the [access method](/use-cases/granting-access/creating-an-access-grant) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -1232,7 +1232,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated.", + "description": "Indicates that the access times for this [access method](/use-cases/granting-access/creating-an-access-grant) are being updated.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -1392,7 +1392,7 @@ }, "oneOf": [ { - "description": "Indicates that the [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups) was not created on the [access system](https://docs.seam.co/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co).", + "description": "Indicates that the [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups) was not created on the [access system](/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co).", "properties": { "created_at": { "description": "Date and time at which Seam created the error.", @@ -1918,10 +1918,10 @@ "x-route-path": "/acs/access_groups" }, "acs_credential": { - "description": "Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Means by which an [access control system user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems).", "properties": { "access_method": { - "description": "Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.", + "description": "Access method for the [credential](/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.", "enum": [ "code", "card", @@ -1931,7 +1931,7 @@ "type": "string" }, "acs_credential_id": { - "description": "ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the [credential](/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, @@ -1941,17 +1941,17 @@ "type": "string" }, "acs_system_id": { - "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the [access control system](/low-level-apis/access-systems) that contains the [credential](/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, "acs_user_id": { - "description": "ID of the [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [ACS user](/low-level-apis/access-systems/user-management) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "assa_abloy_vostio_metadata": { - "description": "Vostio-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Vostio-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials).", "properties": { "auto_join": { "description": "Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.", @@ -1987,36 +1987,36 @@ "type": "object" }, "card_number": { - "description": "Number of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Number of the card associated with the [credential](/low-level-apis/access-systems/managing-credentials).", "nullable": true, "type": "string" }, "code": { - "description": "Access (PIN) code for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Access (PIN) code for the [credential](/low-level-apis/access-systems/managing-credentials).", "nullable": true, "type": "string" }, "connected_account_id": { - "description": "ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/managing-credentials#connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [connected account](/low-level-apis/access-systems/managing-credentials) to which the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created.", + "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name that corresponds to the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.", + "description": "Display name that corresponds to the [credential](/low-level-apis/access-systems/managing-credentials) type.", "minLength": 1, "type": "string" }, "ends_at": { - "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.", + "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.", "type": "string" }, "errors": { - "description": "Errors associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Errors associated with the [credential](/low-level-apis/access-systems/managing-credentials).", "items": { "properties": { "error_code": { @@ -2035,7 +2035,7 @@ "type": "array" }, "external_type": { - "description": "Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.", + "description": "Brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.", "enum": [ "pti_card", "brivo_credential", @@ -2053,15 +2053,15 @@ "type": "string" }, "external_type_display_name": { - "description": "Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.", + "description": "Display name that corresponds to the brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type.", "type": "string" }, "is_issued": { - "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.", + "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.", "type": "boolean" }, "is_latest_desired_state_synced_with_provider": { - "description": "Indicates whether the latest state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.", + "description": "Indicates whether the latest state of the [credential](/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.", "nullable": true, "type": "boolean" }, @@ -2073,41 +2073,41 @@ "type": "boolean" }, "is_multi_phone_sync_credential": { - "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", + "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.", + "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.", "type": "boolean" }, "issued_at": { - "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was encoded onto a card.", + "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was encoded onto a card.", "format": "date-time", "nullable": true, "type": "string" }, "latest_desired_state_synced_with_provider_at": { - "description": "Date and time at which the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.", + "description": "Date and time at which the state of the [credential](/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.", "format": "date-time", "nullable": true, "type": "string" }, "parent_acs_credential_id": { - "description": "ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the parent [credential](/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, "starts_at": { - "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](https://docs.seam.co/api/user_identities/object) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [user identity](/api/user_identities/object) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "visionline_metadata": { - "description": "Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Visionline-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials).", "properties": { "auto_join": { "description": "Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.", @@ -2165,7 +2165,7 @@ }, "warnings": { "type": "array", - "description": "Warnings associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Warnings associated with the [credential](/low-level-apis/access-systems/managing-credentials).", "items": { "type": "object", "properties": { @@ -2186,7 +2186,7 @@ } }, "workspace_id": { - "description": "ID of the workspace that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the workspace that contains the [credential](/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" } @@ -2290,36 +2290,36 @@ "x-undocumented": "Deprecated. Will be removed." }, "acs_encoder": { - "description": "Represents a hardware device that encodes [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Represents a hardware device that encodes [credential](/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](/low-level-apis/access-systems).", "properties": { "acs_encoder_id": { - "description": "ID of the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners.", + "description": "ID of the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners.", "format": "uuid", "type": "string" }, "acs_system_id": { - "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "ID of the [access control system](/low-level-apis/access-systems) that contains the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "format": "uuid", "type": "string" }, "connected_account_id": { - "description": "ID of the connected account that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "ID of the connected account that contains the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was created.", + "description": "Date and time at which the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name for the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Display name for the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "type": "string" }, "errors": { - "description": "Errors associated with the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Errors associated with the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "items": { - "description": "Error associated with the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Error associated with the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "properties": { "created_at": { "description": "Date and time at which Seam created the error.", @@ -2349,7 +2349,7 @@ "type": "array" }, "workspace_id": { - "description": "ID of the workspace that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "ID of the workspace that contains the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "format": "uuid", "type": "string" } @@ -2367,20 +2367,20 @@ "x-route-path": "/acs/encoders" }, "acs_entrance": { - "description": "Represents an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Represents an [entrance](/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](/low-level-apis/access-systems).", "properties": { "acs_entrance_id": { - "description": "ID of the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, "acs_system_id": { - "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the [access control system](/low-level-apis/access-systems) that contains the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, "assa_abloy_vostio_metadata": { - "description": "ASSA ABLOY Vostio-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ASSA ABLOY Vostio-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "door_name": { "description": "Name of the door in the Vostio access system.", @@ -2417,7 +2417,7 @@ "type": "object" }, "avigilon_alta_metadata": { - "description": "Avigilon Alta-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Avigilon Alta-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "entry_name": { "description": "Entry name for an Avigilon Alta system.", @@ -2463,7 +2463,7 @@ "type": "object" }, "brivo_metadata": { - "description": "Brivo-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Brivo-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "access_point_id": { "description": "ID of the access point in the Brivo access system.", @@ -2507,21 +2507,21 @@ "type": "boolean" }, "connected_account_id": { - "description": "ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the [connected account](/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was created.", + "description": "Date and time at which the [entrance](/low-level-apis/access-systems/retrieving-entrance-details) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name for the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Display name for the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "type": "string" }, "dormakaba_ambiance_metadata": { - "description": "dormakaba Ambiance-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "dormakaba Ambiance-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "access_point_name": { "description": "Name of the access point in the dormakaba Ambiance access system.", @@ -2534,7 +2534,7 @@ "type": "object" }, "dormakaba_community_metadata": { - "description": "dormakaba Community-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "dormakaba Community-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "access_point_profile": { "description": "Type of access point profile in the dormakaba Community access system.", @@ -2547,7 +2547,7 @@ "type": "object" }, "errors": { - "description": "Errors associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Errors associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "items": { "properties": { "error_code": { @@ -2568,7 +2568,7 @@ "type": "array" }, "hotek_metadata": { - "description": "Hotek-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Hotek-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "common_area_name": { "description": "Display name of the entrance.", @@ -2586,11 +2586,11 @@ "type": "object" }, "is_locked": { - "description": "Indicates whether the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) is currently locked.", + "description": "Indicates whether the [entrance](/low-level-apis/access-systems/retrieving-entrance-details) is currently locked.", "type": "boolean" }, "latch_metadata": { - "description": "Latch-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Latch-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "accessibility_type": { "description": "Accessibility type in the Latch access system.", @@ -2618,7 +2618,7 @@ "type": "object" }, "salto_ks_metadata": { - "description": "Salto KS-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Salto KS-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "battery_level": { "description": "Battery level of the door access device.", @@ -2662,7 +2662,7 @@ "type": "object" }, "salto_space_metadata": { - "description": "Salto Space-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Salto Space-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "audit_on_keys": { "description": "Indicates whether AuditOnKeys is enabled for the door in the Salto Space access system.", @@ -2700,7 +2700,7 @@ "type": "array" }, "visionline_metadata": { - "description": "Visionline-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Visionline-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "door_category": { "description": "Category of the door in the Visionline access system.", @@ -2751,9 +2751,9 @@ "type": "object" }, "warnings": { - "description": "Warnings associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Warnings associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "items": { - "description": "Warning associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Warning associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "discriminator": { "propertyName": "warning_code" }, @@ -2885,31 +2885,31 @@ "x-route-path": "/acs/entrances" }, "acs_system": { - "description": "Represents an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nWithin an `acs_system`, create [`acs_user`s](https://docs.seam.co/api/acs/users/object#acs_user) and [`acs_credential`s](https://docs.seam.co/api/acs/credentials/object#acs_credential) to grant access to the `acs_user`s.\n\nFor details about the resources associated with an access control system, see the [access control systems namespace](https://docs.seam.co/api/acs/object).", + "description": "Represents an [access control system](/low-level-apis/access-systems).\n\nWithin an `acs_system`, create [`acs_user`s](/api/acs/users/object) and [`acs_credential`s](/api/acs/credentials/object) to grant access to the `acs_user`s.\n\nFor details about the resources associated with an access control system, see the [access control systems namespace](/api/acs/object).", "properties": { "acs_access_group_count": { - "description": "Number of access groups in the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Number of access groups in the [access control system](/low-level-apis/access-systems).", "format": "float", "type": "number" }, "acs_system_id": { - "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "ID of the [access control system](/low-level-apis/access-systems).", "format": "uuid", "type": "string" }, "acs_user_count": { - "description": "Number of users in the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Number of users in the [access control system](/low-level-apis/access-systems).", "format": "float", "type": "number" }, "connected_account_id": { - "description": "ID of the connected account associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "ID of the connected account associated with the [access control system](/low-level-apis/access-systems).", "format": "uuid", "type": "string" }, "connected_account_ids": { "deprecated": true, - "description": "IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "IDs of the [connected accounts](/core-concepts/connected-accounts) associated with the [access control system](/low-level-apis/access-systems).", "items": { "format": "uuid", "type": "string" @@ -2918,19 +2918,19 @@ "x-deprecated": "Use `connected_account_id`." }, "created_at": { - "description": "Date and time at which the [access control system](https://docs.seam.co/low-level-apis/access-systems) was created.", + "description": "Date and time at which the [access control system](/low-level-apis/access-systems) was created.", "format": "date-time", "type": "string" }, "default_credential_manager_acs_system_id": { - "description": "ID of the default credential manager `acs_system` for this [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "ID of the default credential manager `acs_system` for this [access control system](/low-level-apis/access-systems).", "format": "uuid", "nullable": true, "type": "string" }, "errors": { "type": "array", - "description": "Errors associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Errors associated with the [access control system](/low-level-apis/access-systems).", "items": { "type": "object", "properties": { @@ -2951,7 +2951,7 @@ } }, "external_type": { - "description": "Brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type.", + "description": "Brand-specific terminology for the [access control system](/low-level-apis/access-systems) type.", "enum": [ "pti_site", "avigilon_alta_org", @@ -2972,15 +2972,15 @@ "type": "string" }, "external_type_display_name": { - "description": "Display name that corresponds to the brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type.", + "description": "Display name that corresponds to the brand-specific terminology for the [access control system](/low-level-apis/access-systems) type.", "type": "string" }, "image_alt_text": { - "description": "Alternative text for the [access control system](https://docs.seam.co/low-level-apis/access-systems) image.", + "description": "Alternative text for the [access control system](/low-level-apis/access-systems) image.", "type": "string" }, "image_url": { - "description": "URL for the image that represents the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "URL for the image that represents the [access control system](/low-level-apis/access-systems).", "type": "string" }, "is_credential_manager": { @@ -2988,10 +2988,10 @@ "type": "boolean" }, "location": { - "description": "Location information for the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Location information for the [access control system](/low-level-apis/access-systems).", "properties": { "time_zone": { - "description": "Time zone in which the [access control system](https://docs.seam.co/low-level-apis/access-systems) is located.", + "description": "Time zone in which the [access control system](/low-level-apis/access-systems) is located.", "nullable": true, "type": "string" } @@ -3002,7 +3002,7 @@ "type": "object" }, "name": { - "description": "Name of the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Name of the [access control system](/low-level-apis/access-systems).", "type": "string" }, "system_type": { @@ -3033,10 +3033,10 @@ "x-deprecated": "Use `external_type_display_name`." }, "visionline_metadata": { - "description": "Visionline-specific metadata for the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Visionline-specific metadata for the [access control system](/low-level-apis/access-systems).", "properties": { "lan_address": { - "description": "IP address or hostname of the main Visionline server relative to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge) on the local network.", + "description": "IP address or hostname of the main Visionline server relative to [Seam Bridge](/capability-guides/seam-bridge) on the local network.", "type": "string" }, "mobile_access_uuid": { @@ -3056,9 +3056,9 @@ "type": "object" }, "warnings": { - "description": "Warnings associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Warnings associated with the [access control system](/low-level-apis/access-systems).", "items": { - "description": "Warning associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Warning associated with the [access control system](/low-level-apis/access-systems).", "discriminator": { "propertyName": "warning_code" }, @@ -3091,7 +3091,7 @@ "type": "object" }, { - "description": "Indicates the [access control system](https://docs.seam.co/low-level-apis/access-systems) time zone could not be determined because the reported physical location does not match the time zone configured on the physical [ACS entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Indicates the [access control system](/low-level-apis/access-systems) time zone could not be determined because the reported physical location does not match the time zone configured on the physical [ACS entrances](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -3158,7 +3158,7 @@ "type": "array" }, "workspace_id": { - "description": "ID of the workspace that contains the [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "ID of the workspace that contains the [access control system](/low-level-apis/access-systems).", "format": "uuid", "type": "string" } @@ -3181,10 +3181,10 @@ "x-route-path": "/acs/systems" }, "acs_user": { - "description": "Represents a [user](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Represents a [user](/low-level-apis/access-systems/user-management) in an [access system](/low-level-apis/access-systems).", "properties": { "access_schedule": { - "description": "`starts_at` and `ends_at` timestamps for the [access system user's](https://docs.seam.co/low-level-apis/access-systems/user-management) access.", + "description": "`starts_at` and `ends_at` timestamps for the [access system user's](/low-level-apis/access-systems/user-management) access.", "properties": { "ends_at": { "description": "Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", @@ -3205,27 +3205,27 @@ "type": "object" }, "acs_system_id": { - "description": "ID of the [access system](https://docs.seam.co/low-level-apis/access-systems) that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "ID of the [access system](/low-level-apis/access-systems) that contains the [access system user](/low-level-apis/access-systems/user-management).", "format": "uuid", "type": "string" }, "acs_user_id": { - "description": "ID of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "ID of the [access system user](/low-level-apis/access-systems/user-management).", "format": "uuid", "type": "string" }, "connected_account_id": { - "description": "\n The ID of the connected account that is associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).\n ", + "description": "\n The ID of the connected account that is associated with the [access system user](/low-level-apis/access-systems/user-management).\n ", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created.", + "description": "Date and time at which the [access system user](/low-level-apis/access-systems/user-management) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Display name for the [access system user](/low-level-apis/access-systems/user-management).", "type": "string" }, "email": { @@ -3235,13 +3235,13 @@ "x-deprecated": "use email_address." }, "email_address": { - "description": "Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Email address of the [access system user](/low-level-apis/access-systems/user-management).", "format": "email", "type": "string" }, "errors": { "type": "array", - "description": "Errors associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Errors associated with the [access system user](/low-level-apis/access-systems/user-management).", "items": { "type": "object", "properties": { @@ -3262,7 +3262,7 @@ } }, "external_type": { - "description": "Brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type.", + "description": "Brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type.", "enum": [ "pti_user", "brivo_user", @@ -3276,11 +3276,11 @@ "type": "string" }, "external_type_display_name": { - "description": "Display name that corresponds to the brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type.", + "description": "Display name that corresponds to the brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type.", "type": "string" }, "full_name": { - "description": "Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Full name of the [access system user](/low-level-apis/access-systems/user-management).", "minLength": 1, "type": "string" }, @@ -3297,7 +3297,7 @@ "type": "boolean" }, "is_suspended": { - "description": "Indicates whether the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is currently [suspended](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users).", + "description": "Indicates whether the [access system user](/low-level-apis/access-systems/user-management) is currently [suspended](/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users).", "type": "boolean" }, "last_successful_sync_at": { @@ -3308,7 +3308,7 @@ "x-undocumented": "Only used internally." }, "pending_mutations": { - "description": "Pending mutations associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.", + "description": "Pending mutations associated with the [access system user](/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -3764,11 +3764,11 @@ "type": "array" }, "phone_number": { - "description": "Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "type": "string" }, "salto_space_metadata": { - "description": "Salto Space-specific metadata associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Salto Space-specific metadata associated with the [access system user](/low-level-apis/access-systems/user-management).", "properties": { "audit_openings": { "description": "Indicates whether AuditOpenings is enabled for the user in the Salto Space access system.", @@ -3782,34 +3782,34 @@ "type": "object" }, "user_identity_email_address": { - "description": "Email address of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Email address of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).", "nullable": true, "type": "string" }, "user_identity_full_name": { - "description": "Full name of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Full name of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).", "nullable": true, "type": "string" }, "user_identity_id": { - "description": "ID of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "ID of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).", "type": "string" }, "user_identity_phone_number": { - "description": "Phone number of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "nullable": true, "type": "string" }, "warnings": { - "description": "Warnings associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Warnings associated with the [access system user](/low-level-apis/access-systems/user-management).", "items": { - "description": "Warnings associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Warnings associated with the [access system user](/low-level-apis/access-systems/user-management).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is being deleted from the [access system](https://docs.seam.co/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly.", + "description": "Indicates that the [access system user](/low-level-apis/access-systems/user-management) is being deleted from the [access system](/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -3835,7 +3835,7 @@ "type": "object" }, { - "description": "Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.", + "description": "Indicates that the [access system user](/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -3861,7 +3861,7 @@ "type": "object" }, { - "description": "An unknown issue occurred while syncing the state of this [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user.", + "description": "An unknown issue occurred while syncing the state of this [access system user](/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -3887,7 +3887,7 @@ "type": "object" }, { - "description": "Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user.", + "description": "Indicates that the [access system user](/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -3917,7 +3917,7 @@ "type": "array" }, "workspace_id": { - "description": "ID of the workspace that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "ID of the workspace that contains the [access system user](/low-level-apis/access-systems/user-management).", "format": "uuid", "type": "string" } @@ -4161,7 +4161,7 @@ "x-route-path": "/workspaces" }, "bridge_client_session": { - "description": "Represents a [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge) client session.", + "description": "Represents a [Seam Bridge](/capability-guides/seam-bridge) client session.", "properties": { "bridge_client_machine_identifier_key": { "description": "Identifier key of the client machine for the Seam Bridge client.", @@ -4345,14 +4345,14 @@ "x-undocumented": "Seam Bridge client only." }, "bridge_connected_systems": { - "description": "Represents an access system connected to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).", + "description": "Represents an access system connected to [Seam Bridge](/capability-guides/seam-bridge).", "properties": { "acs_system_display_name": { - "description": "Display name for the [access system](https://docs.seam.co/low-level-apis/access-systems) associated with Seam Bridge.", + "description": "Display name for the [access system](/low-level-apis/access-systems) associated with Seam Bridge.", "type": "string" }, "acs_system_id": { - "description": "ID of the [access system](https://docs.seam.co/low-level-apis/access-systems) associated with Seam Bridge.", + "description": "ID of the [access system](/low-level-apis/access-systems) associated with Seam Bridge.", "format": "uuid", "type": "string" }, @@ -4377,7 +4377,7 @@ "type": "string" }, "workspace_display_name": { - "description": "Display name for the [workspace](https://docs.seam.co/core-concepts/workspaces) with which Seam Bridge is paired.", + "description": "Display name for the [workspace](/core-concepts/workspaces) with which Seam Bridge is paired.", "type": "string" }, "workspace_id": { @@ -4401,7 +4401,7 @@ "x-undocumented": "Seam Bridge client only." }, "client_session": { - "description": "Represents a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). If you want to restrict your users' access to their own devices, use client sessions.", + "description": "Represents a [client session](/core-concepts/authentication/client-session-tokens). If you want to restrict your users' access to their own devices, use client sessions.", "properties": { "client_session_id": { "description": "ID of the client session.", @@ -4409,7 +4409,7 @@ "type": "string" }, "connect_webview_ids": { - "description": "IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "IDs of the [Connect Webviews](/core-concepts/connect-webviews) associated with the [client session](/core-concepts/authentication/client-session-tokens).", "items": { "format": "uuid", "type": "string" @@ -4417,7 +4417,7 @@ "type": "array" }, "connected_account_ids": { - "description": "IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "IDs of the [connected accounts](/core-concepts/connected-accounts) associated with the [client session](/core-concepts/authentication/client-session-tokens).", "items": { "format": "uuid", "type": "string" @@ -4425,41 +4425,41 @@ "type": "array" }, "created_at": { - "description": "Date and time at which the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) was created.", + "description": "Date and time at which the [client session](/core-concepts/authentication/client-session-tokens) was created.", "format": "date-time", "type": "string" }, "customer_key": { - "description": "Customer key associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "Customer key associated with the [client session](/core-concepts/authentication/client-session-tokens).", "type": "string" }, "device_count": { - "description": "Number of devices associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "Number of devices associated with the [client session](/core-concepts/authentication/client-session-tokens).", "format": "float", "type": "number" }, "expires_at": { - "description": "Date and time at which the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) expires.", + "description": "Date and time at which the [client session](/core-concepts/authentication/client-session-tokens) expires.", "format": "date-time", "type": "string" }, "token": { - "description": "Client session token associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "Client session token associated with the [client session](/core-concepts/authentication/client-session-tokens).", "type": "string" }, "user_identifier_key": { - "description": "Your user ID for the user associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "Your user ID for the user associated with the [client session](/core-concepts/authentication/client-session-tokens).", "nullable": true, "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session.", + "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session.", "format": "uuid", "type": "string" }, "user_identity_ids": { "deprecated": true, - "description": "IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session.", + "description": "IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session.", "items": { "format": "uuid", "type": "string" @@ -4489,7 +4489,7 @@ "x-route-path": "/client_sessions" }, "connect_webview": { - "description": "Represents a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews).", + "description": "Represents a [Connect Webview](/core-concepts/connect-webviews).", "properties": { "accepted_capabilities": { "description": "High-level device capabilities that the Connect Webview can accept. When creating a Connect Webview, you can specify the types of devices that it can connect to Seam. If you do not set custom `accepted_capabilities`, Seam uses a default set of `accepted_capabilities` for each provider. For example, if you create a Connect Webview that accepts SmartThing devices, without specifying `accepted_capabilities`, Seam accepts only SmartThings locks. To connect SmartThings thermostats and locks to Seam, create a Connect Webview and include both `thermostat` and `lock` in the `accepted_capabilities`.", @@ -4516,7 +4516,7 @@ "x-undocumented": "Unused. Will be removed." }, "accepted_providers": { - "description": "List of accepted [provider keys](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", + "description": "List of accepted [provider keys](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", "items": { "type": "string" }, @@ -4539,7 +4539,7 @@ "type": "string" }, "automatically_manage_new_devices": { - "description": "Indicates whether Seam should [import all new devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for use and management by the Seam API.", + "description": "Indicates whether Seam should [import all new devices](/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for use and management by the Seam API.", "type": "boolean" }, "connect_webview_id": { @@ -4569,7 +4569,7 @@ } ] }, - "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", + "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", "type": "object" }, "custom_redirect_failure_url": { @@ -4602,7 +4602,7 @@ "type": "boolean" }, "selected_provider": { - "description": "Selected provider of the Connect Webview, one of the [provider keys](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", + "description": "Selected provider of the Connect Webview, one of the [provider keys](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", "nullable": true, "type": "string" }, @@ -4621,7 +4621,7 @@ "type": "string" }, "wait_for_device_creation": { - "description": "Indicates whether Seam should [finish syncing all devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#wait_for_device_creation) in a newly-connected account before completing the associated Connect Webview.", + "description": "Indicates whether Seam should [finish syncing all devices](/core-concepts/connect-webviews/customizing-connect-webviews#wait_for_device_creation) in a newly-connected account before completing the associated Connect Webview.", "type": "boolean" }, "workspace_id": { @@ -4656,7 +4656,7 @@ "x-route-path": "/connect_webviews" }, "connected_account": { - "description": "Represents a [connected account](https://docs.seam.co/core-concepts/connected-accounts). A connected account is an external third-party account to which your user has authorized Seam to get access, for example, an August account with a list of door locks.", + "description": "Represents a [connected account](/core-concepts/connected-accounts). A connected account is an external third-party account to which your user has authorized Seam to get access, for example, an August account with a list of door locks.", "properties": { "accepted_capabilities": { "description": "List of capabilities that were accepted during the account connection process.", @@ -4682,7 +4682,7 @@ "type": "string" }, "automatically_manage_new_devices": { - "description": "Indicates whether Seam should [import all new devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for management by the Seam API.", + "description": "Indicates whether Seam should [import all new devices](/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for management by the Seam API.", "type": "boolean" }, "connected_account_id": { @@ -4706,7 +4706,7 @@ } ] }, - "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", + "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", "type": "object" }, "customer_key": { @@ -4748,7 +4748,7 @@ "type": "string" }, "is_bridge_error": { - "description": "Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).", + "description": "Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge).", "type": "boolean" }, "is_connected_account_error": { @@ -4769,7 +4769,7 @@ "x-resource-type": "connected_account" }, { - "description": "Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected).", + "description": "Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected).", "properties": { "created_at": { "description": "Date and time at which Seam created the error.", @@ -4784,7 +4784,7 @@ "type": "string" }, "is_bridge_error": { - "description": "Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).", + "description": "Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge).", "type": "boolean" }, "is_connected_account_error": { @@ -4820,7 +4820,7 @@ "type": "string" }, "is_bridge_error": { - "description": "Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).", + "description": "Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge).", "type": "boolean" }, "is_connected_account_error": { @@ -4900,7 +4900,7 @@ "type": "string" }, "is_bridge_error": { - "description": "Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).", + "description": "Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge).", "type": "boolean" }, "is_connected_account_error": { @@ -5144,7 +5144,7 @@ "x-undocumented": "Unreleased." }, "device": { - "description": "Represents a [device](https://docs.seam.co/core-concepts/devices) that has been connected to Seam.", + "description": "Represents a [device](/core-concepts/devices) that has been connected to Seam.", "properties": { "can_configure_auto_lock": { "description": "Indicates whether the lock supports configuring automatic locking.", @@ -5227,9 +5227,9 @@ "type": "boolean" }, "capabilities_supported": { - "description": "\n Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags).\n ", + "description": "\n Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags).\n ", "items": { - "description": "\n Collection of capabilities that the device supports when connected to Seam. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags).\n ", + "description": "\n Collection of capabilities that the device supports when connected to Seam. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags).\n ", "enum": [ "access_code", "lock", @@ -5263,7 +5263,7 @@ } ] }, - "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", + "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", "type": "object" }, "device_id": { @@ -5432,7 +5432,7 @@ } }, "is_managed": { - "description": "Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).", + "description": "Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices).", "enum": [ true ], @@ -7223,7 +7223,7 @@ "x-property-group-key": "access_codes" }, "supports_backup_access_code_pool": { - "description": "Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes).", + "description": "Indicates whether the device supports a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes).", "type": "boolean", "x-property-group-key": "access_codes" } @@ -7234,30 +7234,30 @@ "properties": { "active_thermostat_schedule": { "deprecated": true, - "description": "Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "nullable": true, "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "type": "string" }, "created_at": { - "description": "Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.", + "description": "Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.", "format": "date-time", "type": "string" }, "device_id": { - "description": "ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device.", + "description": "ID of the desired [thermostat](/capability-guides/thermostats) device.", "format": "uuid", "type": "string" }, "ends_at": { - "description": "Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "format": "date-time", "type": "string" }, "errors": { - "description": "Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "items": { "properties": { "error_code": { @@ -7278,28 +7278,28 @@ "type": "array" }, "is_override_allowed": { - "description": "Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.", "type": "boolean" }, "max_override_period_minutes": { - "description": "Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "exclusiveMinimum": true, "minimum": 0, "nullable": true, "type": "integer" }, "name": { - "description": "User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "nullable": true, "type": "string" }, "starts_at": { - "description": "Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "format": "date-time", "type": "string" }, "thermostat_schedule_id": { - "description": "ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "format": "uuid", "type": "string" }, @@ -7326,7 +7326,7 @@ "x-route-path": "/thermostats/schedules" }, "active_thermostat_schedule_id": { - "description": "ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "ID of the active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "format": "uuid", "nullable": true, "type": "string", @@ -7351,23 +7351,23 @@ "x-property-group-key": "thermostats" }, "available_climate_presets": { - "description": "Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat.", + "description": "Available [climate presets](/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat.", "items": { "properties": { "can_delete": { - "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.", + "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.", "type": "boolean" }, "can_edit": { - "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.", + "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.", "type": "boolean" }, "can_use_with_thermostat_daily_programs": { - "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.", + "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.", "type": "boolean" }, "climate_preset_key": { - "description": "Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "climate_preset_mode": { @@ -7383,17 +7383,17 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "display_name": { - "description": "Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "ecobee_metadata": { @@ -7424,7 +7424,7 @@ "type": "object" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -7433,17 +7433,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -7455,13 +7455,13 @@ }, "manual_override_allowed": { "deprecated": true, - "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean", "x-deprecated": "Use 'thermostat_schedule.is_override_allowed'" }, "name": { "default": null, - "description": "User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "nullable": true, "type": "string" } @@ -7513,19 +7513,19 @@ "description": "Current climate setting.", "properties": { "can_delete": { - "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.", + "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.", "type": "boolean" }, "can_edit": { - "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.", + "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.", "type": "boolean" }, "can_use_with_thermostat_daily_programs": { - "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.", + "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.", "type": "boolean" }, "climate_preset_key": { - "description": "Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "climate_preset_mode": { @@ -7541,17 +7541,17 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "display_name": { - "description": "Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "ecobee_metadata": { @@ -7582,7 +7582,7 @@ "type": "object" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -7591,17 +7591,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -7613,13 +7613,13 @@ }, "manual_override_allowed": { "deprecated": true, - "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean", "x-deprecated": "Use 'thermostat_schedule.is_override_allowed'" }, "name": { "default": null, - "description": "User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "nullable": true, "type": "string" } @@ -7631,19 +7631,19 @@ "deprecated": true, "properties": { "can_delete": { - "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.", + "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.", "type": "boolean" }, "can_edit": { - "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.", + "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.", "type": "boolean" }, "can_use_with_thermostat_daily_programs": { - "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.", + "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.", "type": "boolean" }, "climate_preset_key": { - "description": "Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "climate_preset_mode": { @@ -7659,17 +7659,17 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "display_name": { - "description": "Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "ecobee_metadata": { @@ -7700,7 +7700,7 @@ "type": "object" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -7709,17 +7709,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -7731,13 +7731,13 @@ }, "manual_override_allowed": { "deprecated": true, - "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean", "x-deprecated": "Use 'thermostat_schedule.is_override_allowed'" }, "name": { "default": null, - "description": "User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "nullable": true, "type": "string" } @@ -7747,7 +7747,7 @@ "x-property-group-key": "thermostats" }, "fallback_climate_preset_key": { - "description": "Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat.", + "description": "Key of the [fallback climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat.", "minLength": 1, "nullable": true, "type": "string", @@ -7785,25 +7785,25 @@ "x-property-group-key": "thermostats" }, "max_cooling_set_point_celsius": { - "description": "Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.", + "description": "Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "max_cooling_set_point_fahrenheit": { - "description": "Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.", + "description": "Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "max_heating_set_point_celsius": { - "description": "Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.", + "description": "Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "max_heating_set_point_fahrenheit": { - "description": "Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.", + "description": "Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.", "format": "float", "type": "number", "x-property-group-key": "thermostats" @@ -7821,37 +7821,37 @@ "x-property-group-key": "thermostats" }, "min_cooling_set_point_celsius": { - "description": "Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.", + "description": "Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "min_cooling_set_point_fahrenheit": { - "description": "Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.", + "description": "Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "min_heating_cooling_delta_celsius": { - "description": "Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode.", + "description": "Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "min_heating_cooling_delta_fahrenheit": { - "description": "Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode.", + "description": "Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "min_heating_set_point_celsius": { - "description": "Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.", + "description": "Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "min_heating_set_point_fahrenheit": { - "description": "Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.", + "description": "Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.", "format": "float", "type": "number", "x-property-group-key": "thermostats" @@ -7877,28 +7877,28 @@ "x-property-group-key": "thermostats" }, "temperature_threshold": { - "description": "Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.", + "description": "Current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.", "properties": { "lower_limit_celsius": { - "description": "Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", + "description": "Lower limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", "format": "float", "nullable": true, "type": "number" }, "lower_limit_fahrenheit": { - "description": "Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", + "description": "Lower limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", "format": "float", "nullable": true, "type": "number" }, "upper_limit_celsius": { - "description": "Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", + "description": "Upper limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", "format": "float", "nullable": true, "type": "number" }, "upper_limit_fahrenheit": { - "description": "Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", + "description": "Upper limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", "format": "float", "nullable": true, "type": "number" @@ -7920,7 +7920,7 @@ "x-property-group-key": "thermostats" }, "thermostat_daily_programs": { - "description": "Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.", + "description": "Configured [daily programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.", "items": { "description": "Represents a thermostat daily program, consisting of a set of periods, each of which has a starting time and the key that identifies the climate preset to apply at the starting time.", "properties": { @@ -7945,7 +7945,7 @@ "description": "Period for a thermostat daily program. Consists of a starts at time and the key that identifies the configured climate preset to apply at the starting time.", "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", + "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", "type": "string" }, "starts_at_time": { @@ -7988,7 +7988,7 @@ "x-property-group-key": "thermostats" }, "thermostat_weekly_program": { - "description": "Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.", + "description": "Current [weekly program](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.", "nullable": true, "properties": { "created_at": { @@ -8344,7 +8344,7 @@ "x-route-path": "/devices" }, "enrollment_automation": { - "description": "Represents an [enrollment automation](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system) within the [Seam mobile access solution](https://docs.seam.co/capability-guides/mobile-access).", + "description": "Represents an [enrollment automation](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system) within the [Seam mobile access solution](/capability-guides/mobile-access).", "properties": { "created_at": { "description": "Date and time at which the enrollment automation was created.", @@ -8352,7 +8352,7 @@ "type": "string" }, "credential_manager_acs_system_id": { - "description": "ID of the associated [ACS system](https://docs.seam.co/low-level-apis/access-systems) that serves as the credential manager.", + "description": "ID of the associated [ACS system](/low-level-apis/access-systems) that serves as the credential manager.", "format": "uuid", "type": "string" }, @@ -8362,7 +8362,7 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the associated [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "ID of the associated [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "format": "uuid", "type": "string" }, @@ -8390,7 +8390,7 @@ }, "oneOf": [ { - "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was created.", + "description": "An [access code](/low-level-apis/smart-locks/access-codes) was created.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -8476,7 +8476,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed.", + "description": "An [access code](/low-level-apis/smart-locks/access-codes) was changed.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -8595,7 +8595,7 @@ "x-route-path": "/access_codes" }, { - "description": "The name of an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed on the device.", + "description": "The name of an [access code](/low-level-apis/smart-locks/access-codes) was changed on the device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -8716,7 +8716,7 @@ "x-route-path": "/access_codes" }, { - "description": "The pin code of an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed on the device.", + "description": "The pin code of an [access code](/low-level-apis/smart-locks/access-codes) was changed on the device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -8837,7 +8837,7 @@ "x-route-path": "/access_codes" }, { - "description": "The time frame of an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed on the device.", + "description": "The time frame of an [access code](/low-level-apis/smart-locks/access-codes) was changed on the device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -8970,7 +8970,7 @@ "x-route-path": "/access_codes" }, { - "description": "Mutations were requested on an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). This event fires at request time, before the change is confirmed on the device.", + "description": "Mutations were requested on an [access code](/low-level-apis/smart-locks/access-codes). This event fires at request time, before the change is confirmed on the device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -9092,7 +9092,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was [scheduled natively](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) on a device.", + "description": "An [access code](/low-level-apis/smart-locks/access-codes) was [scheduled natively](/low-level-apis/smart-locks/access-codes#native-scheduling) on a device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -9183,7 +9183,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was set on a device.", + "description": "An [access code](/low-level-apis/smart-locks/access-codes) was set on a device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -9274,7 +9274,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was removed from a device.", + "description": "An [access code](/low-level-apis/smart-locks/access-codes) was removed from a device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -9360,7 +9360,7 @@ "x-route-path": "/access_codes" }, { - "description": "There was an unusually long delay in setting an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) on a device.", + "description": "There was an unusually long delay in setting an [access code](/low-level-apis/smart-locks/access-codes) on a device.", "properties": { "access_code_errors": { "description": "Errors associated with the access code.", @@ -9620,7 +9620,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) failed to be set on a device.", + "description": "An [access code](/low-level-apis/smart-locks/access-codes) failed to be set on a device.", "properties": { "access_code_errors": { "description": "Errors associated with the access code.", @@ -9880,7 +9880,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was deleted.", + "description": "An [access code](/low-level-apis/smart-locks/access-codes) was deleted.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -9972,7 +9972,7 @@ "x-route-path": "/access_codes" }, { - "description": "There was an unusually long delay in removing an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) from a device.", + "description": "There was an unusually long delay in removing an [access code](/low-level-apis/smart-locks/access-codes) from a device.", "properties": { "access_code_errors": { "description": "Errors associated with the access code.", @@ -10232,7 +10232,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) failed to be removed from a device.", + "description": "An [access code](/low-level-apis/smart-locks/access-codes) failed to be removed from a device.", "properties": { "access_code_errors": { "description": "Errors associated with the access code.", @@ -10492,7 +10492,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was modified outside of Seam.", + "description": "An [access code](/low-level-apis/smart-locks/access-codes) was modified outside of Seam.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -10578,7 +10578,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was deleted outside of Seam.", + "description": "An [access code](/low-level-apis/smart-locks/access-codes) was deleted outside of Seam.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -10664,7 +10664,7 @@ "x-route-path": "/access_codes" }, { - "description": "A [backup access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) was pulled from the backup access code pool and set on a device.", + "description": "A [backup access code](/low-level-apis/smart-locks/access-codes/backup-access-codes) was pulled from the backup access code pool and set on a device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -10755,7 +10755,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was converted successfully to a managed access code.", + "description": "An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was converted successfully to a managed access code.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -10841,7 +10841,7 @@ "x-route-path": "/access_codes/unmanaged" }, { - "description": "An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) failed to be converted to a managed access code.", + "description": "An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) failed to be converted to a managed access code.", "properties": { "access_code_errors": { "description": "Errors associated with the access code.", @@ -11101,7 +11101,7 @@ "x-route-path": "/access_codes/unmanaged" }, { - "description": "An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was created on a device.", + "description": "An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was created on a device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -11187,7 +11187,7 @@ "x-route-path": "/access_codes/unmanaged" }, { - "description": "An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was removed from a device.", + "description": "An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was removed from a device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -11419,7 +11419,7 @@ "type": "string" }, "acs_entrance_id": { - "description": "ID of the affected [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the affected [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, @@ -11471,7 +11471,7 @@ "type": "string" }, "acs_entrance_id": { - "description": "ID of the affected [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the affected [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, @@ -12020,7 +12020,7 @@ "x-route-path": "/access_methods" }, { - "description": "An [access system](https://docs.seam.co/low-level-apis/access-systems) was connected.", + "description": "An [access system](/low-level-apis/access-systems) was connected.", "properties": { "acs_system_id": { "description": "ID of the access system.", @@ -12071,7 +12071,7 @@ "x-route-path": "/acs/systems" }, { - "description": "An [access system](https://docs.seam.co/low-level-apis/access-systems) was added.", + "description": "An [access system](/low-level-apis/access-systems) was added.", "properties": { "acs_system_id": { "description": "ID of the access system.", @@ -12122,7 +12122,7 @@ "x-route-path": "/acs/systems" }, { - "description": "An [access system](https://docs.seam.co/low-level-apis/access-systems) was disconnected.", + "description": "An [access system](/low-level-apis/access-systems) was disconnected.", "properties": { "acs_system_errors": { "description": "Errors associated with the access control system.", @@ -12289,7 +12289,7 @@ "x-route-path": "/acs/systems" }, { - "description": "An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was deleted.", + "description": "An [access system credential](/low-level-apis/access-systems/managing-credentials) was deleted.", "properties": { "acs_credential_id": { "description": "ID of the affected credential.", @@ -12346,7 +12346,7 @@ "x-route-path": "/acs/credentials" }, { - "description": "An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was issued.", + "description": "An [access system credential](/low-level-apis/access-systems/managing-credentials) was issued.", "properties": { "acs_credential_id": { "description": "ID of the affected credential.", @@ -12403,7 +12403,7 @@ "x-route-path": "/acs/credentials" }, { - "description": "An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was reissued.", + "description": "An [access system credential](/low-level-apis/access-systems/managing-credentials) was reissued.", "properties": { "acs_credential_id": { "description": "ID of the affected credential.", @@ -12460,7 +12460,7 @@ "x-route-path": "/acs/credentials" }, { - "description": "An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was invalidated. That is, the credential cannot be used anymore.", + "description": "An [access system credential](/low-level-apis/access-systems/managing-credentials) was invalidated. That is, the credential cannot be used anymore.", "properties": { "acs_credential_id": { "description": "ID of the affected credential.", @@ -12517,7 +12517,7 @@ "x-route-path": "/acs/credentials" }, { - "description": "An [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created.", + "description": "An [access system user](/low-level-apis/access-systems/user-management) was created.", "properties": { "acs_system_id": { "description": "ID of the access system.", @@ -12574,7 +12574,7 @@ "x-route-path": "/acs/users" }, { - "description": "An [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was deleted.", + "description": "An [access system user](/low-level-apis/access-systems/user-management) was deleted.", "properties": { "acs_system_id": { "description": "ID of the access system.", @@ -12631,7 +12631,7 @@ "x-route-path": "/acs/users" }, { - "description": "An [access system encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was added.", + "description": "An [access system encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was added.", "properties": { "acs_encoder_id": { "description": "ID of the affected encoder.", @@ -12688,7 +12688,7 @@ "x-route-path": "/acs/encoders" }, { - "description": "An [access system encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was removed.", + "description": "An [access system encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was removed.", "properties": { "acs_encoder_id": { "description": "ID of the affected encoder.", @@ -12802,7 +12802,7 @@ "x-route-path": "/acs/access_groups" }, { - "description": "An [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was added.", + "description": "An [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details) was added.", "properties": { "acs_entrance_id": { "description": "ID of the affected entrance.", @@ -12859,7 +12859,7 @@ "x-route-path": "/acs/entrances" }, { - "description": "An [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was removed.", + "description": "An [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details) was removed.", "properties": { "acs_entrance_id": { "description": "ID of the affected entrance.", @@ -14401,7 +14401,7 @@ "x-route-path": "/devices" }, { - "description": "A managed device was successfully converted to an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).", + "description": "A managed device was successfully converted to an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices).", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -14485,7 +14485,7 @@ "x-route-path": "/devices" }, { - "description": "An [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices) was successfully converted to a managed device.", + "description": "An [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) was successfully converted to a managed device.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -14569,7 +14569,7 @@ "x-route-path": "/devices/unmanaged" }, { - "description": "The status of an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`.", + "description": "The status of an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -14863,7 +14863,7 @@ "x-route-path": "/devices" }, { - "description": "The status of an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`.", + "description": "The status of an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -15693,7 +15693,7 @@ "x-route-path": "/devices" }, { - "description": "A [Salto device](https://docs.seam.co/device-and-system-integration-guides/salto-locks) activated privacy mode.", + "description": "A [Salto device](/device-and-system-integration-guides/salto-locks) activated privacy mode.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -15777,7 +15777,7 @@ "x-route-path": "/devices" }, { - "description": "A [Salto device](https://docs.seam.co/device-and-system-integration-guides/salto-locks) deactivated privacy mode.", + "description": "A [Salto device](/device-and-system-integration-guides/salto-locks) deactivated privacy mode.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -16713,7 +16713,7 @@ "x-route-path": "/devices" }, { - "description": "Extended periods of noise or noise exceeding a [threshold](https://docs.seam.co/capability-guides/noise-sensors#what-is-a-threshold) were detected.", + "description": "Extended periods of noise or noise exceeding a [threshold](/capability-guides/noise-sensors#what-is-a-threshold) were detected.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -16826,7 +16826,7 @@ "x-route-path": "/noise_sensors/noise_thresholds" }, { - "description": "A [lock](https://docs.seam.co/low-level-apis/smart-locks) was locked.", + "description": "A [lock](/low-level-apis/smart-locks) was locked.", "properties": { "access_code_id": { "description": "ID of the access code that was used to lock the device.", @@ -16944,7 +16944,7 @@ "x-route-path": "/locks" }, { - "description": "A [lock](https://docs.seam.co/low-level-apis/smart-locks) was unlocked.", + "description": "A [lock](/low-level-apis/smart-locks) was unlocked.", "properties": { "access_code_id": { "description": "ID of the access code that was used to unlock the affected device.", @@ -17042,7 +17042,7 @@ "type": "boolean" }, "method": { - "description": "Method by which the lock was unlocked. `keycode`: an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was used (see `access_code_id`). `manual`: a physical action such as a thumbturn or handle press. `remote`: a remote action via an app, Bluetooth, or the Seam API (see `action_attempt_id` if Seam-initiated; see `is_via_bluetooth` or `is_via_nfc` for the transport). `automatic`: triggered automatically, for example by a time-based schedule. `unknown`: could not be determined.", + "description": "Method by which the lock was unlocked. `keycode`: an [access code](/low-level-apis/smart-locks/access-codes) was used (see `access_code_id`). `manual`: a physical action such as a thumbturn or handle press. `remote`: a remote action via an app, Bluetooth, or the Seam API (see `action_attempt_id` if Seam-initiated; see `is_via_bluetooth` or `is_via_nfc` for the transport). `automatic`: triggered automatically, for example by a time-based schedule. `unknown`: could not be determined.", "enum": [ "keycode", "manual", @@ -17081,7 +17081,7 @@ "x-route-path": "/locks" }, { - "description": "The [lock](https://docs.seam.co/low-level-apis/smart-locks) denied access to a user after one or more consecutive invalid attempts to unlock the device.", + "description": "The [lock](/low-level-apis/smart-locks) denied access to a user after one or more consecutive invalid attempts to unlock the device.", "properties": { "access_code_id": { "description": "ID of the access code that was used in the unlock attempts.", @@ -17189,7 +17189,7 @@ "x-route-path": "/locks" }, { - "description": "A thermostat [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) was activated.", + "description": "A thermostat [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) was activated.", "properties": { "climate_preset_key": { "description": "Key of the climate preset that was activated.", @@ -17290,7 +17290,7 @@ "x-route-path": "/thermostats" }, { - "description": "A [thermostat](https://docs.seam.co/capability-guides/thermostats) was adjusted manually.", + "description": "A [thermostat](/capability-guides/thermostats) was adjusted manually.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -17312,12 +17312,12 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, @@ -17361,7 +17361,7 @@ "type": "string" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -17370,17 +17370,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -17423,7 +17423,7 @@ "x-route-path": "/thermostats" }, { - "description": "A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature reading exceeded the set [threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).", + "description": "A [thermostat's](/capability-guides/thermostats) temperature reading exceeded the set [threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -17547,7 +17547,7 @@ "x-route-path": "/thermostats" }, { - "description": "A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature reading no longer exceeds the set [threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).", + "description": "A [thermostat's](/capability-guides/thermostats) temperature reading no longer exceeds the set [threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -17671,7 +17671,7 @@ "x-route-path": "/thermostats" }, { - "description": "A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature reading is within 1 °C of the configured cooling or heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "A [thermostat's](/capability-guides/thermostats) temperature reading is within 1 °C of the configured cooling or heating [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -17777,7 +17777,7 @@ "x-route-path": "/thermostats" }, { - "description": "A [thermostat's](https://docs.seam.co/capability-guides/thermostats) reported temperature changed by at least 1 °C.", + "description": "A [thermostat's](/capability-guides/thermostats) reported temperature changed by at least 1 °C.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -18168,7 +18168,7 @@ "x-route-path": "/devices" }, { - "description": "An [enrollment automation](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#prepare-the-phones-for-a-user-identity-to-start-receiving-mobile-credentials-using-an-enrollment-aut) was deleted.", + "description": "An [enrollment automation](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system) was deleted.", "properties": { "created_at": { "description": "Date and time at which the event was created.", @@ -18598,7 +18598,7 @@ "x-undocumented": "Unreleased." }, "noise_threshold": { - "description": "Represents a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them.", + "description": "Represents a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them.", "properties": { "device_id": { "description": "Unique identifier for the device that contains the noise threshold.", @@ -18624,7 +18624,7 @@ "type": "string" }, "noise_threshold_nrs": { - "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors).", + "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](/device-and-system-integration-guides/noiseaware-sensors).", "format": "float", "type": "number" }, @@ -18689,7 +18689,7 @@ } ] }, - "description": "Optional [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) for the phone.\n ", + "description": "Optional [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) for the phone.\n ", "type": "object" }, "device_id": { @@ -18878,10 +18878,10 @@ "acs_credentials": { "description": "Access system credentials associated with the phone provider session.", "items": { - "description": "Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nAn access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.\n\nFor each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials.", + "description": "Means by which an [access control system user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems).\n\nAn access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.\n\nFor each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.\n\nFor granting a person access to a space, [Access Grants](/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials.", "properties": { "access_method": { - "description": "Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.", + "description": "Access method for the [credential](/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.", "enum": [ "code", "card", @@ -18901,20 +18901,20 @@ }, "acs_entrances": { "items": { - "description": "Represents an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nIn an access control system, an entrance is a secured door, gate, zone, or other method of entry. You can list details for all the `acs_entrance` resources in your workspace or get these details for a specific `acs_entrance`. You can also list all entrances associated with a specific credential, and you can list all credentials associated with a specific entrance.", + "description": "Represents an [entrance](/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](/low-level-apis/access-systems).\n\nIn an access control system, an entrance is a secured door, gate, zone, or other method of entry. You can list details for all the `acs_entrance` resources in your workspace or get these details for a specific `acs_entrance`. You can also list all entrances associated with a specific credential, and you can list all credentials associated with a specific entrance.", "properties": { "acs_entrance_id": { - "description": "ID of the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, "acs_system_id": { - "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the [access control system](/low-level-apis/access-systems) that contains the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, "assa_abloy_vostio_metadata": { - "description": "ASSA ABLOY Vostio-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ASSA ABLOY Vostio-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "door_name": { "description": "Name of the door in the Vostio access system.", @@ -18951,7 +18951,7 @@ "type": "object" }, "avigilon_alta_metadata": { - "description": "Avigilon Alta-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Avigilon Alta-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "entry_name": { "description": "Entry name for an Avigilon Alta system.", @@ -18997,7 +18997,7 @@ "type": "object" }, "brivo_metadata": { - "description": "Brivo-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Brivo-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "access_point_id": { "description": "ID of the access point in the Brivo access system.", @@ -19041,21 +19041,21 @@ "type": "boolean" }, "connected_account_id": { - "description": "ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the [connected account](/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was created.", + "description": "Date and time at which the [entrance](/low-level-apis/access-systems/retrieving-entrance-details) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name for the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Display name for the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "type": "string" }, "dormakaba_ambiance_metadata": { - "description": "dormakaba Ambiance-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "dormakaba Ambiance-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "access_point_name": { "description": "Name of the access point in the dormakaba Ambiance access system.", @@ -19068,7 +19068,7 @@ "type": "object" }, "dormakaba_community_metadata": { - "description": "dormakaba Community-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "dormakaba Community-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "access_point_profile": { "description": "Type of access point profile in the dormakaba Community access system.", @@ -19081,7 +19081,7 @@ "type": "object" }, "errors": { - "description": "Errors associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Errors associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "items": { "properties": { "error_code": { @@ -19102,7 +19102,7 @@ "type": "array" }, "hotek_metadata": { - "description": "Hotek-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Hotek-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "common_area_name": { "description": "Display name of the entrance.", @@ -19120,11 +19120,11 @@ "type": "object" }, "is_locked": { - "description": "Indicates whether the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) is currently locked.", + "description": "Indicates whether the [entrance](/low-level-apis/access-systems/retrieving-entrance-details) is currently locked.", "type": "boolean" }, "latch_metadata": { - "description": "Latch-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Latch-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "accessibility_type": { "description": "Accessibility type in the Latch access system.", @@ -19152,7 +19152,7 @@ "type": "object" }, "salto_ks_metadata": { - "description": "Salto KS-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Salto KS-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "battery_level": { "description": "Battery level of the door access device.", @@ -19196,7 +19196,7 @@ "type": "object" }, "salto_space_metadata": { - "description": "Salto Space-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Salto Space-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "audit_on_keys": { "description": "Indicates whether AuditOnKeys is enabled for the door in the Salto Space access system.", @@ -19234,7 +19234,7 @@ "type": "array" }, "visionline_metadata": { - "description": "Visionline-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Visionline-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "door_category": { "description": "Category of the door in the Visionline access system.", @@ -19285,9 +19285,9 @@ "type": "object" }, "warnings": { - "description": "Warnings associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Warnings associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "items": { - "description": "Warning associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Warning associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "discriminator": { "propertyName": "warning_code" }, @@ -19421,17 +19421,17 @@ "type": "array" }, "acs_system_id": { - "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the [access control system](/low-level-apis/access-systems) that contains the [credential](/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, "acs_user_id": { - "description": "ID of the [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [ACS user](/low-level-apis/access-systems/user-management) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "assa_abloy_vostio_metadata": { - "description": "Vostio-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Vostio-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials).", "properties": { "auto_join": { "description": "Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.", @@ -19467,36 +19467,36 @@ "type": "object" }, "card_number": { - "description": "Number of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Number of the card associated with the [credential](/low-level-apis/access-systems/managing-credentials).", "nullable": true, "type": "string" }, "code": { - "description": "Access (PIN) code for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Access (PIN) code for the [credential](/low-level-apis/access-systems/managing-credentials).", "nullable": true, "type": "string" }, "connected_account_id": { - "description": "ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/managing-credentials#connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [connected account](/low-level-apis/access-systems/managing-credentials) to which the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created.", + "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name that corresponds to the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.", + "description": "Display name that corresponds to the [credential](/low-level-apis/access-systems/managing-credentials) type.", "minLength": 1, "type": "string" }, "ends_at": { - "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.", + "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.", "type": "string" }, "errors": { - "description": "Errors associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Errors associated with the [credential](/low-level-apis/access-systems/managing-credentials).", "items": { "properties": { "error_code": { @@ -19515,7 +19515,7 @@ "type": "array" }, "external_type": { - "description": "Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.", + "description": "Brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.", "enum": [ "pti_card", "brivo_credential", @@ -19533,15 +19533,15 @@ "type": "string" }, "external_type_display_name": { - "description": "Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.", + "description": "Display name that corresponds to the brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type.", "type": "string" }, "is_issued": { - "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.", + "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.", "type": "boolean" }, "is_latest_desired_state_synced_with_provider": { - "description": "Indicates whether the latest state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.", + "description": "Indicates whether the latest state of the [credential](/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.", "nullable": true, "type": "boolean" }, @@ -19553,41 +19553,41 @@ "type": "boolean" }, "is_multi_phone_sync_credential": { - "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", + "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.", + "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.", "type": "boolean" }, "issued_at": { - "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was encoded onto a card.", + "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was encoded onto a card.", "format": "date-time", "nullable": true, "type": "string" }, "latest_desired_state_synced_with_provider_at": { - "description": "Date and time at which the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.", + "description": "Date and time at which the state of the [credential](/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.", "format": "date-time", "nullable": true, "type": "string" }, "parent_acs_credential_id": { - "description": "ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the parent [credential](/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, "starts_at": { - "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](https://docs.seam.co/api/user_identities/object) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [user identity](/api/user_identities/object) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "visionline_metadata": { - "description": "Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Visionline-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials).", "properties": { "auto_join": { "description": "Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.", @@ -19644,15 +19644,15 @@ "type": "object" }, "warnings": { - "description": "Warnings associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Warnings associated with the [credential](/low-level-apis/access-systems/managing-credentials).", "items": { - "description": "Warning associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Warning associated with the [credential](/low-level-apis/access-systems/managing-credentials).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is waiting to be issued.", + "description": "Indicates that the [credential](/low-level-apis/access-systems/managing-credentials) is waiting to be issued.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -19679,7 +19679,7 @@ "type": "object" }, { - "description": "Indicates that the schedule of one of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials)'s children was modified externally.", + "description": "Indicates that the schedule of one of the [credential](/low-level-apis/access-systems/managing-credentials)'s children was modified externally.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -19706,7 +19706,7 @@ "type": "object" }, { - "description": "Indicates that the schedule of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was modified to avoid creating a credential with a start date in the past.", + "description": "Indicates that the schedule of the [credential](/low-level-apis/access-systems/managing-credentials) was modified to avoid creating a credential with a start date in the past.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -19733,7 +19733,7 @@ "type": "object" }, { - "description": "Indicates that the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is being deleted.", + "description": "Indicates that the [credential](/low-level-apis/access-systems/managing-credentials) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -19760,7 +19760,7 @@ "type": "object" }, { - "description": "An unknown issue occurred while syncing the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) with the provider. This issue may affect the proper functioning of the credential.", + "description": "An unknown issue occurred while syncing the state of the [credential](/low-level-apis/access-systems/managing-credentials) with the provider. This issue may affect the proper functioning of the credential.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -19787,7 +19787,7 @@ "type": "object" }, { - "description": "Access permissions for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) have changed. [Reissue](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners/creating-and-encoding-card-based-credentials) (re-encode) the credential. This issue may affect the proper functioning of the credential.", + "description": "Access permissions for the [credential](/low-level-apis/access-systems/managing-credentials) have changed. [Reissue](/low-level-apis/access-systems/working-with-card-encoders-and-scanners/creating-and-encoding-card-based-credentials) (re-encode) the credential. This issue may affect the proper functioning of the credential.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -19818,7 +19818,7 @@ "type": "array" }, "workspace_id": { - "description": "ID of the workspace that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the workspace that contains the [credential](/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" } @@ -20320,7 +20320,7 @@ "description": "Period for a thermostat daily program. Consists of a starts at time and the key that identifies the configured climate preset to apply at the starting time.", "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", + "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", "type": "string" }, "starts_at_time": { @@ -20360,29 +20360,29 @@ "x-route-path": "/thermostats/daily_programs" }, "thermostat_schedule": { - "description": "Represents a [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that activates a configured [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) on a [thermostat](https://docs.seam.co/capability-guides/thermostats) at a specified starting time and deactivates the climate preset at a specified ending time.", + "description": "Represents a [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that activates a configured [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) on a [thermostat](/capability-guides/thermostats) at a specified starting time and deactivates the climate preset at a specified ending time.", "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "type": "string" }, "created_at": { - "description": "Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.", + "description": "Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.", "format": "date-time", "type": "string" }, "device_id": { - "description": "ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device.", + "description": "ID of the desired [thermostat](/capability-guides/thermostats) device.", "format": "uuid", "type": "string" }, "ends_at": { - "description": "Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "format": "date-time", "type": "string" }, "errors": { - "description": "Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "items": { "properties": { "error_code": { @@ -20403,28 +20403,28 @@ "type": "array" }, "is_override_allowed": { - "description": "Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.", "type": "boolean" }, "max_override_period_minutes": { - "description": "Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "exclusiveMinimum": true, "minimum": 0, "nullable": true, "type": "integer" }, "name": { - "description": "User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "nullable": true, "type": "string" }, "starts_at": { - "description": "Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "format": "date-time", "type": "string" }, "thermostat_schedule_id": { - "description": "ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "format": "uuid", "type": "string" }, @@ -20449,7 +20449,7 @@ "x-route-path": "/thermostats/schedules" }, "unmanaged_access_code": { - "description": "Represents an [unmanaged smart lock access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Represents an [unmanaged smart lock access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "properties": { "access_code_id": { "description": "Unique identifier for the access code.", @@ -20538,7 +20538,7 @@ }, "errors": { "type": "array", - "description": "Errors associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", + "description": "Errors associated with the [access code](/low-level-apis/smart-locks/access-codes).", "items": { "type": "object", "properties": { @@ -20594,7 +20594,7 @@ }, "warnings": { "type": "array", - "description": "Warnings associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", + "description": "Warnings associated with the [access code](/low-level-apis/smart-locks/access-codes).", "items": { "type": "object", "properties": { @@ -20712,7 +20712,7 @@ }, "oneOf": [ { - "description": "Indicates that the [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups) was not created on the [access system](https://docs.seam.co/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co).", + "description": "Indicates that the [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups) was not created on the [access system](/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co).", "properties": { "created_at": { "description": "Date and time at which Seam created the error.", @@ -21238,10 +21238,10 @@ "x-undocumented": "Unreleased." }, "unmanaged_acs_credential": { - "description": "Means by which an [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `unmanaged_acs_credential` object, which is not managed by Seam, represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Means by which an [ACS user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `unmanaged_acs_credential` object, which is not managed by Seam, represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems).", "properties": { "access_method": { - "description": "Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.", + "description": "Access method for the [credential](/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.", "enum": [ "code", "card", @@ -21251,7 +21251,7 @@ "type": "string" }, "acs_credential_id": { - "description": "ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the [credential](/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, @@ -21261,17 +21261,17 @@ "type": "string" }, "acs_system_id": { - "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the [access control system](/low-level-apis/access-systems) that contains the [credential](/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, "acs_user_id": { - "description": "ID of the [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [ACS user](/low-level-apis/access-systems/user-management) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "assa_abloy_vostio_metadata": { - "description": "Vostio-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Vostio-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials).", "properties": { "auto_join": { "description": "Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.", @@ -21307,36 +21307,36 @@ "type": "object" }, "card_number": { - "description": "Number of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Number of the card associated with the [credential](/low-level-apis/access-systems/managing-credentials).", "nullable": true, "type": "string" }, "code": { - "description": "Access (PIN) code for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Access (PIN) code for the [credential](/low-level-apis/access-systems/managing-credentials).", "nullable": true, "type": "string" }, "connected_account_id": { - "description": "ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/managing-credentials#connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [connected account](/low-level-apis/access-systems/managing-credentials) to which the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created.", + "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name that corresponds to the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.", + "description": "Display name that corresponds to the [credential](/low-level-apis/access-systems/managing-credentials) type.", "minLength": 1, "type": "string" }, "ends_at": { - "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.", + "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.", "type": "string" }, "errors": { - "description": "Errors associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Errors associated with the [credential](/low-level-apis/access-systems/managing-credentials).", "items": { "properties": { "error_code": { @@ -21355,7 +21355,7 @@ "type": "array" }, "external_type": { - "description": "Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.", + "description": "Brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.", "enum": [ "pti_card", "brivo_credential", @@ -21373,15 +21373,15 @@ "type": "string" }, "external_type_display_name": { - "description": "Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.", + "description": "Display name that corresponds to the brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type.", "type": "string" }, "is_issued": { - "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.", + "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.", "type": "boolean" }, "is_latest_desired_state_synced_with_provider": { - "description": "Indicates whether the latest state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.", + "description": "Indicates whether the latest state of the [credential](/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.", "nullable": true, "type": "boolean" }, @@ -21392,41 +21392,41 @@ "type": "boolean" }, "is_multi_phone_sync_credential": { - "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", + "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.", + "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.", "type": "boolean" }, "issued_at": { - "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was encoded onto a card.", + "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was encoded onto a card.", "format": "date-time", "nullable": true, "type": "string" }, "latest_desired_state_synced_with_provider_at": { - "description": "Date and time at which the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.", + "description": "Date and time at which the state of the [credential](/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.", "format": "date-time", "nullable": true, "type": "string" }, "parent_acs_credential_id": { - "description": "ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the parent [credential](/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, "starts_at": { - "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](https://docs.seam.co/api/user_identities/object) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [user identity](/api/user_identities/object) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "visionline_metadata": { - "description": "Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Visionline-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials).", "properties": { "auto_join": { "description": "Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.", @@ -21484,7 +21484,7 @@ }, "warnings": { "type": "array", - "description": "Warnings associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Warnings associated with the [credential](/low-level-apis/access-systems/managing-credentials).", "items": { "type": "object", "properties": { @@ -21505,7 +21505,7 @@ } }, "workspace_id": { - "description": "ID of the workspace that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the workspace that contains the [credential](/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" } @@ -21527,10 +21527,10 @@ "x-undocumented": "Unreleased." }, "unmanaged_acs_user": { - "description": "Represents an unmanaged [user](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Represents an unmanaged [user](/low-level-apis/access-systems/user-management) in an [access system](/low-level-apis/access-systems).", "properties": { "access_schedule": { - "description": "`starts_at` and `ends_at` timestamps for the [access system user's](https://docs.seam.co/low-level-apis/access-systems/user-management) access.", + "description": "`starts_at` and `ends_at` timestamps for the [access system user's](/low-level-apis/access-systems/user-management) access.", "properties": { "ends_at": { "description": "Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", @@ -21551,27 +21551,27 @@ "type": "object" }, "acs_system_id": { - "description": "ID of the [access system](https://docs.seam.co/low-level-apis/access-systems) that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "ID of the [access system](/low-level-apis/access-systems) that contains the [access system user](/low-level-apis/access-systems/user-management).", "format": "uuid", "type": "string" }, "acs_user_id": { - "description": "ID of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "ID of the [access system user](/low-level-apis/access-systems/user-management).", "format": "uuid", "type": "string" }, "connected_account_id": { - "description": "\n The ID of the connected account that is associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).\n ", + "description": "\n The ID of the connected account that is associated with the [access system user](/low-level-apis/access-systems/user-management).\n ", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created.", + "description": "Date and time at which the [access system user](/low-level-apis/access-systems/user-management) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Display name for the [access system user](/low-level-apis/access-systems/user-management).", "type": "string" }, "email": { @@ -21581,13 +21581,13 @@ "x-deprecated": "use email_address." }, "email_address": { - "description": "Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Email address of the [access system user](/low-level-apis/access-systems/user-management).", "format": "email", "type": "string" }, "errors": { "type": "array", - "description": "Errors associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Errors associated with the [access system user](/low-level-apis/access-systems/user-management).", "items": { "type": "object", "properties": { @@ -21608,7 +21608,7 @@ } }, "external_type": { - "description": "Brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type.", + "description": "Brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type.", "enum": [ "pti_user", "brivo_user", @@ -21622,11 +21622,11 @@ "type": "string" }, "external_type_display_name": { - "description": "Display name that corresponds to the brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type.", + "description": "Display name that corresponds to the brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type.", "type": "string" }, "full_name": { - "description": "Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Full name of the [access system user](/low-level-apis/access-systems/user-management).", "minLength": 1, "type": "string" }, @@ -21642,7 +21642,7 @@ "type": "boolean" }, "is_suspended": { - "description": "Indicates whether the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is currently [suspended](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users).", + "description": "Indicates whether the [access system user](/low-level-apis/access-systems/user-management) is currently [suspended](/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users).", "type": "boolean" }, "last_successful_sync_at": { @@ -21653,7 +21653,7 @@ "x-undocumented": "Only used internally." }, "pending_mutations": { - "description": "Pending mutations associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.", + "description": "Pending mutations associated with the [access system user](/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -22109,11 +22109,11 @@ "type": "array" }, "phone_number": { - "description": "Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "type": "string" }, "salto_space_metadata": { - "description": "Salto Space-specific metadata associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Salto Space-specific metadata associated with the [access system user](/low-level-apis/access-systems/user-management).", "properties": { "audit_openings": { "description": "Indicates whether AuditOpenings is enabled for the user in the Salto Space access system.", @@ -22127,34 +22127,34 @@ "type": "object" }, "user_identity_email_address": { - "description": "Email address of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Email address of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).", "nullable": true, "type": "string" }, "user_identity_full_name": { - "description": "Full name of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Full name of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).", "nullable": true, "type": "string" }, "user_identity_id": { - "description": "ID of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "ID of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).", "type": "string" }, "user_identity_phone_number": { - "description": "Phone number of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "nullable": true, "type": "string" }, "warnings": { - "description": "Warnings associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Warnings associated with the [access system user](/low-level-apis/access-systems/user-management).", "items": { - "description": "Warnings associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Warnings associated with the [access system user](/low-level-apis/access-systems/user-management).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is being deleted from the [access system](https://docs.seam.co/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly.", + "description": "Indicates that the [access system user](/low-level-apis/access-systems/user-management) is being deleted from the [access system](/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -22180,7 +22180,7 @@ "type": "object" }, { - "description": "Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.", + "description": "Indicates that the [access system user](/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -22206,7 +22206,7 @@ "type": "object" }, { - "description": "An unknown issue occurred while syncing the state of this [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user.", + "description": "An unknown issue occurred while syncing the state of this [access system user](/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -22232,7 +22232,7 @@ "type": "object" }, { - "description": "Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user.", + "description": "Indicates that the [access system user](/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -22262,7 +22262,7 @@ "type": "array" }, "workspace_id": { - "description": "ID of the workspace that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "ID of the workspace that contains the [access system user](/low-level-apis/access-systems/user-management).", "format": "uuid", "type": "string" } @@ -22284,7 +22284,7 @@ "x-undocumented": "Unreleased." }, "unmanaged_device": { - "description": "Represents an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged.", + "description": "Represents an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged.", "properties": { "can_configure_auto_lock": { "description": "Indicates whether the lock supports configuring automatic locking.", @@ -22367,9 +22367,9 @@ "type": "boolean" }, "capabilities_supported": { - "description": "\n Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags).\n ", + "description": "\n Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags).\n ", "items": { - "description": "\n Collection of capabilities that the device supports when connected to Seam. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags).\n ", + "description": "\n Collection of capabilities that the device supports when connected to Seam. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags).\n ", "enum": [ "access_code", "lock", @@ -22403,7 +22403,7 @@ } ] }, - "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", + "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", "type": "object" }, "device_id": { @@ -22790,7 +22790,7 @@ "x-route-path": "/devices/unmanaged" }, "user_identity": { - "description": "Represents a [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with an application user account.", + "description": "Represents a [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with an application user account.", "properties": { "acs_user_ids": { "description": "Array of access system user IDs associated with the user identity.", @@ -22979,21 +22979,21 @@ "x-route-path": "/user_identities" }, "webhook": { - "description": "Represents a [webhook](https://docs.seam.co/developer-tools/webhooks) that enables you to receive notifications of events. When you create a webhook, specify the endpoint URL at which you want to receive events and the set of event types that you want to receive.", + "description": "Represents a [webhook](/developer-tools/webhooks) that enables you to receive notifications of events. When you create a webhook, specify the endpoint URL at which you want to receive events and the set of event types that you want to receive.", "properties": { "event_types": { - "description": "Types of events that the [webhook](https://docs.seam.co/developer-tools/webhooks) should receive.", + "description": "Types of events that the [webhook](/developer-tools/webhooks) should receive.", "items": { "type": "string" }, "type": "array" }, "secret": { - "description": "Secret associated with the [webhook](https://docs.seam.co/developer-tools/webhooks).", + "description": "Secret associated with the [webhook](/developer-tools/webhooks).", "type": "string" }, "url": { - "description": "URL for the [webhook](https://docs.seam.co/developer-tools/webhooks).", + "description": "URL for the [webhook](/developer-tools/webhooks).", "type": "string" }, "webhook_id": { @@ -23009,10 +23009,10 @@ "x-route-path": "/webhooks" }, "workspace": { - "description": "Represents a Seam [workspace](https://docs.seam.co/core-concepts/workspaces). A workspace is a top-level entity that encompasses all other resources below it, such as devices, connected accounts, and Connect Webviews. Seam provides two types of workspaces. A [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) is a special type of workspace designed for testing code.", + "description": "Represents a Seam [workspace](/core-concepts/workspaces). A workspace is a top-level entity that encompasses all other resources below it, such as devices, connected accounts, and Connect Webviews. Seam provides two types of workspaces. A [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces) is a special type of workspace designed for testing code.", "properties": { "company_name": { - "description": "Company name associated with the [workspace](https://docs.seam.co/core-concepts/workspaces).", + "description": "Company name associated with the [workspace](/core-concepts/workspaces).", "type": "string" }, "connect_partner_name": { @@ -23024,11 +23024,11 @@ "connect_webview_customization": { "properties": { "inviter_logo_url": { - "description": "URL of the inviter logo for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "URL of the inviter logo for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "type": "string" }, "logo_shape": { - "description": "Logo shape for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Logo shape for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "enum": [ "circle", "square" @@ -23036,15 +23036,15 @@ "type": "string" }, "primary_button_color": { - "description": "Primary button color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "type": "string" }, "primary_button_text_color": { - "description": "Primary button text color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button text color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "type": "string" }, "success_message": { - "description": "Success message for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Success message for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "type": "string" } }, @@ -23055,15 +23055,15 @@ "type": "boolean" }, "is_sandbox": { - "description": "Indicates whether the workspace is a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", + "description": "Indicates whether the workspace is a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", "type": "boolean" }, "is_suspended": { - "description": "Indicates whether the [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) is suspended. Seam suspends sandbox workspaces that have not been accessed in 14 days.", + "description": "Indicates whether the [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces) is suspended. Seam suspends sandbox workspaces that have not been accessed in 14 days.", "type": "boolean" }, "name": { - "description": "Name of the [workspace](https://docs.seam.co/core-concepts/workspaces).", + "description": "Name of the [workspace](/core-concepts/workspaces).", "type": "string" }, "organization_id": { @@ -23073,7 +23073,7 @@ "type": "string" }, "publishable_key": { - "description": "Publishable key for the [workspace](https://docs.seam.co/core-concepts/workspaces). This key is used to identify the workspace in client-side applications.", + "description": "Publishable key for the [workspace](/core-concepts/workspaces). This key is used to identify the workspace in client-side applications.", "type": "string" }, "workspace_id": { @@ -23238,7 +23238,7 @@ "paths": { "/access_codes/create": { "post": { - "description": "Creates a new [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). For granting access, we recommend [Access Grants](https://docs.seam.co/use-cases/granting-access) instead: they work across both standalone smart locks and access control systems and manage the underlying codes for you. Use this low-level endpoint only when you need direct control over a code on a single device, such as setting a custom PIN value.", + "description": "Creates a new [access code](/low-level-apis/smart-locks/access-codes). For granting access, we recommend [Access Grants](/use-cases/granting-access) instead: they work across both standalone smart locks and access control systems and manage the underlying codes for you. Use this low-level endpoint only when you need direct control over a code on a single device, such as setting a custom PIN value.", "operationId": "accessCodesCreatePost", "requestBody": { "content": { @@ -23246,7 +23246,7 @@ "schema": { "properties": { "allow_external_modification": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "attempt_for_offline_device": { @@ -23261,7 +23261,7 @@ "type": "string" }, "common_code_key": { - "description": "Key to identify access codes that should have the same code. Any two access codes with the same `common_code_key` are guaranteed to have the same `code`. See also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).", + "description": "Key to identify access codes that should have the same code. Any two access codes with the same `common_code_key` are guaranteed to have the same `code`. See also [Creating and Updating Multiple Linked Access Codes](/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).", "type": "string" }, "device_id": { @@ -23274,19 +23274,19 @@ "type": "string" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "is_offline_access_code": { - "description": "Indicates whether the access code is an [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes).", + "description": "Indicates whether the access code is an [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", + "description": "Indicates whether the [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", "type": "boolean" }, "max_time_rounding": { - "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", + "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", "enum": [ "1hour", "1day", @@ -23300,7 +23300,7 @@ "type": "string" }, "prefer_native_scheduling": { - "description": "Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", + "description": "Indicates whether [native scheduling](/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", "type": "boolean" }, "preferred_code_length": { @@ -23318,7 +23318,7 @@ "x-undocumented": "Only used internally." }, "use_backup_access_code_pool": { - "description": "Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes#backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code).", + "description": "Indicates whether to use a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](/api/access_codes/pull_backup_access_code).", "type": "boolean" }, "use_offline_access_code": { @@ -23479,7 +23479,7 @@ }, "/access_codes/create_multiple": { "post": { - "description": "Creates new [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nUsers with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.\n\nIf you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a `common_code_key`. That is, `common_code_key` remains null for these access codes.\n\nIf you want to change these access codes that are not linked by a `common_code_key`, you cannot use `/access_codes/update_multiple`. However, you can update each of these access codes individually, using `/access_codes/update`.\n\nSee also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.", + "description": "Creates new [access codes](/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nUsers with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.\n\nIf you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a `common_code_key`. That is, `common_code_key` remains null for these access codes.\n\nIf you want to change these access codes that are not linked by a `common_code_key`, you cannot use `/access_codes/update_multiple`. However, you can update each of these access codes individually, using `/access_codes/update`.\n\nSee also [Creating and Updating Multiple Linked Access Codes](/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).\n\nFor granting a person access to a space, [Access Grants](/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.", "operationId": "accessCodesCreateMultiplePost", "requestBody": { "content": { @@ -23487,7 +23487,7 @@ "schema": { "properties": { "allow_external_modification": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "attempt_for_offline_device": { @@ -23523,7 +23523,7 @@ "type": "string" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "name": { @@ -23531,7 +23531,7 @@ "type": "string" }, "prefer_native_scheduling": { - "description": "Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", + "description": "Indicates whether [native scheduling](/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", "type": "boolean" }, "preferred_code_length": { @@ -23544,7 +23544,7 @@ "type": "string" }, "use_backup_access_code_pool": { - "description": "Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes#backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code).", + "description": "Indicates whether to use a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](/api/access_codes/pull_backup_access_code).", "type": "boolean" } }, @@ -23649,7 +23649,7 @@ ] }, "put": { - "description": "Creates new [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nUsers with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.\n\nIf you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a `common_code_key`. That is, `common_code_key` remains null for these access codes.\n\nIf you want to change these access codes that are not linked by a `common_code_key`, you cannot use `/access_codes/update_multiple`. However, you can update each of these access codes individually, using `/access_codes/update`.\n\nSee also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.", + "description": "Creates new [access codes](/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nUsers with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.\n\nIf you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a `common_code_key`. That is, `common_code_key` remains null for these access codes.\n\nIf you want to change these access codes that are not linked by a `common_code_key`, you cannot use `/access_codes/update_multiple`. However, you can update each of these access codes individually, using `/access_codes/update`.\n\nSee also [Creating and Updating Multiple Linked Access Codes](/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).\n\nFor granting a person access to a space, [Access Grants](/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.", "operationId": "accessCodesCreateMultiplePut", "requestBody": { "content": { @@ -23657,7 +23657,7 @@ "schema": { "properties": { "allow_external_modification": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "attempt_for_offline_device": { @@ -23693,7 +23693,7 @@ "type": "string" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "name": { @@ -23701,7 +23701,7 @@ "type": "string" }, "prefer_native_scheduling": { - "description": "Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", + "description": "Indicates whether [native scheduling](/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", "type": "boolean" }, "preferred_code_length": { @@ -23714,7 +23714,7 @@ "type": "string" }, "use_backup_access_code_pool": { - "description": "Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes#backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code).", + "description": "Indicates whether to use a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](/api/access_codes/pull_backup_access_code).", "type": "boolean" } }, @@ -23791,7 +23791,7 @@ }, "/access_codes/delete": { "delete": { - "description": "Deletes an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", + "description": "Deletes an [access code](/low-level-apis/smart-locks/access-codes).", "operationId": "accessCodesDeleteDelete", "parameters": [ { @@ -23885,7 +23885,7 @@ "x-title": "Delete an Access Code" }, "post": { - "description": "Deletes an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", + "description": "Deletes an [access code](/low-level-apis/smart-locks/access-codes).", "operationId": "accessCodesDeletePost", "requestBody": { "content": { @@ -24056,7 +24056,7 @@ }, "/access_codes/generate_code": { "get": { - "description": "Generates a code for an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes), given a device ID.", + "description": "Generates a code for an [access code](/low-level-apis/smart-locks/access-codes), given a device ID.", "operationId": "accessCodesGenerateCodeGet", "parameters": [ { @@ -24127,7 +24127,7 @@ "x-title": "Generate a Code" }, "post": { - "description": "Generates a code for an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes), given a device ID.", + "description": "Generates a code for an [access code](/low-level-apis/smart-locks/access-codes), given a device ID.", "operationId": "accessCodesGenerateCodePost", "requestBody": { "content": { @@ -24237,7 +24237,7 @@ }, "/access_codes/get": { "get": { - "description": "Returns a specified [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", + "description": "Returns a specified [access code](/low-level-apis/smart-locks/access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", "operationId": "accessCodesGetGet", "parameters": [ { @@ -24327,7 +24327,7 @@ "x-title": "Get an Access Code" }, "post": { - "description": "Returns a specified [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", + "description": "Returns a specified [access code](/low-level-apis/smart-locks/access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", "operationId": "accessCodesGetPost", "requestBody": { "content": { @@ -24446,7 +24446,7 @@ }, "/access_codes/list": { "get": { - "description": "Returns a list of all [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nSpecify `device_id`, `access_code_ids`, `access_method_id`, or `access_grant_id`.", + "description": "Returns a list of all [access codes](/low-level-apis/smart-locks/access-codes).\n\nSpecify `device_id`, `access_code_ids`, `access_method_id`, or `access_grant_id`.", "operationId": "accessCodesListGet", "parameters": [ { @@ -24600,7 +24600,7 @@ "x-title": "List Access Codes" }, "post": { - "description": "Returns a list of all [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nSpecify `device_id`, `access_code_ids`, `access_method_id`, or `access_grant_id`.", + "description": "Returns a list of all [access codes](/low-level-apis/smart-locks/access-codes).\n\nSpecify `device_id`, `access_code_ids`, `access_method_id`, or `access_grant_id`.", "operationId": "accessCodesListPost", "requestBody": { "content": { @@ -24759,7 +24759,7 @@ }, "/access_codes/pull_backup_access_code": { "post": { - "description": "Retrieves a backup access code for an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). See also [Managing Backup Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes).\n\nA backup access code pool is a collection of pre-programmed access codes stored on a device, ready for use. These codes are programmed in addition to the regular access codes on Seam, serving as a safety net for any issues with the primary codes. If there's ever a complication with a primary access code—be it due to intermittent connectivity, manual removal from a device, or provider outages—a backup code can be retrieved. Its end time can then be adjusted to align with the original code, facilitating seamless and uninterrupted access.\n\nYou can pull a backup access code from the pool at any time. These backup codes are guaranteed to work immediately and automatically programmed to be removed from the device after the access code ends.\n\nYou can only pull backup access codes for time-bound access codes.\n\nBefore pulling a backup access code, make sure that the device's `properties.supports_backup_access_code_pool` is `true`. Then, to activate the backup pool, set `use_backup_access_code_pool` to `true` when creating an access code.", + "description": "Retrieves a backup access code for an [access code](/low-level-apis/smart-locks/access-codes). See also [Managing Backup Access Codes](/low-level-apis/smart-locks/access-codes/backup-access-codes).\n\nA backup access code pool is a collection of pre-programmed access codes stored on a device, ready for use. These codes are programmed in addition to the regular access codes on Seam, serving as a safety net for any issues with the primary codes. If there's ever a complication with a primary access code—be it due to intermittent connectivity, manual removal from a device, or provider outages—a backup code can be retrieved. Its end time can then be adjusted to align with the original code, facilitating seamless and uninterrupted access.\n\nYou can pull a backup access code from the pool at any time. These backup codes are guaranteed to work immediately and automatically programmed to be removed from the device after the access code ends.\n\nYou can only pull backup access codes for time-bound access codes.\n\nBefore pulling a backup access code, make sure that the device's `properties.supports_backup_access_code_pool` is `true`. Then, to activate the backup pool, set `use_backup_access_code_pool` to `true` when creating an access code.", "operationId": "accessCodesPullBackupAccessCodePost", "requestBody": { "content": { @@ -25004,7 +25004,7 @@ }, "/access_codes/simulate/create_unmanaged_access_code": { "post": { - "description": "Simulates the creation of an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates the creation of an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", "operationId": "accessCodesSimulateCreateUnmanagedAccessCodePost", "requestBody": { "content": { @@ -25127,7 +25127,7 @@ }, "/access_codes/unmanaged/convert_to_managed": { "patch": { - "description": "Converts an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) to an [access code managed through Seam](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nAn unmanaged access code has a limited set of operations that you can perform on it. Once you convert an unmanaged access code to a managed access code, the full set of access code operations and lifecycle events becomes available for it.\n\nNote that not all device providers support converting an unmanaged access code to a managed access code.", + "description": "Converts an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) to an [access code managed through Seam](/low-level-apis/smart-locks/access-codes).\n\nAn unmanaged access code has a limited set of operations that you can perform on it. Once you convert an unmanaged access code to a managed access code, the full set of access code operations and lifecycle events becomes available for it.\n\nNote that not all device providers support converting an unmanaged access code to a managed access code.", "operationId": "accessCodesUnmanagedConvertToManagedPatch", "requestBody": { "content": { @@ -25140,7 +25140,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", "type": "boolean" }, "force": { @@ -25148,7 +25148,7 @@ "type": "boolean" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", "type": "boolean" }, "sync": { @@ -25222,7 +25222,7 @@ "x-title": "Convert an Unmanaged Access Code" }, "post": { - "description": "Converts an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) to an [access code managed through Seam](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nAn unmanaged access code has a limited set of operations that you can perform on it. Once you convert an unmanaged access code to a managed access code, the full set of access code operations and lifecycle events becomes available for it.\n\nNote that not all device providers support converting an unmanaged access code to a managed access code.", + "description": "Converts an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) to an [access code managed through Seam](/low-level-apis/smart-locks/access-codes).\n\nAn unmanaged access code has a limited set of operations that you can perform on it. Once you convert an unmanaged access code to a managed access code, the full set of access code operations and lifecycle events becomes available for it.\n\nNote that not all device providers support converting an unmanaged access code to a managed access code.", "operationId": "accessCodesUnmanagedConvertToManagedPost", "requestBody": { "content": { @@ -25235,7 +25235,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", "type": "boolean" }, "force": { @@ -25243,7 +25243,7 @@ "type": "boolean" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", "type": "boolean" }, "sync": { @@ -25349,7 +25349,7 @@ }, "/access_codes/unmanaged/delete": { "delete": { - "description": "Deletes an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Deletes an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "operationId": "accessCodesUnmanagedDeleteDelete", "parameters": [ { @@ -25434,7 +25434,7 @@ "x-title": "Delete an Unmanaged Access Code" }, "post": { - "description": "Deletes an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Deletes an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "operationId": "accessCodesUnmanagedDeletePost", "requestBody": { "content": { @@ -25600,7 +25600,7 @@ }, "/access_codes/unmanaged/get": { "get": { - "description": "Returns a specified [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", + "description": "Returns a specified [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", "operationId": "accessCodesUnmanagedGetGet", "parameters": [ { @@ -25691,7 +25691,7 @@ "x-title": "Get an Unmanaged Access Code" }, "post": { - "description": "Returns a specified [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", + "description": "Returns a specified [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", "operationId": "accessCodesUnmanagedGetPost", "requestBody": { "content": { @@ -25810,7 +25810,7 @@ }, "/access_codes/unmanaged/list": { "get": { - "description": "Returns a list of all [unmanaged access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Returns a list of all [unmanaged access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "operationId": "accessCodesUnmanagedListGet", "parameters": [ { @@ -25932,7 +25932,7 @@ "x-title": "List Unmanaged Access Codes" }, "post": { - "description": "Returns a list of all [unmanaged access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Returns a list of all [unmanaged access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "operationId": "accessCodesUnmanagedListPost", "requestBody": { "content": { @@ -26072,7 +26072,7 @@ }, "/access_codes/unmanaged/update": { "patch": { - "description": "Updates a specified [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Updates a specified [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "operationId": "accessCodesUnmanagedUpdatePatch", "requestBody": { "content": { @@ -26085,7 +26085,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", "type": "boolean" }, "force": { @@ -26093,7 +26093,7 @@ "type": "boolean" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", "type": "boolean" }, "is_managed": { @@ -26165,7 +26165,7 @@ "x-title": "Update an Unmanaged Access Code" }, "post": { - "description": "Updates a specified [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Updates a specified [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "operationId": "accessCodesUnmanagedUpdatePost", "requestBody": { "content": { @@ -26178,7 +26178,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", "type": "boolean" }, "force": { @@ -26186,7 +26186,7 @@ "type": "boolean" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", "type": "boolean" }, "is_managed": { @@ -26290,7 +26290,7 @@ }, "/access_codes/update": { "patch": { - "description": "Updates a specified active or upcoming [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nSee also [Modifying Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes).", + "description": "Updates a specified active or upcoming [access code](/low-level-apis/smart-locks/access-codes).\n\nSee also [Modifying Access Codes](/low-level-apis/smart-locks/access-codes/modifying-access-codes).", "operationId": "accessCodesUpdatePatch", "requestBody": { "content": { @@ -26303,7 +26303,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "attempt_for_offline_device": { @@ -26327,7 +26327,7 @@ "type": "string" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "is_managed": { @@ -26335,15 +26335,15 @@ "type": "boolean" }, "is_offline_access_code": { - "description": "Indicates whether the access code is an [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes).", + "description": "Indicates whether the access code is an [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", + "description": "Indicates whether the [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", "type": "boolean" }, "max_time_rounding": { - "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", + "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", "enum": [ "1hour", "1day", @@ -26357,7 +26357,7 @@ "type": "string" }, "prefer_native_scheduling": { - "description": "Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", + "description": "Indicates whether [native scheduling](/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", "type": "boolean" }, "preferred_code_length": { @@ -26375,7 +26375,7 @@ "x-undocumented": "Only used internally." }, "type": { - "description": "Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).", + "description": "Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).", "enum": [ "ongoing", "time_bound" @@ -26383,7 +26383,7 @@ "type": "string" }, "use_backup_access_code_pool": { - "description": "Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes#backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code).", + "description": "Indicates whether to use a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](/api/access_codes/pull_backup_access_code).", "type": "boolean" }, "use_offline_access_code": { @@ -26460,7 +26460,7 @@ "x-title": "Update an Access Code" }, "post": { - "description": "Updates a specified active or upcoming [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nSee also [Modifying Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes).", + "description": "Updates a specified active or upcoming [access code](/low-level-apis/smart-locks/access-codes).\n\nSee also [Modifying Access Codes](/low-level-apis/smart-locks/access-codes/modifying-access-codes).", "operationId": "accessCodesUpdatePost", "requestBody": { "content": { @@ -26473,7 +26473,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "attempt_for_offline_device": { @@ -26497,7 +26497,7 @@ "type": "string" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "is_managed": { @@ -26505,15 +26505,15 @@ "type": "boolean" }, "is_offline_access_code": { - "description": "Indicates whether the access code is an [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes).", + "description": "Indicates whether the access code is an [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", + "description": "Indicates whether the [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", "type": "boolean" }, "max_time_rounding": { - "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", + "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", "enum": [ "1hour", "1day", @@ -26527,7 +26527,7 @@ "type": "string" }, "prefer_native_scheduling": { - "description": "Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", + "description": "Indicates whether [native scheduling](/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", "type": "boolean" }, "preferred_code_length": { @@ -26545,7 +26545,7 @@ "x-undocumented": "Only used internally." }, "type": { - "description": "Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).", + "description": "Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).", "enum": [ "ongoing", "time_bound" @@ -26553,7 +26553,7 @@ "type": "string" }, "use_backup_access_code_pool": { - "description": "Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes#backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code).", + "description": "Indicates whether to use a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](/api/access_codes/pull_backup_access_code).", "type": "boolean" }, "use_offline_access_code": { @@ -26708,7 +26708,7 @@ ] }, "put": { - "description": "Updates a specified active or upcoming [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nSee also [Modifying Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes).", + "description": "Updates a specified active or upcoming [access code](/low-level-apis/smart-locks/access-codes).\n\nSee also [Modifying Access Codes](/low-level-apis/smart-locks/access-codes/modifying-access-codes).", "operationId": "accessCodesUpdatePut", "requestBody": { "content": { @@ -26721,7 +26721,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "attempt_for_offline_device": { @@ -26745,7 +26745,7 @@ "type": "string" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "is_managed": { @@ -26753,15 +26753,15 @@ "type": "boolean" }, "is_offline_access_code": { - "description": "Indicates whether the access code is an [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes).", + "description": "Indicates whether the access code is an [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", + "description": "Indicates whether the [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", "type": "boolean" }, "max_time_rounding": { - "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", + "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", "enum": [ "1hour", "1day", @@ -26775,7 +26775,7 @@ "type": "string" }, "prefer_native_scheduling": { - "description": "Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", + "description": "Indicates whether [native scheduling](/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", "type": "boolean" }, "preferred_code_length": { @@ -26793,7 +26793,7 @@ "x-undocumented": "Only used internally." }, "type": { - "description": "Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).", + "description": "Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).", "enum": [ "ongoing", "time_bound" @@ -26801,7 +26801,7 @@ "type": "string" }, "use_backup_access_code_pool": { - "description": "Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes#backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code).", + "description": "Indicates whether to use a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](/api/access_codes/pull_backup_access_code).", "type": "boolean" }, "use_offline_access_code": { @@ -26880,7 +26880,7 @@ }, "/access_codes/update_multiple": { "patch": { - "description": "Updates [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nSpecify the `common_code_key` to identify the set of access codes that you want to update.\n\nSee also [Update Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes#update-linked-access-codes).", + "description": "Updates [access codes](/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nSpecify the `common_code_key` to identify the set of access codes that you want to update.\n\nSee also [Update Linked Access Codes](/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes#update-linked-access-codes).", "operationId": "accessCodesUpdateMultiplePatch", "requestBody": { "content": { @@ -26967,7 +26967,7 @@ "x-title": "Update Multiple Linked Access Codes" }, "post": { - "description": "Updates [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nSpecify the `common_code_key` to identify the set of access codes that you want to update.\n\nSee also [Update Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes#update-linked-access-codes).", + "description": "Updates [access codes](/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nSpecify the `common_code_key` to identify the set of access codes that you want to update.\n\nSee also [Update Linked Access Codes](/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes#update-linked-access-codes).", "operationId": "accessCodesUpdateMultiplePost", "requestBody": { "content": { @@ -27087,7 +27087,7 @@ }, "/access_grants/create": { "post": { - "description": "Creates a new [Access Grant](https://docs.seam.co/use-cases/granting-access). Access Grants are the default and recommended way to grant a user access to any physical space, irrespective of the locking hardware. They work with both standalone smart locks (using `device_ids`) and access control systems (using `acs_entrance_ids` or `space_ids`), and can issue PIN codes, key cards, and mobile keys through a single request.", + "description": "Creates a new [Access Grant](/use-cases/granting-access). Access Grants are the default and recommended way to grant a user access to any physical space, irrespective of the locking hardware. They work with both standalone smart locks (using `device_ids`) and access control systems (using `acs_entrance_ids` or `space_ids`), and can issue PIN codes, key cards, and mobile keys through a single request.", "operationId": "accessGrantsCreatePost", "requestBody": { "content": { @@ -27157,7 +27157,7 @@ }, "acs_entrance_ids": { "default": [], - "description": "Set of IDs of the [entrances](https://docs.seam.co/api/acs/systems/list) to which access is being granted.", + "description": "Set of IDs of the [entrances](/api/acs/systems/list) to which access is being granted.", "items": { "format": "uuid", "type": "string" @@ -27171,7 +27171,7 @@ }, "device_ids": { "default": [], - "description": "Set of IDs of the [devices](https://docs.seam.co/api/devices/list) to which access is being granted.", + "description": "Set of IDs of the [devices](/api/devices/list) to which access is being granted.", "items": { "format": "uuid", "type": "string" @@ -28603,7 +28603,7 @@ "type": "string" }, "errors": { - "description": "Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Errors associated with the [access grant](/use-cases/granting-access).", "items": { "discriminator": { "propertyName": "error_code" @@ -28901,15 +28901,15 @@ "type": "string" }, "warnings": { - "description": "Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Warnings associated with the [access grant](/use-cases/granting-access).", "items": { - "description": "Warning associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Warning associated with the [access grant](/use-cases/granting-access).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access grant](https://docs.seam.co/use-cases/granting-access) is being deleted.", + "description": "Indicates that the [access grant](/use-cases/granting-access) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -29017,7 +29017,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access grant](https://docs.seam.co/use-cases/granting-access) are being updated.", + "description": "Indicates that the access times for this [access grant](/use-cases/granting-access) are being updated.", "properties": { "access_method_ids": { "description": "IDs of the access methods being updated.", @@ -29307,7 +29307,7 @@ "type": "string" }, "errors": { - "description": "Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Errors associated with the [access grant](/use-cases/granting-access).", "items": { "discriminator": { "propertyName": "error_code" @@ -29605,15 +29605,15 @@ "type": "string" }, "warnings": { - "description": "Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Warnings associated with the [access grant](/use-cases/granting-access).", "items": { - "description": "Warning associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Warning associated with the [access grant](/use-cases/granting-access).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access grant](https://docs.seam.co/use-cases/granting-access) is being deleted.", + "description": "Indicates that the [access grant](/use-cases/granting-access) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -29721,7 +29721,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access grant](https://docs.seam.co/use-cases/granting-access) are being updated.", + "description": "Indicates that the access times for this [access grant](/use-cases/granting-access) are being updated.", "properties": { "access_method_ids": { "description": "IDs of the access methods being updated.", @@ -30048,7 +30048,7 @@ "type": "string" }, "errors": { - "description": "Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Errors associated with the [access grant](/use-cases/granting-access).", "items": { "discriminator": { "propertyName": "error_code" @@ -30346,15 +30346,15 @@ "type": "string" }, "warnings": { - "description": "Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Warnings associated with the [access grant](/use-cases/granting-access).", "items": { - "description": "Warning associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Warning associated with the [access grant](/use-cases/granting-access).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access grant](https://docs.seam.co/use-cases/granting-access) is being deleted.", + "description": "Indicates that the [access grant](/use-cases/granting-access) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -30462,7 +30462,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access grant](https://docs.seam.co/use-cases/granting-access) are being updated.", + "description": "Indicates that the access times for this [access grant](/use-cases/granting-access) are being updated.", "properties": { "access_method_ids": { "description": "IDs of the access methods being updated.", @@ -30781,7 +30781,7 @@ "type": "string" }, "errors": { - "description": "Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Errors associated with the [access grant](/use-cases/granting-access).", "items": { "discriminator": { "propertyName": "error_code" @@ -31079,15 +31079,15 @@ "type": "string" }, "warnings": { - "description": "Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Warnings associated with the [access grant](/use-cases/granting-access).", "items": { - "description": "Warning associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", + "description": "Warning associated with the [access grant](/use-cases/granting-access).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access grant](https://docs.seam.co/use-cases/granting-access) is being deleted.", + "description": "Indicates that the [access grant](/use-cases/granting-access) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -31195,7 +31195,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access grant](https://docs.seam.co/use-cases/granting-access) are being updated.", + "description": "Indicates that the access times for this [access grant](/use-cases/granting-access) are being updated.", "properties": { "access_method_ids": { "description": "IDs of the access methods being updated.", @@ -32121,7 +32121,7 @@ }, "/access_methods/encode": { "post": { - "description": "Encodes an existing access method onto a plastic card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Encodes an existing access method onto a plastic card placed on the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "operationId": "accessMethodsEncodePost", "requestBody": { "content": { @@ -33007,7 +33007,7 @@ }, "/access_methods/unlock_door": { "post": { - "description": "Remotely unlocks a specified [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) using the cloud key credential associated with an access method. Returns an action attempt that tracks the progress of the unlock operation.", + "description": "Remotely unlocks a specified [entrance](/low-level-apis/access-systems/retrieving-entrance-details) using the cloud key credential associated with an access method. Returns an action attempt that tracks the progress of the unlock operation.", "operationId": "accessMethodsUnlockDoorPost", "requestBody": { "content": { @@ -33213,7 +33213,7 @@ "type": "string" }, "pending_mutations": { - "description": "Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", + "description": "Pending mutations for the [access method](/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -33423,15 +33423,15 @@ "type": "array" }, "warnings": { - "description": "Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", + "description": "Warnings associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", "items": { - "description": "Warning associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", + "description": "Warning associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted.", + "description": "Indicates that the [access method](/use-cases/granting-access/creating-an-access-grant) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -33458,7 +33458,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated.", + "description": "Indicates that the access times for this [access method](/use-cases/granting-access/creating-an-access-grant) are being updated.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -33671,7 +33671,7 @@ "type": "string" }, "pending_mutations": { - "description": "Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", + "description": "Pending mutations for the [access method](/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -33881,15 +33881,15 @@ "type": "array" }, "warnings": { - "description": "Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", + "description": "Warnings associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", "items": { - "description": "Warning associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", + "description": "Warning associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted.", + "description": "Indicates that the [access method](/use-cases/granting-access/creating-an-access-grant) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -33916,7 +33916,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated.", + "description": "Indicates that the access times for this [access method](/use-cases/granting-access/creating-an-access-grant) are being updated.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -34152,7 +34152,7 @@ "type": "string" }, "pending_mutations": { - "description": "Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", + "description": "Pending mutations for the [access method](/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -34362,15 +34362,15 @@ "type": "array" }, "warnings": { - "description": "Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", + "description": "Warnings associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", "items": { - "description": "Warning associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", + "description": "Warning associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted.", + "description": "Indicates that the [access method](/use-cases/granting-access/creating-an-access-grant) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -34397,7 +34397,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated.", + "description": "Indicates that the access times for this [access method](/use-cases/granting-access/creating-an-access-grant) are being updated.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -34631,7 +34631,7 @@ "type": "string" }, "pending_mutations": { - "description": "Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", + "description": "Pending mutations for the [access method](/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -34841,15 +34841,15 @@ "type": "array" }, "warnings": { - "description": "Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", + "description": "Warnings associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", "items": { - "description": "Warning associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", + "description": "Warning associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted.", + "description": "Indicates that the [access method](/use-cases/granting-access/creating-an-access-grant) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -34876,7 +34876,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated.", + "description": "Indicates that the access times for this [access method](/use-cases/granting-access/creating-an-access-grant) are being updated.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -35007,7 +35007,7 @@ }, "/acs/access_groups/add_user": { "post": { - "description": "Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Adds a specified [access system user](/low-level-apis/access-systems/user-management) to a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsAddUserPost", "requestBody": { "content": { @@ -35118,7 +35118,7 @@ ] }, "put": { - "description": "Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Adds a specified [access system user](/low-level-apis/access-systems/user-management) to a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsAddUserPut", "requestBody": { "content": { @@ -35201,7 +35201,7 @@ }, "/acs/access_groups/delete": { "delete": { - "description": "Deletes a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Deletes a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsDeleteDelete", "parameters": [ { @@ -35268,7 +35268,7 @@ "x-title": "Delete an Access Group" }, "post": { - "description": "Deletes a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Deletes a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsDeletePost", "requestBody": { "content": { @@ -35342,7 +35342,7 @@ }, "/acs/access_groups/get": { "get": { - "description": "Returns a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsGetGet", "parameters": [ { @@ -35411,7 +35411,7 @@ "x-title": "Get an Access Group" }, "post": { - "description": "Returns a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsGetPost", "requestBody": { "content": { @@ -35518,7 +35518,7 @@ }, "/acs/access_groups/list": { "get": { - "description": "Returns a list of all [access groups](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a list of all [access groups](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsListGet", "parameters": [ { @@ -35616,7 +35616,7 @@ "x-title": "List Access Groups" }, "post": { - "description": "Returns a list of all [access groups](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a list of all [access groups](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsListPost", "requestBody": { "content": { @@ -35738,7 +35738,7 @@ }, "/acs/access_groups/list_accessible_entrances": { "get": { - "description": "Returns a list of all accessible entrances for a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a list of all accessible entrances for a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsListAccessibleEntrancesGet", "parameters": [ { @@ -35810,7 +35810,7 @@ "x-title": "List Entrances Accessible to an Access Group" }, "post": { - "description": "Returns a list of all accessible entrances for a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a list of all accessible entrances for a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsListAccessibleEntrancesPost", "requestBody": { "content": { @@ -35920,7 +35920,7 @@ }, "/acs/access_groups/list_users": { "get": { - "description": "Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a list of all [access system users](/low-level-apis/access-systems/user-management) in an [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsListUsersGet", "parameters": [ { @@ -35992,7 +35992,7 @@ "x-title": "List ACS Users in an Access Group" }, "post": { - "description": "Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a list of all [access system users](/low-level-apis/access-systems/user-management) in an [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsListUsersPost", "requestBody": { "content": { @@ -36102,7 +36102,7 @@ }, "/acs/access_groups/remove_user": { "delete": { - "description": "Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Removes a specified [access system user](/low-level-apis/access-systems/user-management) from a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsRemoveUserDelete", "parameters": [ { @@ -36186,7 +36186,7 @@ "x-title": "Remove an ACS User from an Access Group" }, "post": { - "description": "Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Removes a specified [access system user](/low-level-apis/access-systems/user-management) from a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsRemoveUserPost", "requestBody": { "content": { @@ -36299,7 +36299,7 @@ }, "/acs/credentials/assign": { "patch": { - "description": "Assigns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) to a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Assigns a specified [credential](/low-level-apis/access-systems/managing-credentials) to a specified [access system user](/low-level-apis/access-systems/user-management).", "operationId": "acsCredentialsAssignPatch", "requestBody": { "content": { @@ -36384,7 +36384,7 @@ "x-title": "Assign a Credential to an ACS User" }, "post": { - "description": "Assigns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) to a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Assigns a specified [credential](/low-level-apis/access-systems/managing-credentials) to a specified [access system user](/low-level-apis/access-systems/user-management).", "operationId": "acsCredentialsAssignPost", "requestBody": { "content": { @@ -36501,7 +36501,7 @@ }, "/acs/credentials/create": { "post": { - "description": "Creates a new [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) for a specified [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management). For granting access, we recommend [Access Grants](https://docs.seam.co/use-cases/granting-access) instead: they create and manage the underlying credentials for you, across access systems and standalone smart locks alike. Use this low-level endpoint only when you need direct control over an individual ACS credential.", + "description": "Creates a new [credential](/low-level-apis/access-systems/managing-credentials) for a specified [ACS user](/low-level-apis/access-systems/user-management). For granting access, we recommend [Access Grants](/use-cases/granting-access) instead: they create and manage the underlying credentials for you, across access systems and standalone smart locks alike. Use this low-level endpoint only when you need direct control over an individual ACS credential.", "operationId": "acsCredentialsCreatePost", "requestBody": { "content": { @@ -36530,7 +36530,7 @@ }, "allowed_acs_entrance_ids": { "default": [], - "description": "Set of IDs of the [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) for which the new credential grants access.", + "description": "Set of IDs of the [entrances](/low-level-apis/access-systems/retrieving-entrance-details) for which the new credential grants access.", "items": { "format": "uuid", "type": "string" @@ -36560,7 +36560,7 @@ "type": "object" }, "code": { - "description": "Access (PIN) code for the new credential. There may be manufacturer-specific code restrictions. For details, see the applicable [device or system integration guide](https://docs.seam.co/device-and-system-integration-guides).", + "description": "Access (PIN) code for the new credential. There may be manufacturer-specific code restrictions. For details, see the applicable [device or system integration guide](/device-and-system-integration-guides).", "pattern": "^\\d+$", "type": "string" }, @@ -36588,18 +36588,18 @@ }, "is_multi_phone_sync_credential": { "default": false, - "description": "Indicates whether the new credential is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", + "description": "Indicates whether the new credential is a [multi-phone sync credential](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", "type": "boolean" }, "salto_space_metadata": { "description": "Salto Space-specific metadata for the new credential.", "properties": { "assign_new_key": { - "description": "Indicates whether to assign a first, new card to a user. See also [Programming Salto Space Card-based Credentials](https://docs.seam.co/device-and-system-integration-guides/salto-proaccess-space-access-system/programming-salto-space-card-based-credentials).", + "description": "Indicates whether to assign a first, new card to a user. See also [Programming Salto Space Card-based Credentials](/device-and-system-integration-guides/salto-proaccess-space-access-system/programming-salto-space-card-based-credentials).", "type": "boolean" }, "update_current_key": { - "description": "Indicates whether to update the user's existing card. See also [Programming Salto Space Card-based Credentials](https://docs.seam.co/device-and-system-integration-guides/salto-proaccess-space-access-system/programming-salto-space-card-based-credentials).", + "description": "Indicates whether to update the user's existing card. See also [Programming Salto Space Card-based Credentials](/device-and-system-integration-guides/salto-proaccess-space-access-system/programming-salto-space-card-based-credentials).", "type": "boolean", "x-undocumented": "Not used. Will be deprecated." } @@ -36758,7 +36758,7 @@ }, "/acs/credentials/delete": { "delete": { - "description": "Deletes a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Deletes a specified [credential](/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsDeleteDelete", "parameters": [ { @@ -36822,7 +36822,7 @@ "x-title": "Delete a Credential" }, "post": { - "description": "Deletes a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Deletes a specified [credential](/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsDeletePost", "requestBody": { "content": { @@ -36925,7 +36925,7 @@ }, "/acs/credentials/get": { "get": { - "description": "Returns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Returns a specified [credential](/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsGetGet", "parameters": [ { @@ -36994,7 +36994,7 @@ "x-title": "Get a Credential" }, "post": { - "description": "Returns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Returns a specified [credential](/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsGetPost", "requestBody": { "content": { @@ -37101,7 +37101,7 @@ }, "/acs/credentials/list": { "get": { - "description": "Returns a list of all [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Returns a list of all [credentials](/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsListGet", "responses": { "200": { @@ -37168,7 +37168,7 @@ "x-title": "List Credentials" }, "post": { - "description": "Returns a list of all [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Returns a list of all [credentials](/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsListPost", "requestBody": { "content": { @@ -37372,7 +37372,7 @@ }, "/acs/credentials/list_accessible_entrances": { "get": { - "description": "Returns a list of all [entrances](https://docs.seam.co/api/acs/entrances/object) to which a [credential](https://docs.seam.co/api/acs/credentials/object) grants access.", + "description": "Returns a list of all [entrances](/api/acs/entrances/object) to which a [credential](/api/acs/credentials/object) grants access.", "operationId": "acsCredentialsListAccessibleEntrancesGet", "parameters": [ { @@ -37444,7 +37444,7 @@ "x-title": "List Accessible Entrances" }, "post": { - "description": "Returns a list of all [entrances](https://docs.seam.co/api/acs/entrances/object) to which a [credential](https://docs.seam.co/api/acs/credentials/object) grants access.", + "description": "Returns a list of all [entrances](/api/acs/entrances/object) to which a [credential](/api/acs/credentials/object) grants access.", "operationId": "acsCredentialsListAccessibleEntrancesPost", "requestBody": { "content": { @@ -37554,7 +37554,7 @@ }, "/acs/credentials/unassign": { "patch": { - "description": "Unassigns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) from a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Unassigns a specified [credential](/low-level-apis/access-systems/managing-credentials) from a specified [access system user](/low-level-apis/access-systems/user-management).", "operationId": "acsCredentialsUnassignPatch", "requestBody": { "content": { @@ -37639,7 +37639,7 @@ "x-title": "Unassign a Credential from an ACS User" }, "post": { - "description": "Unassigns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) from a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Unassigns a specified [credential](/low-level-apis/access-systems/managing-credentials) from a specified [access system user](/low-level-apis/access-systems/user-management).", "operationId": "acsCredentialsUnassignPost", "requestBody": { "content": { @@ -37756,7 +37756,7 @@ }, "/acs/credentials/update": { "patch": { - "description": "Updates the code and ends at date and time for a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Updates the code and ends at date and time for a specified [credential](/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsUpdatePatch", "requestBody": { "content": { @@ -37840,7 +37840,7 @@ "x-title": "Update a Credential" }, "post": { - "description": "Updates the code and ends at date and time for a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Updates the code and ends at date and time for a specified [credential](/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsUpdatePost", "requestBody": { "content": { @@ -37956,7 +37956,7 @@ }, "/acs/encoders/encode_credential": { "post": { - "description": "Encodes an existing [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) onto a plastic card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). Either provide an `acs_credential_id` or an `access_method_id`", + "description": "Encodes an existing [credential](/low-level-apis/access-systems/managing-credentials) onto a plastic card placed on the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). Either provide an `acs_credential_id` or an `access_method_id`", "operationId": "acsEncodersEncodeCredentialPost", "requestBody": { "content": { @@ -38124,7 +38124,7 @@ }, "/acs/encoders/get": { "get": { - "description": "Returns a specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Returns a specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "operationId": "acsEncodersGetGet", "parameters": [ { @@ -38193,7 +38193,7 @@ "x-title": "Get an Encoder" }, "post": { - "description": "Returns a specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Returns a specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "operationId": "acsEncodersGetPost", "requestBody": { "content": { @@ -38300,7 +38300,7 @@ }, "/acs/encoders/list": { "get": { - "description": "Returns a list of all [encoders](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Returns a list of all [encoders](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "operationId": "acsEncodersListGet", "responses": { "200": { @@ -38367,7 +38367,7 @@ "x-title": "List Encoders" }, "post": { - "description": "Returns a list of all [encoders](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Returns a list of all [encoders](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "operationId": "acsEncodersListPost", "requestBody": { "content": { @@ -38540,7 +38540,7 @@ }, "/acs/encoders/scan_credential": { "post": { - "description": "Scans an encoded [acs_credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) from a plastic card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Scans an encoded [acs_credential](/low-level-apis/access-systems/managing-credentials) from a plastic card placed on the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "operationId": "acsEncodersScanCredentialPost", "requestBody": { "content": { @@ -38706,7 +38706,7 @@ }, "/acs/encoders/scan_to_assign_credential": { "post": { - "description": "Scans a physical card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) and assigns the scanned credential to an ACS user. Provide either an `acs_user_id` or a `user_identity_id`.", + "description": "Scans a physical card placed on the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) and assigns the scanned credential to an ACS user. Provide either an `acs_user_id` or a `user_identity_id`.", "operationId": "acsEncodersScanToAssignCredentialPost", "requestBody": { "content": { @@ -38853,7 +38853,7 @@ }, "/acs/encoders/simulate/next_credential_encode_will_fail": { "post": { - "description": "Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", "operationId": "acsEncodersSimulateNextCredentialEncodeWillFailPost", "requestBody": { "content": { @@ -38998,7 +38998,7 @@ }, "/acs/encoders/simulate/next_credential_encode_will_succeed": { "post": { - "description": "Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", "operationId": "acsEncodersSimulateNextCredentialEncodeWillSucceedPost", "requestBody": { "content": { @@ -39113,7 +39113,7 @@ }, "/acs/encoders/simulate/next_credential_scan_will_fail": { "post": { - "description": "Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", "operationId": "acsEncodersSimulateNextCredentialScanWillFailPost", "requestBody": { "content": { @@ -39254,7 +39254,7 @@ }, "/acs/encoders/simulate/next_credential_scan_will_succeed": { "post": { - "description": "Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", "operationId": "acsEncodersSimulateNextCredentialScanWillSucceedPost", "requestBody": { "content": { @@ -39420,7 +39420,7 @@ }, "/acs/entrances/get": { "get": { - "description": "Returns a specified [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Returns a specified [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesGetGet", "parameters": [ { @@ -39495,7 +39495,7 @@ "x-title": "Get an Entrance" }, "post": { - "description": "Returns a specified [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Returns a specified [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesGetPost", "requestBody": { "content": { @@ -39608,7 +39608,7 @@ }, "/acs/entrances/grant_access": { "post": { - "description": "Grants a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) access to a specified [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Grants a specified [access system user](/low-level-apis/access-systems/user-management) access to a specified [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesGrantAccessPost", "requestBody": { "content": { @@ -39721,7 +39721,7 @@ }, "/acs/entrances/list": { "get": { - "description": "Returns a list of all [access system entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Returns a list of all [access system entrances](/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesListGet", "parameters": [ { @@ -39889,7 +39889,7 @@ "x-title": "List Entrances" }, "post": { - "description": "Returns a list of all [access system entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Returns a list of all [access system entrances](/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesListPost", "requestBody": { "content": { @@ -40057,7 +40057,7 @@ }, "/acs/entrances/list_credentials_with_access": { "get": { - "description": "Returns a list of all [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) with access to a specified [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Returns a list of all [credentials](/low-level-apis/access-systems/managing-credentials) with access to a specified [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesListCredentialsWithAccessGet", "parameters": [ { @@ -40147,7 +40147,7 @@ "x-title": "List Credentials with Access to an Entrance" }, "post": { - "description": "Returns a list of all [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) with access to a specified [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Returns a list of all [credentials](/low-level-apis/access-systems/managing-credentials) with access to a specified [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesListCredentialsWithAccessPost", "requestBody": { "content": { @@ -40270,7 +40270,7 @@ }, "/acs/entrances/unlock": { "post": { - "description": "Remotely unlocks a specified [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) using a cloud_key credential. Returns an action attempt that tracks the progress of the unlock operation.", + "description": "Remotely unlocks a specified [entrance](/low-level-apis/access-systems/retrieving-entrance-details) using a cloud_key credential. Returns an action attempt that tracks the progress of the unlock operation.", "operationId": "acsEntrancesUnlockPost", "requestBody": { "content": { @@ -40399,7 +40399,7 @@ }, "/acs/systems/get": { "get": { - "description": "Returns a specified [access system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Returns a specified [access system](/low-level-apis/access-systems).", "operationId": "acsSystemsGetGet", "parameters": [ { @@ -40468,7 +40468,7 @@ "x-title": "Get an ACS System" }, "post": { - "description": "Returns a specified [access system](https://docs.seam.co/low-level-apis/access-systems).", + "description": "Returns a specified [access system](/low-level-apis/access-systems).", "operationId": "acsSystemsGetPost", "requestBody": { "content": { @@ -40575,7 +40575,7 @@ }, "/acs/systems/list": { "get": { - "description": "Returns a list of all [access systems](https://docs.seam.co/low-level-apis/access-systems).\n\nTo filter the list of returned access systems by a specific connected account ID, include the `connected_account_id` in the request body. If you omit the `connected_account_id` parameter, the response includes all access systems connected to your workspace.", + "description": "Returns a list of all [access systems](/low-level-apis/access-systems).\n\nTo filter the list of returned access systems by a specific connected account ID, include the `connected_account_id` in the request body. If you omit the `connected_account_id` parameter, the response includes all access systems connected to your workspace.", "operationId": "acsSystemsListGet", "parameters": [ { @@ -40669,7 +40669,7 @@ "x-title": "List ACS Systems" }, "post": { - "description": "Returns a list of all [access systems](https://docs.seam.co/low-level-apis/access-systems).\n\nTo filter the list of returned access systems by a specific connected account ID, include the `connected_account_id` in the request body. If you omit the `connected_account_id` parameter, the response includes all access systems connected to your workspace.", + "description": "Returns a list of all [access systems](/low-level-apis/access-systems).\n\nTo filter the list of returned access systems by a specific connected account ID, include the `connected_account_id` in the request body. If you omit the `connected_account_id` parameter, the response includes all access systems connected to your workspace.", "operationId": "acsSystemsListPost", "requestBody": { "content": { @@ -40791,7 +40791,7 @@ }, "/acs/systems/list_compatible_credential_manager_acs_systems": { "get": { - "description": "Returns a list of all credential manager systems that are compatible with a specified [access system](https://docs.seam.co/low-level-apis/access-systems).\n\nSpecify the access system for which you want to retrieve all compatible credential manager systems by including the corresponding `acs_system_id` in the request body.", + "description": "Returns a list of all credential manager systems that are compatible with a specified [access system](/low-level-apis/access-systems).\n\nSpecify the access system for which you want to retrieve all compatible credential manager systems by including the corresponding `acs_system_id` in the request body.", "operationId": "acsSystemsListCompatibleCredentialManagerAcsSystemsGet", "parameters": [ { @@ -40863,7 +40863,7 @@ "x-title": "List Compatible Credential Manager ACS Systems" }, "post": { - "description": "Returns a list of all credential manager systems that are compatible with a specified [access system](https://docs.seam.co/low-level-apis/access-systems).\n\nSpecify the access system for which you want to retrieve all compatible credential manager systems by including the corresponding `acs_system_id` in the request body.", + "description": "Returns a list of all credential manager systems that are compatible with a specified [access system](/low-level-apis/access-systems).\n\nSpecify the access system for which you want to retrieve all compatible credential manager systems by including the corresponding `acs_system_id` in the request body.", "operationId": "acsSystemsListCompatibleCredentialManagerAcsSystemsPost", "requestBody": { "content": { @@ -41143,7 +41143,7 @@ }, "/acs/users/add_to_access_group": { "post": { - "description": "Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Adds a specified [access system user](/low-level-apis/access-systems/user-management) to a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsUsersAddToAccessGroupPost", "requestBody": { "content": { @@ -41250,7 +41250,7 @@ ] }, "put": { - "description": "Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Adds a specified [access system user](/low-level-apis/access-systems/user-management) to a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsUsersAddToAccessGroupPut", "requestBody": { "content": { @@ -41329,7 +41329,7 @@ }, "/acs/users/create": { "post": { - "description": "Creates a new [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Creates a new [access system user](/low-level-apis/access-systems/user-management).", "operationId": "acsUsersCreatePost", "requestBody": { "content": { @@ -41374,7 +41374,7 @@ "x-deprecated": "use email_address." }, "email_address": { - "description": "Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Email address of the [access system user](/low-level-apis/access-systems/user-management).", "format": "email", "type": "string" }, @@ -41383,7 +41383,7 @@ "type": "string" }, "phone_number": { - "description": "Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "type": "string" }, "user_identity_id": { @@ -41487,7 +41487,7 @@ }, "/acs/users/delete": { "delete": { - "description": "Deletes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) and invalidates the access system user's [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Deletes a specified [access system user](/low-level-apis/access-systems/user-management) and invalidates the access system user's [credentials](/low-level-apis/access-systems/managing-credentials).", "operationId": "acsUsersDeleteDelete", "parameters": [ { @@ -41568,7 +41568,7 @@ "x-title": "Delete an ACS User" }, "post": { - "description": "Deletes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) and invalidates the access system user's [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", + "description": "Deletes a specified [access system user](/low-level-apis/access-systems/user-management) and invalidates the access system user's [credentials](/low-level-apis/access-systems/managing-credentials).", "operationId": "acsUsersDeletePost", "requestBody": { "content": { @@ -41678,7 +41678,7 @@ }, "/acs/users/get": { "get": { - "description": "Returns a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Returns a specified [access system user](/low-level-apis/access-systems/user-management).", "operationId": "acsUsersGetGet", "parameters": [ { @@ -41764,7 +41764,7 @@ "x-title": "Get an ACS User" }, "post": { - "description": "Returns a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Returns a specified [access system user](/low-level-apis/access-systems/user-management).", "operationId": "acsUsersGetPost", "requestBody": { "content": { @@ -41878,7 +41878,7 @@ }, "/acs/users/list": { "get": { - "description": "Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Returns a list of all [access system users](/low-level-apis/access-systems/user-management).", "operationId": "acsUsersListGet", "parameters": [ { @@ -42019,7 +42019,7 @@ "x-title": "List ACS Users" }, "post": { - "description": "Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Returns a list of all [access system users](/low-level-apis/access-systems/user-management).", "operationId": "acsUsersListPost", "requestBody": { "content": { @@ -42168,7 +42168,7 @@ }, "/acs/users/list_accessible_entrances": { "get": { - "description": "Lists the [entrances](https://docs.seam.co/api/acs/entrances/object) to which a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) has access.", + "description": "Lists the [entrances](/api/acs/entrances/object) to which a specified [access system user](/low-level-apis/access-systems/user-management) has access.", "operationId": "acsUsersListAccessibleEntrancesGet", "parameters": [ { @@ -42260,7 +42260,7 @@ "x-title": "List ACS User-Accessible Entrances" }, "post": { - "description": "Lists the [entrances](https://docs.seam.co/api/acs/entrances/object) to which a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) has access.", + "description": "Lists the [entrances](/api/acs/entrances/object) to which a specified [access system user](/low-level-apis/access-systems/user-management) has access.", "operationId": "acsUsersListAccessibleEntrancesPost", "requestBody": { "content": { @@ -42380,7 +42380,7 @@ }, "/acs/users/remove_from_access_group": { "delete": { - "description": "Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Removes a specified [access system user](/low-level-apis/access-systems/user-management) from a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsUsersRemoveFromAccessGroupDelete", "parameters": [ { @@ -42464,7 +42464,7 @@ "x-title": "Remove an ACS User from an Access Group" }, "post": { - "description": "Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Removes a specified [access system user](/low-level-apis/access-systems/user-management) from a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsUsersRemoveFromAccessGroupPost", "requestBody": { "content": { @@ -42577,7 +42577,7 @@ }, "/acs/users/revoke_access_to_all_entrances": { "post": { - "description": "Revokes access to all [entrances](https://docs.seam.co/api/acs/entrances/object) for a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Revokes access to all [entrances](/api/acs/entrances/object) for a specified [access system user](/low-level-apis/access-systems/user-management).", "operationId": "acsUsersRevokeAccessToAllEntrancesPost", "requestBody": { "content": { @@ -42687,7 +42687,7 @@ }, "/acs/users/suspend": { "post": { - "description": "[Suspends](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users#suspend-an-acs-user) a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). Suspending an access system user revokes their access temporarily. To restore an access system user's access, you can [unsuspend](https://docs.seam.co/api/acs/users/unsuspend) them.", + "description": "[Suspends](/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users#suspend-an-acs-user) a specified [access system user](/low-level-apis/access-systems/user-management). Suspending an access system user revokes their access temporarily. To restore an access system user's access, you can [unsuspend](/api/acs/users/unsuspend) them.", "operationId": "acsUsersSuspendPost", "requestBody": { "content": { @@ -42797,7 +42797,7 @@ }, "/acs/users/unsuspend": { "post": { - "description": "[Unsuspends](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users#unsuspend-an-acs-user) a specified suspended [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). While [suspending an access system user](https://docs.seam.co/api/acs/users/suspend) revokes their access temporarily, unsuspending the access system user restores their access.", + "description": "[Unsuspends](/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users#unsuspend-an-acs-user) a specified suspended [access system user](/low-level-apis/access-systems/user-management). While [suspending an access system user](/api/acs/users/suspend) revokes their access temporarily, unsuspending the access system user restores their access.", "operationId": "acsUsersUnsuspendPost", "requestBody": { "content": { @@ -42907,7 +42907,7 @@ }, "/acs/users/update": { "patch": { - "description": "Updates the properties of a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Updates the properties of a specified [access system user](/low-level-apis/access-systems/user-management).", "operationId": "acsUsersUpdatePatch", "requestBody": { "content": { @@ -42952,12 +42952,12 @@ "x-deprecated": "use email_address." }, "email_address": { - "description": "Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Email address of the [access system user](/low-level-apis/access-systems/user-management).", "format": "email", "type": "string" }, "full_name": { - "description": "Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Full name of the [access system user](/low-level-apis/access-systems/user-management).", "minLength": 1, "type": "string" }, @@ -42967,7 +42967,7 @@ "type": "string" }, "phone_number": { - "description": "Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "type": "string" }, "user_identity_id": { @@ -43031,7 +43031,7 @@ "x-title": "Update an ACS User" }, "post": { - "description": "Updates the properties of a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Updates the properties of a specified [access system user](/low-level-apis/access-systems/user-management).", "operationId": "acsUsersUpdatePost", "requestBody": { "content": { @@ -43076,12 +43076,12 @@ "x-deprecated": "use email_address." }, "email_address": { - "description": "Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Email address of the [access system user](/low-level-apis/access-systems/user-management).", "format": "email", "type": "string" }, "full_name": { - "description": "Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", + "description": "Full name of the [access system user](/low-level-apis/access-systems/user-management).", "minLength": 1, "type": "string" }, @@ -43091,7 +43091,7 @@ "type": "string" }, "phone_number": { - "description": "Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "type": "string" }, "user_identity_id": { @@ -43187,7 +43187,7 @@ }, "/action_attempts/get": { "get": { - "description": "Returns a specified [action attempt](https://docs.seam.co/core-concepts/action-attempts).", + "description": "Returns a specified [action attempt](/core-concepts/action-attempts).", "operationId": "actionAttemptsGetGet", "parameters": [ { @@ -43261,7 +43261,7 @@ "x-title": "Get an Action Attempt" }, "post": { - "description": "Returns a specified [action attempt](https://docs.seam.co/core-concepts/action-attempts).", + "description": "Returns a specified [action attempt](/core-concepts/action-attempts).", "operationId": "actionAttemptsGetPost", "requestBody": { "content": { @@ -43374,7 +43374,7 @@ }, "/action_attempts/list": { "get": { - "description": "Returns a list of the [action attempts](https://docs.seam.co/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s.", + "description": "Returns a list of the [action attempts](/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s.", "operationId": "actionAttemptsListGet", "parameters": [ { @@ -43480,7 +43480,7 @@ "x-title": "List Action Attempts" }, "post": { - "description": "Returns a list of the [action attempts](https://docs.seam.co/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s.", + "description": "Returns a list of the [action attempts](/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s.", "operationId": "actionAttemptsListPost", "requestBody": { "content": { @@ -43611,7 +43611,7 @@ }, "/client_sessions/create": { "post": { - "description": "Creates a new [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "Creates a new [client session](/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsCreatePost", "requestBody": { "content": { @@ -43619,14 +43619,14 @@ "schema": { "properties": { "connect_webview_ids": { - "description": "IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) for which you want to create a client session.", + "description": "IDs of the [Connect Webviews](/core-concepts/connect-webviews) for which you want to create a client session.", "items": { "type": "string" }, "type": "array" }, "connected_account_ids": { - "description": "IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) for which you want to create a client session.", + "description": "IDs of the [connected accounts](/core-concepts/connected-accounts) for which you want to create a client session.", "items": { "type": "string" }, @@ -43652,13 +43652,13 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to create a client session.", + "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to create a client session.", "format": "uuid", "type": "string" }, "user_identity_ids": { "deprecated": true, - "description": "IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "items": { "format": "uuid", "type": "string" @@ -43761,7 +43761,7 @@ ] }, "put": { - "description": "Creates a new [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "Creates a new [client session](/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsCreatePut", "requestBody": { "content": { @@ -43769,14 +43769,14 @@ "schema": { "properties": { "connect_webview_ids": { - "description": "IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) for which you want to create a client session.", + "description": "IDs of the [Connect Webviews](/core-concepts/connect-webviews) for which you want to create a client session.", "items": { "type": "string" }, "type": "array" }, "connected_account_ids": { - "description": "IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) for which you want to create a client session.", + "description": "IDs of the [connected accounts](/core-concepts/connected-accounts) for which you want to create a client session.", "items": { "type": "string" }, @@ -43802,13 +43802,13 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to create a client session.", + "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to create a client session.", "format": "uuid", "type": "string" }, "user_identity_ids": { "deprecated": true, - "description": "IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "items": { "format": "uuid", "type": "string" @@ -43883,7 +43883,7 @@ }, "/client_sessions/delete": { "delete": { - "description": "Deletes a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "Deletes a [client session](/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsDeleteDelete", "parameters": [ { @@ -43946,7 +43946,7 @@ "x-title": "Delete a Client Session" }, "post": { - "description": "Deletes a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "Deletes a [client session](/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsDeletePost", "requestBody": { "content": { @@ -44049,7 +44049,7 @@ }, "/client_sessions/get": { "get": { - "description": "Returns a specified [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "Returns a specified [client session](/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsGetGet", "parameters": [ { @@ -44127,7 +44127,7 @@ "x-title": "Get a Client Session" }, "post": { - "description": "Returns a specified [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "Returns a specified [client session](/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsGetPost", "requestBody": { "content": { @@ -44238,7 +44238,7 @@ }, "/client_sessions/get_or_create": { "post": { - "description": "Returns a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) with specific characteristics or creates a new client session with these characteristics if it does not yet exist.", + "description": "Returns a [client session](/core-concepts/authentication/client-session-tokens) with specific characteristics or creates a new client session with these characteristics if it does not yet exist.", "operationId": "clientSessionsGetOrCreatePost", "requestBody": { "content": { @@ -44246,14 +44246,14 @@ "schema": { "properties": { "connect_webview_ids": { - "description": "IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) that you want to associate with the client session (or that are already associated with the existing client session).", + "description": "IDs of the [Connect Webviews](/core-concepts/connect-webviews) that you want to associate with the client session (or that are already associated with the existing client session).", "items": { "type": "string" }, "type": "array" }, "connected_account_ids": { - "description": "IDs of the [connected accounts](https://docs.seam.co/api/connected_accounts/object) that you want to associate with the client session (or that are already associated with the existing client session).", + "description": "IDs of the [connected accounts](/api/connected_accounts/object) that you want to associate with the client session (or that are already associated with the existing client session).", "items": { "type": "string" }, @@ -44270,13 +44270,13 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session (or that are already associated with the existing client session).", + "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session (or that are already associated with the existing client session).", "format": "uuid", "type": "string" }, "user_identity_ids": { "deprecated": true, - "description": "IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "items": { "format": "uuid", "type": "string" @@ -44381,7 +44381,7 @@ }, "/client_sessions/grant_access": { "patch": { - "description": "Grants a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) access to one or more resources, such as [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews), [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity), and so on.", + "description": "Grants a [client session](/core-concepts/authentication/client-session-tokens) access to one or more resources, such as [Connect Webviews](/core-concepts/connect-webviews), [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity), and so on.", "operationId": "clientSessionsGrantAccessPatch", "requestBody": { "content": { @@ -44393,14 +44393,14 @@ "type": "string" }, "connect_webview_ids": { - "description": "IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) that you want to associate with the client session.", + "description": "IDs of the [Connect Webviews](/core-concepts/connect-webviews) that you want to associate with the client session.", "items": { "type": "string" }, "type": "array" }, "connected_account_ids": { - "description": "IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) that you want to associate with the client session.", + "description": "IDs of the [connected accounts](/core-concepts/connected-accounts) that you want to associate with the client session.", "items": { "type": "string" }, @@ -44411,12 +44411,12 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "type": "string" }, "user_identity_ids": { "deprecated": true, - "description": "IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "items": { "type": "string" }, @@ -44484,7 +44484,7 @@ "x-title": "Grant Access to a Client Session" }, "post": { - "description": "Grants a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) access to one or more resources, such as [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews), [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity), and so on.", + "description": "Grants a [client session](/core-concepts/authentication/client-session-tokens) access to one or more resources, such as [Connect Webviews](/core-concepts/connect-webviews), [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity), and so on.", "operationId": "clientSessionsGrantAccessPost", "requestBody": { "content": { @@ -44496,14 +44496,14 @@ "type": "string" }, "connect_webview_ids": { - "description": "IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) that you want to associate with the client session.", + "description": "IDs of the [Connect Webviews](/core-concepts/connect-webviews) that you want to associate with the client session.", "items": { "type": "string" }, "type": "array" }, "connected_account_ids": { - "description": "IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) that you want to associate with the client session.", + "description": "IDs of the [connected accounts](/core-concepts/connected-accounts) that you want to associate with the client session.", "items": { "type": "string" }, @@ -44514,12 +44514,12 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "type": "string" }, "user_identity_ids": { "deprecated": true, - "description": "IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "items": { "type": "string" }, @@ -44620,7 +44620,7 @@ }, "/client_sessions/list": { "get": { - "description": "Returns a list of all [client sessions](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "Returns a list of all [client sessions](/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsListGet", "parameters": [ { @@ -44643,7 +44643,7 @@ "in": "query", "name": "connect_webview_id", "schema": { - "description": "ID of the [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) for which you want to retrieve client sessions.", + "description": "ID of the [Connect Webview](/core-concepts/connect-webviews) for which you want to retrieve client sessions.", "type": "string" } }, @@ -44659,7 +44659,7 @@ "in": "query", "name": "user_identity_id", "schema": { - "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to retrieve client sessions.", + "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to retrieve client sessions.", "type": "string" } } @@ -44721,7 +44721,7 @@ "x-title": "List Client Sessions" }, "post": { - "description": "Returns a list of all [client sessions](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", + "description": "Returns a list of all [client sessions](/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsListPost", "requestBody": { "content": { @@ -44733,7 +44733,7 @@ "type": "string" }, "connect_webview_id": { - "description": "ID of the [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) for which you want to retrieve client sessions.", + "description": "ID of the [Connect Webview](/core-concepts/connect-webviews) for which you want to retrieve client sessions.", "type": "string" }, "user_identifier_key": { @@ -44741,7 +44741,7 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to retrieve client sessions.", + "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to retrieve client sessions.", "type": "string" }, "without_user_identifier_key": { @@ -44843,7 +44843,7 @@ }, "/client_sessions/revoke": { "post": { - "description": "Revokes a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).\n\nNote that [deleting a client session](https://docs.seam.co/api/client_sessions/delete) is a separate action.", + "description": "Revokes a [client session](/core-concepts/authentication/client-session-tokens).\n\nNote that [deleting a client session](/api/client_sessions/delete) is a separate action.", "operationId": "clientSessionsRevokePost", "requestBody": { "content": { @@ -44946,7 +44946,7 @@ }, "/connect_webviews/create": { "post": { - "description": "Creates a new [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews).\n\nTo enable a user to connect their devices or systems to Seam, they must sign in to their device or system account. To enable a user to sign in, you create a `connect_webview`. After creating the Connect Webview, you receive a URL that you can use to display the visual component of this Connect Webview for your user. You can open an iframe or new window to display the Connect Webview.\n\nYou should make a new `connect_webview` for each unique login request. Each `connect_webview` tracks the user that signed in with it. You receive an error if you reuse a Connect Webview for the same user twice or if you use the same Connect Webview for multiple users.\n\nSee also: [Connect Webview Process](https://docs.seam.co/core-concepts/connect-webviews/connect-webview-process).", + "description": "Creates a new [Connect Webview](/core-concepts/connect-webviews).\n\nTo enable a user to connect their devices or systems to Seam, they must sign in to their device or system account. To enable a user to sign in, you create a `connect_webview`. After creating the Connect Webview, you receive a URL that you can use to display the visual component of this Connect Webview for your user. You can open an iframe or new window to display the Connect Webview.\n\nYou should make a new `connect_webview` for each unique login request. Each `connect_webview` tracks the user that signed in with it. You receive an error if you reuse a Connect Webview for the same user twice or if you use the same Connect Webview for multiple users.\n\nSee also: [Connect Webview Process](/core-concepts/connect-webviews/connect-webview-process).", "operationId": "connectWebviewsCreatePost", "requestBody": { "content": { @@ -44969,7 +44969,7 @@ "type": "array" }, "accepted_providers": { - "description": "Accepted device provider keys as an alternative to `provider_category`. Use this parameter to specify accepted providers explicitly. See [Customize the Brands to Display in Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). To list all provider keys, use [`/devices/list_device_providers`](https://docs.seam.co/api/devices/list_device_providers) with no filters.", + "description": "Accepted device provider keys as an alternative to `provider_category`. Use this parameter to specify accepted providers explicitly. See [Customize the Brands to Display in Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). To list all provider keys, use [`/devices/list_device_providers`](/api/devices/list_device_providers) with no filters.", "items": { "enum": [ "hotek", @@ -45042,7 +45042,7 @@ "type": "array" }, "automatically_manage_new_devices": { - "description": "Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). See also: [Customize the Behavior Settings of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews).", + "description": "Indicates whether newly-added devices should appear as [managed devices](/core-concepts/devices/managed-and-unmanaged-devices). See also: [Customize the Behavior Settings of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews).", "type": "boolean" }, "custom_metadata": { @@ -45058,7 +45058,7 @@ } ] }, - "description": "Custom metadata that you want to associate with the Connect Webview. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview) enables you to store custom information, like customer details or internal IDs from your application. The custom metadata is then transferred to any [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) that were connected using the Connect Webview, making it easy to find and filter these resources in your [workspace](https://docs.seam.co/core-concepts/workspaces). You can also [filter Connect Webviews by custom metadata](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata).", + "description": "Custom metadata that you want to associate with the Connect Webview. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview) enables you to store custom information, like customer details or internal IDs from your application. The custom metadata is then transferred to any [connected accounts](/core-concepts/connected-accounts) that were connected using the Connect Webview, making it easy to find and filter these resources in your [workspace](/core-concepts/workspaces). You can also [filter Connect Webviews by custom metadata](/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata).", "type": "object" }, "custom_redirect_failure_url": { @@ -45091,7 +45091,7 @@ "type": "array" }, "provider_category": { - "description": "Specifies the category of providers that you want to include. To list all providers within a category, use [`/devices/list_device_providers`](https://docs.seam.co/api/devices/list_device_providers) with the desired `provider_category` filter.", + "description": "Specifies the category of providers that you want to include. To list all providers within a category, use [`/devices/list_device_providers`](/api/devices/list_device_providers) with the desired `provider_category` filter.", "enum": [ "stable", "consumer_smartlocks", @@ -45107,7 +45107,7 @@ }, "wait_for_device_creation": { "default": false, - "description": "Indicates whether Seam should finish syncing all devices in a newly-connected account before completing the associated Connect Webview. See also: [Customize the Behavior Settings of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews).", + "description": "Indicates whether Seam should finish syncing all devices in a newly-connected account before completing the associated Connect Webview. See also: [Customize the Behavior Settings of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews).", "type": "boolean" } }, @@ -45208,7 +45208,7 @@ }, "/connect_webviews/delete": { "delete": { - "description": "Deletes a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews).\n\nYou do not need to delete a Connect Webview once a user completes it. Instead, you can simply ignore completed Connect Webviews.", + "description": "Deletes a [Connect Webview](/core-concepts/connect-webviews).\n\nYou do not need to delete a Connect Webview once a user completes it. Instead, you can simply ignore completed Connect Webviews.", "operationId": "connectWebviewsDeleteDelete", "requestBody": { "content": { @@ -45278,7 +45278,7 @@ "x-title": "Delete a Connect Webview" }, "post": { - "description": "Deletes a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews).\n\nYou do not need to delete a Connect Webview once a user completes it. Instead, you can simply ignore completed Connect Webviews.", + "description": "Deletes a [Connect Webview](/core-concepts/connect-webviews).\n\nYou do not need to delete a Connect Webview once a user completes it. Instead, you can simply ignore completed Connect Webviews.", "operationId": "connectWebviewsDeletePost", "requestBody": { "content": { @@ -45381,7 +45381,7 @@ }, "/connect_webviews/get": { "get": { - "description": "Returns a specified [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews).\n\nUnless you're using a `custom_redirect_url`, you should poll a newly-created `connect_webview` to find out if the user has signed in or to get details about what devices they've connected.", + "description": "Returns a specified [Connect Webview](/core-concepts/connect-webviews).\n\nUnless you're using a `custom_redirect_url`, you should poll a newly-created `connect_webview` to find out if the user has signed in or to get details about what devices they've connected.", "operationId": "connectWebviewsGetGet", "parameters": [ { @@ -45455,7 +45455,7 @@ "x-title": "Get a Connect Webview" }, "post": { - "description": "Returns a specified [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews).\n\nUnless you're using a `custom_redirect_url`, you should poll a newly-created `connect_webview` to find out if the user has signed in or to get details about what devices they've connected.", + "description": "Returns a specified [Connect Webview](/core-concepts/connect-webviews).\n\nUnless you're using a `custom_redirect_url`, you should poll a newly-created `connect_webview` to find out if the user has signed in or to get details about what devices they've connected.", "operationId": "connectWebviewsGetPost", "requestBody": { "content": { @@ -45568,7 +45568,7 @@ }, "/connect_webviews/list": { "get": { - "description": "Returns a list of all [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews).", + "description": "Returns a list of all [Connect Webviews](/core-concepts/connect-webviews).", "operationId": "connectWebviewsListGet", "parameters": [ { @@ -45601,7 +45601,7 @@ } ] }, - "description": "Custom metadata pairs by which you want to [filter Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Returns Connect Webviews with `custom_metadata` that contains all of the provided key:value pairs.", + "description": "Custom metadata pairs by which you want to [filter Connect Webviews](/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Returns Connect Webviews with `custom_metadata` that contains all of the provided key:value pairs.", "type": "object" } }, @@ -45701,7 +45701,7 @@ "x-title": "List Connect Webviews" }, "post": { - "description": "Returns a list of all [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews).", + "description": "Returns a list of all [Connect Webviews](/core-concepts/connect-webviews).", "operationId": "connectWebviewsListPost", "requestBody": { "content": { @@ -45719,7 +45719,7 @@ } ] }, - "description": "Custom metadata pairs by which you want to [filter Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Returns Connect Webviews with `custom_metadata` that contains all of the provided key:value pairs.", + "description": "Custom metadata pairs by which you want to [filter Connect Webviews](/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Returns Connect Webviews with `custom_metadata` that contains all of the provided key:value pairs.", "type": "object" }, "customer_key": { @@ -45851,7 +45851,7 @@ }, "/connected_accounts/delete": { "delete": { - "description": "Deletes a specified [connected account](https://docs.seam.co/core-concepts/connected-accounts).\n\nDeleting a connected account triggers a `connected_account.deleted` event and removes the connected account and all data associated with the connected account from Seam, including devices, events, access codes, and so on. For every deleted resource, Seam sends a corresponding deleted event, but the resource is not deleted from the provider.\n\nFor example, if you delete a connected account with a device that has an access code, Seam sends a `connected_account.deleted` event, a `device.deleted` event, and an `access_code.deleted` event, but Seam does not remove the access code from the device.", + "description": "Deletes a specified [connected account](/core-concepts/connected-accounts).\n\nDeleting a connected account triggers a `connected_account.deleted` event and removes the connected account and all data associated with the connected account from Seam, including devices, events, access codes, and so on. For every deleted resource, Seam sends a corresponding deleted event, but the resource is not deleted from the provider.\n\nFor example, if you delete a connected account with a device that has an access code, Seam sends a `connected_account.deleted` event, a `device.deleted` event, and an `access_code.deleted` event, but Seam does not remove the access code from the device.", "operationId": "connectedAccountsDeleteDelete", "requestBody": { "content": { @@ -45929,7 +45929,7 @@ "x-title": "Delete a Connected Account" }, "post": { - "description": "Deletes a specified [connected account](https://docs.seam.co/core-concepts/connected-accounts).\n\nDeleting a connected account triggers a `connected_account.deleted` event and removes the connected account and all data associated with the connected account from Seam, including devices, events, access codes, and so on. For every deleted resource, Seam sends a corresponding deleted event, but the resource is not deleted from the provider.\n\nFor example, if you delete a connected account with a device that has an access code, Seam sends a `connected_account.deleted` event, a `device.deleted` event, and an `access_code.deleted` event, but Seam does not remove the access code from the device.", + "description": "Deletes a specified [connected account](/core-concepts/connected-accounts).\n\nDeleting a connected account triggers a `connected_account.deleted` event and removes the connected account and all data associated with the connected account from Seam, including devices, events, access codes, and so on. For every deleted resource, Seam sends a corresponding deleted event, but the resource is not deleted from the provider.\n\nFor example, if you delete a connected account with a device that has an access code, Seam sends a `connected_account.deleted` event, a `device.deleted` event, and an `access_code.deleted` event, but Seam does not remove the access code from the device.", "operationId": "connectedAccountsDeletePost", "requestBody": { "content": { @@ -46040,7 +46040,7 @@ }, "/connected_accounts/get": { "get": { - "description": "Returns a specified [connected account](https://docs.seam.co/core-concepts/connected-accounts).", + "description": "Returns a specified [connected account](/core-concepts/connected-accounts).", "operationId": "connectedAccountsGetGet", "responses": { "200": { @@ -46102,7 +46102,7 @@ "x-title": "Get a Connected Account" }, "post": { - "description": "Returns a specified [connected account](https://docs.seam.co/core-concepts/connected-accounts).", + "description": "Returns a specified [connected account](/core-concepts/connected-accounts).", "operationId": "connectedAccountsGetPost", "requestBody": { "content": { @@ -46232,7 +46232,7 @@ }, "/connected_accounts/list": { "get": { - "description": "Returns a list of all [connected accounts](https://docs.seam.co/core-concepts/connected-accounts).", + "description": "Returns a list of all [connected accounts](/core-concepts/connected-accounts).", "operationId": "connectedAccountsListGet", "parameters": [ { @@ -46372,7 +46372,7 @@ "x-title": "List Connected Accounts" }, "post": { - "description": "Returns a list of all [connected accounts](https://docs.seam.co/core-concepts/connected-accounts).", + "description": "Returns a list of all [connected accounts](/core-concepts/connected-accounts).", "operationId": "connectedAccountsListPost", "requestBody": { "content": { @@ -46525,7 +46525,7 @@ }, "/connected_accounts/simulate/disconnect": { "post": { - "description": "Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces).", "operationId": "connectedAccountsSimulateDisconnectPost", "requestBody": { "content": { @@ -46599,7 +46599,7 @@ }, "/connected_accounts/sync": { "post": { - "description": "Request a [connected account](https://docs.seam.co/core-concepts/connected-accounts) sync attempt for the specified `connected_account_id`.", + "description": "Request a [connected account](/core-concepts/connected-accounts) sync attempt for the specified `connected_account_id`.", "operationId": "connectedAccountsSyncPost", "requestBody": { "content": { @@ -46702,7 +46702,7 @@ }, "/connected_accounts/update": { "patch": { - "description": "Updates a [connected account](https://docs.seam.co/core-concepts/connected-accounts).", + "description": "Updates a [connected account](/core-concepts/connected-accounts).", "operationId": "connectedAccountsUpdatePatch", "requestBody": { "content": { @@ -46725,7 +46725,7 @@ "type": "array" }, "automatically_manage_new_devices": { - "description": "Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).", + "description": "Indicates whether newly-added devices should appear as [managed devices](/core-concepts/devices/managed-and-unmanaged-devices).", "type": "boolean" }, "connected_account_id": { @@ -46746,7 +46746,7 @@ } ] }, - "description": "Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](https://docs.seam.co/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata).", + "description": "Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata).", "type": "object" }, "customer_key": { @@ -46822,7 +46822,7 @@ "x-title": "Update a Connected Account" }, "post": { - "description": "Updates a [connected account](https://docs.seam.co/core-concepts/connected-accounts).", + "description": "Updates a [connected account](/core-concepts/connected-accounts).", "operationId": "connectedAccountsUpdatePost", "requestBody": { "content": { @@ -46845,7 +46845,7 @@ "type": "array" }, "automatically_manage_new_devices": { - "description": "Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).", + "description": "Indicates whether newly-added devices should appear as [managed devices](/core-concepts/devices/managed-and-unmanaged-devices).", "type": "boolean" }, "connected_account_id": { @@ -46866,7 +46866,7 @@ } ] }, - "description": "Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](https://docs.seam.co/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata).", + "description": "Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata).", "type": "object" }, "customer_key": { @@ -49856,7 +49856,7 @@ }, "/devices/get": { "get": { - "description": "Returns a specified [device](https://docs.seam.co/core-concepts/devices).\n\nYou must specify either `device_id` or `name`.", + "description": "Returns a specified [device](/core-concepts/devices).\n\nYou must specify either `device_id` or `name`.", "operationId": "devicesGetGet", "parameters": [ { @@ -49937,7 +49937,7 @@ "x-title": "Get a Device" }, "post": { - "description": "Returns a specified [device](https://docs.seam.co/core-concepts/devices).\n\nYou must specify either `device_id` or `name`.", + "description": "Returns a specified [device](/core-concepts/devices).\n\nYou must specify either `device_id` or `name`.", "operationId": "devicesGetPost", "requestBody": { "content": { @@ -50051,7 +50051,7 @@ }, "/devices/list": { "get": { - "description": "Returns a list of all [devices](https://docs.seam.co/core-concepts/devices).", + "description": "Returns a list of all [devices](/core-concepts/devices).", "operationId": "devicesListGet", "parameters": [ { @@ -50377,7 +50377,7 @@ } ] }, - "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" } }, @@ -50553,7 +50553,7 @@ "x-title": "List Devices" }, "post": { - "description": "Returns a list of all [devices](https://docs.seam.co/core-concepts/devices).", + "description": "Returns a list of all [devices](/core-concepts/devices).", "operationId": "devicesListPost", "requestBody": { "content": { @@ -50594,7 +50594,7 @@ } ] }, - "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" }, "customer_key": { @@ -51024,7 +51024,7 @@ }, "/devices/list_device_providers": { "get": { - "description": "Returns a list of all device providers.\n\nThe information that this endpoint returns for each provider includes a set of [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags), such as `device_provider.can_remotely_unlock`. If at least one supported device from a provider has a specific capability, the corresponding capability flag is `true`.\n\nWhen you create a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews), you can customize the providers—that is, the brands—that it displays. In the `/connect_webviews/create` request, include the desired set of device provider keys in the `accepted_providers` parameter. See also [Customize the Brands to Display in Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", + "description": "Returns a list of all device providers.\n\nThe information that this endpoint returns for each provider includes a set of [capability flags](/capability-guides/device-and-system-capabilities#capability-flags), such as `device_provider.can_remotely_unlock`. If at least one supported device from a provider has a specific capability, the corresponding capability flag is `true`.\n\nWhen you create a [Connect Webview](/core-concepts/connect-webviews), you can customize the providers—that is, the brands—that it displays. In the `/connect_webviews/create` request, include the desired set of device provider keys in the `accepted_providers` parameter. See also [Customize the Brands to Display in Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", "operationId": "devicesListDeviceProvidersGet", "parameters": [ { @@ -51106,7 +51106,7 @@ "x-title": "List Device Providers" }, "post": { - "description": "Returns a list of all device providers.\n\nThe information that this endpoint returns for each provider includes a set of [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags), such as `device_provider.can_remotely_unlock`. If at least one supported device from a provider has a specific capability, the corresponding capability flag is `true`.\n\nWhen you create a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews), you can customize the providers—that is, the brands—that it displays. In the `/connect_webviews/create` request, include the desired set of device provider keys in the `accepted_providers` parameter. See also [Customize the Brands to Display in Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", + "description": "Returns a list of all device providers.\n\nThe information that this endpoint returns for each provider includes a set of [capability flags](/capability-guides/device-and-system-capabilities#capability-flags), such as `device_provider.can_remotely_unlock`. If at least one supported device from a provider has a specific capability, the corresponding capability flag is `true`.\n\nWhen you create a [Connect Webview](/core-concepts/connect-webviews), you can customize the providers—that is, the brands—that it displays. In the `/connect_webviews/create` request, include the desired set of device provider keys in the `accepted_providers` parameter. See also [Customize the Brands to Display in Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", "operationId": "devicesListDeviceProvidersPost", "requestBody": { "content": { @@ -52641,7 +52641,7 @@ }, "/devices/simulate/connect": { "post": { - "description": "Simulates connecting a device to Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal).", + "description": "Simulates connecting a device to Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal).", "operationId": "devicesSimulateConnectPost", "requestBody": { "content": { @@ -52853,7 +52853,7 @@ }, "/devices/simulate/disconnect": { "post": { - "description": "Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal).", + "description": "Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal).", "operationId": "devicesSimulateDisconnectPost", "requestBody": { "content": { @@ -53142,7 +53142,7 @@ }, "/devices/simulate/remove": { "post": { - "description": "Simulates removing a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal).", + "description": "Simulates removing a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal).", "operationId": "devicesSimulateRemovePost", "requestBody": { "content": { @@ -53248,7 +53248,7 @@ }, "/devices/unmanaged/get": { "get": { - "description": "Returns a specified [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).\n\nYou must specify either `device_id` or `name`.", + "description": "Returns a specified [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).\n\nYou must specify either `device_id` or `name`.", "operationId": "devicesUnmanagedGetGet", "parameters": [ { @@ -53327,7 +53327,7 @@ "x-title": "Get an Unmanaged Device" }, "post": { - "description": "Returns a specified [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).\n\nYou must specify either `device_id` or `name`.", + "description": "Returns a specified [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).\n\nYou must specify either `device_id` or `name`.", "operationId": "devicesUnmanagedGetPost", "requestBody": { "content": { @@ -53438,7 +53438,7 @@ }, "/devices/unmanaged/list": { "get": { - "description": "Returns a list of all [unmanaged devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", + "description": "Returns a list of all [unmanaged devices](/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", "operationId": "devicesUnmanagedListGet", "parameters": [ { @@ -53754,7 +53754,7 @@ } ] }, - "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" } }, @@ -53938,7 +53938,7 @@ "x-title": "List Unmanaged Devices" }, "post": { - "description": "Returns a list of all [unmanaged devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", + "description": "Returns a list of all [unmanaged devices](/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", "operationId": "devicesUnmanagedListPost", "requestBody": { "content": { @@ -53979,7 +53979,7 @@ } ] }, - "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" }, "customer_key": { @@ -54406,7 +54406,7 @@ }, "/devices/unmanaged/update": { "patch": { - "description": "Updates a specified [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). To convert an unmanaged device to managed, set `is_managed` to `true`.\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", + "description": "Updates a specified [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices). To convert an unmanaged device to managed, set `is_managed` to `true`.\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", "operationId": "devicesUnmanagedUpdatePatch", "requestBody": { "content": { @@ -54500,7 +54500,7 @@ "x-title": "Update an Unmanaged Device" }, "post": { - "description": "Updates a specified [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). To convert an unmanaged device to managed, set `is_managed` to `true`.\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", + "description": "Updates a specified [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices). To convert an unmanaged device to managed, set `is_managed` to `true`.\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", "operationId": "devicesUnmanagedUpdatePost", "requestBody": { "content": { @@ -54626,7 +54626,7 @@ }, "/devices/update": { "patch": { - "description": "Updates a specified [device](https://docs.seam.co/core-concepts/devices).\n\nYou can add or change [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) for a device, change the device's name, or [convert a managed device to unmanaged](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).", + "description": "Updates a specified [device](/core-concepts/devices).\n\nYou can add or change [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) for a device, change the device's name, or [convert a managed device to unmanaged](/core-concepts/devices/managed-and-unmanaged-devices).", "operationId": "devicesUpdatePatch", "requestBody": { "content": { @@ -54646,7 +54646,7 @@ } ] }, - "description": "Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter devices by the desired metadata](https://docs.seam.co/core-concepts/devices/filtering-devices-by-custom-metadata).", + "description": "Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a device](/core-concepts/devices/adding-custom-metadata-to-a-device) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter devices by the desired metadata](/core-concepts/devices/filtering-devices-by-custom-metadata).", "type": "object" }, "device_id": { @@ -54738,7 +54738,7 @@ "x-title": "Update a Device" }, "post": { - "description": "Updates a specified [device](https://docs.seam.co/core-concepts/devices).\n\nYou can add or change [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) for a device, change the device's name, or [convert a managed device to unmanaged](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).", + "description": "Updates a specified [device](/core-concepts/devices).\n\nYou can add or change [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) for a device, change the device's name, or [convert a managed device to unmanaged](/core-concepts/devices/managed-and-unmanaged-devices).", "operationId": "devicesUpdatePost", "requestBody": { "content": { @@ -54758,7 +54758,7 @@ } ] }, - "description": "Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter devices by the desired metadata](https://docs.seam.co/core-concepts/devices/filtering-devices-by-custom-metadata).", + "description": "Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a device](/core-concepts/devices/adding-custom-metadata-to-a-device) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter devices by the desired metadata](/core-concepts/devices/filtering-devices-by-custom-metadata).", "type": "object" }, "device_id": { @@ -54883,7 +54883,7 @@ }, "/events/get": { "get": { - "description": "Returns a specified event. This endpoint returns the same event that would be sent to a [webhook](https://docs.seam.co/developer-tools/webhooks), but it enables you to retrieve an event that already took place.", + "description": "Returns a specified event. This endpoint returns the same event that would be sent to a [webhook](/developer-tools/webhooks), but it enables you to retrieve an event that already took place.", "operationId": "eventsGetGet", "parameters": [ { @@ -54975,7 +54975,7 @@ "x-title": "Get an Event" }, "post": { - "description": "Returns a specified event. This endpoint returns the same event that would be sent to a [webhook](https://docs.seam.co/developer-tools/webhooks), but it enables you to retrieve an event that already took place.", + "description": "Returns a specified event. This endpoint returns the same event that would be sent to a [webhook](/developer-tools/webhooks), but it enables you to retrieve an event that already took place.", "operationId": "eventsGetPost", "requestBody": { "content": { @@ -55096,7 +55096,7 @@ }, "/events/list": { "get": { - "description": "Returns a list of all events. This endpoint returns the same events that would be sent to a [webhook](https://docs.seam.co/developer-tools/webhooks), but it enables you to filter or see events that already took place.", + "description": "Returns a list of all events. This endpoint returns the same events that would be sent to a [webhook](/developer-tools/webhooks), but it enables you to filter or see events that already took place.", "operationId": "eventsListGet", "parameters": [ { @@ -55669,7 +55669,7 @@ "x-title": "List Events" }, "post": { - "description": "Returns a list of all events. This endpoint returns the same events that would be sent to a [webhook](https://docs.seam.co/developer-tools/webhooks), but it enables you to filter or see events that already took place.", + "description": "Returns a list of all events. This endpoint returns the same events that would be sent to a [webhook](/developer-tools/webhooks), but it enables you to filter or see events that already took place.", "operationId": "eventsListPost", "requestBody": { "content": { @@ -56171,7 +56171,7 @@ }, "/instant_keys/delete": { "delete": { - "description": "Deletes a specified [Instant Key](https://docs.seam.co/capability-guides/instant-keys).", + "description": "Deletes a specified [Instant Key](/capability-guides/instant-keys).", "operationId": "instantKeysDeleteDelete", "parameters": [ { @@ -56232,7 +56232,7 @@ "x-title": "Delete an Instant Key" }, "post": { - "description": "Deletes a specified [Instant Key](https://docs.seam.co/capability-guides/instant-keys).", + "description": "Deletes a specified [Instant Key](/capability-guides/instant-keys).", "operationId": "instantKeysDeletePost", "requestBody": { "content": { @@ -56301,7 +56301,7 @@ }, "/instant_keys/get": { "get": { - "description": "Gets an [instant key](https://docs.seam.co/capability-guides/instant-keys).", + "description": "Gets an [instant key](/capability-guides/instant-keys).", "operationId": "instantKeysGetGet", "parameters": [ { @@ -56375,7 +56375,7 @@ "x-title": "Get an Instant Key" }, "post": { - "description": "Gets an [instant key](https://docs.seam.co/capability-guides/instant-keys).", + "description": "Gets an [instant key](/capability-guides/instant-keys).", "operationId": "instantKeysGetPost", "requestBody": { "content": { @@ -56450,7 +56450,7 @@ }, "/instant_keys/list": { "get": { - "description": "Returns a list of all [instant keys](https://docs.seam.co/capability-guides/instant-keys).", + "description": "Returns a list of all [instant keys](/capability-guides/instant-keys).", "operationId": "instantKeysListGet", "parameters": [ { @@ -56518,7 +56518,7 @@ "x-title": "List Instant Keys" }, "post": { - "description": "Returns a list of all [instant keys](https://docs.seam.co/capability-guides/instant-keys).", + "description": "Returns a list of all [instant keys](/capability-guides/instant-keys).", "operationId": "instantKeysListPost", "requestBody": { "content": { @@ -56591,7 +56591,7 @@ }, "/locks/configure_auto_lock": { "post": { - "description": "Configures the auto-lock setting for a specified [lock](https://docs.seam.co/low-level-apis/smart-locks).", + "description": "Configures the auto-lock setting for a specified [lock](/low-level-apis/smart-locks).", "operationId": "locksConfigureAutoLockPost", "requestBody": { "content": { @@ -56729,7 +56729,7 @@ }, "/locks/get": { "get": { - "description": "Returns a specified [lock](https://docs.seam.co/low-level-apis/smart-locks).", + "description": "Returns a specified [lock](/low-level-apis/smart-locks).", "operationId": "locksGetGet", "parameters": [ { @@ -56812,7 +56812,7 @@ "x-title": "Get a Lock" }, "post": { - "description": "Returns a specified [lock](https://docs.seam.co/low-level-apis/smart-locks).", + "description": "Returns a specified [lock](/low-level-apis/smart-locks).", "operationId": "locksGetPost", "requestBody": { "content": { @@ -56895,7 +56895,7 @@ }, "/locks/list": { "get": { - "description": "Returns a list of all [locks](https://docs.seam.co/low-level-apis/smart-locks).", + "description": "Returns a list of all [locks](/low-level-apis/smart-locks).", "operationId": "locksListGet", "parameters": [ { @@ -57109,7 +57109,7 @@ } ] }, - "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" } }, @@ -57285,7 +57285,7 @@ "x-title": "List Locks" }, "post": { - "description": "Returns a list of all [locks](https://docs.seam.co/low-level-apis/smart-locks).", + "description": "Returns a list of all [locks](/low-level-apis/smart-locks).", "operationId": "locksListPost", "requestBody": { "content": { @@ -57326,7 +57326,7 @@ } ] }, - "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" }, "customer_key": { @@ -57644,7 +57644,7 @@ }, "/locks/lock_door": { "post": { - "description": "Locks a [lock](https://docs.seam.co/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](https://docs.seam.co/low-level-apis/smart-locks/lock-and-unlock).", + "description": "Locks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock).", "operationId": "locksLockDoorPost", "requestBody": { "content": { @@ -57810,7 +57810,7 @@ }, "/locks/simulate/keypad_code_entry": { "post": { - "description": "Simulates the entry of a code on a keypad. You can only perform this action for [August](https://docs.seam.co/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates the entry of a code on a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces).", "operationId": "locksSimulateKeypadCodeEntryPost", "requestBody": { "content": { @@ -57970,7 +57970,7 @@ }, "/locks/simulate/manual_lock_via_keypad": { "post": { - "description": "Simulates a manual lock action using a keypad. You can only perform this action for [August](https://docs.seam.co/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates a manual lock action using a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces).", "operationId": "locksSimulateManualLockViaKeypadPost", "requestBody": { "content": { @@ -58125,7 +58125,7 @@ }, "/locks/unlock_door": { "post": { - "description": "Unlocks a [lock](https://docs.seam.co/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](https://docs.seam.co/low-level-apis/smart-locks/lock-and-unlock).", + "description": "Unlocks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock).", "operationId": "locksUnlockDoorPost", "requestBody": { "content": { @@ -58291,7 +58291,7 @@ }, "/noise_sensors/list": { "get": { - "description": "Returns a list of all [noise sensors](https://docs.seam.co/capability-guides/noise-sensors).", + "description": "Returns a list of all [noise sensors](/capability-guides/noise-sensors).", "operationId": "noiseSensorsListGet", "parameters": [ { @@ -58425,7 +58425,7 @@ } ] }, - "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" } }, @@ -58601,7 +58601,7 @@ "x-title": "List Noise Sensors" }, "post": { - "description": "Returns a list of all [noise sensors](https://docs.seam.co/capability-guides/noise-sensors).", + "description": "Returns a list of all [noise sensors](/capability-guides/noise-sensors).", "operationId": "noiseSensorsListPost", "requestBody": { "content": { @@ -58642,7 +58642,7 @@ } ] }, - "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" }, "customer_key": { @@ -58880,7 +58880,7 @@ }, "/noise_sensors/noise_thresholds/create": { "post": { - "description": "Creates a new [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them.", + "description": "Creates a new [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them.", "operationId": "noiseSensorsNoiseThresholdsCreatePost", "requestBody": { "content": { @@ -58906,7 +58906,7 @@ "type": "number" }, "noise_threshold_nrs": { - "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the new noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors).", + "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the new noise threshold. This parameter is only relevant for [Noiseaware sensors](/device-and-system-integration-guides/noiseaware-sensors).", "format": "float", "type": "number" }, @@ -59068,7 +59068,7 @@ }, "/noise_sensors/noise_thresholds/delete": { "delete": { - "description": "Deletes a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) from a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", + "description": "Deletes a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) from a [noise sensor](/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsDeleteDelete", "requestBody": { "content": { @@ -59155,7 +59155,7 @@ "x-title": "Delete a Noise Threshold" }, "post": { - "description": "Deletes a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) from a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", + "description": "Deletes a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) from a [noise sensor](/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsDeletePost", "requestBody": { "content": { @@ -59321,7 +59321,7 @@ }, "/noise_sensors/noise_thresholds/get": { "get": { - "description": "Returns a specified [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", + "description": "Returns a specified [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsGetGet", "parameters": [ { @@ -59390,7 +59390,7 @@ "x-title": "Get a Noise Threshold" }, "post": { - "description": "Returns a specified [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", + "description": "Returns a specified [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsGetPost", "requestBody": { "content": { @@ -59497,7 +59497,7 @@ }, "/noise_sensors/noise_thresholds/list": { "get": { - "description": "Returns a list of all [noise thresholds](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", + "description": "Returns a list of all [noise thresholds](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsListGet", "parameters": [ { @@ -59582,7 +59582,7 @@ "x-title": "List Noise Thresholds" }, "post": { - "description": "Returns a list of all [noise thresholds](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", + "description": "Returns a list of all [noise thresholds](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsListPost", "requestBody": { "content": { @@ -59700,7 +59700,7 @@ }, "/noise_sensors/noise_thresholds/update": { "patch": { - "description": "Updates a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", + "description": "Updates a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsUpdatePatch", "requestBody": { "content": { @@ -59731,7 +59731,7 @@ "type": "string" }, "noise_threshold_nrs": { - "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors).", + "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](/device-and-system-integration-guides/noiseaware-sensors).", "format": "float", "type": "number" }, @@ -59809,7 +59809,7 @@ "x-title": "Update a Noise Threshold" }, "post": { - "description": "Updates a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", + "description": "Updates a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsUpdatePost", "requestBody": { "content": { @@ -59840,7 +59840,7 @@ "type": "string" }, "noise_threshold_nrs": { - "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors).", + "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](/device-and-system-integration-guides/noiseaware-sensors).", "format": "float", "type": "number" }, @@ -59995,7 +59995,7 @@ ] }, "put": { - "description": "Updates a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", + "description": "Updates a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsUpdatePut", "requestBody": { "content": { @@ -60026,7 +60026,7 @@ "type": "string" }, "noise_threshold_nrs": { - "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors).", + "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](/device-and-system-integration-guides/noiseaware-sensors).", "format": "float", "type": "number" }, @@ -60106,7 +60106,7 @@ }, "/noise_sensors/simulate/trigger_noise_threshold": { "post": { - "description": "Simulates the triggering of a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates the triggering of a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", "operationId": "noiseSensorsSimulateTriggerNoiseThresholdPost", "requestBody": { "content": { @@ -60209,7 +60209,7 @@ }, "/phones/deactivate": { "delete": { - "description": "Deactivates a phone, which is useful, for example, if a user has lost their phone. For more information, see [App User Lost Phone Process](https://docs.seam.co/capability-guides/mobile-access/managing-phones-for-a-user-identity#app-user-lost-phone-process).", + "description": "Deactivates a phone, which is useful, for example, if a user has lost their phone. For more information, see [App User Lost Phone Process](/capability-guides/mobile-access/managing-phones-for-a-user-identity#app-user-lost-phone-process).", "operationId": "phonesDeactivateDelete", "requestBody": { "content": { @@ -60281,7 +60281,7 @@ "x-title": "Deactivate a Phone" }, "post": { - "description": "Deactivates a phone, which is useful, for example, if a user has lost their phone. For more information, see [App User Lost Phone Process](https://docs.seam.co/capability-guides/mobile-access/managing-phones-for-a-user-identity#app-user-lost-phone-process).", + "description": "Deactivates a phone, which is useful, for example, if a user has lost their phone. For more information, see [App User Lost Phone Process](/capability-guides/mobile-access/managing-phones-for-a-user-identity#app-user-lost-phone-process).", "operationId": "phonesDeactivatePost", "requestBody": { "content": { @@ -60386,7 +60386,7 @@ }, "/phones/get": { "get": { - "description": "Returns a specified [phone](https://docs.seam.co/capability-guides/mobile-access/managing-phones-for-a-user-identity).", + "description": "Returns a specified [phone](/capability-guides/mobile-access/managing-phones-for-a-user-identity).", "operationId": "phonesGetGet", "parameters": [ { @@ -60454,7 +60454,7 @@ "x-title": "Get a Phone" }, "post": { - "description": "Returns a specified [phone](https://docs.seam.co/capability-guides/mobile-access/managing-phones-for-a-user-identity).", + "description": "Returns a specified [phone](/capability-guides/mobile-access/managing-phones-for-a-user-identity).", "operationId": "phonesGetPost", "requestBody": { "content": { @@ -60561,7 +60561,7 @@ }, "/phones/list": { "get": { - "description": "Returns a list of all [phones](https://docs.seam.co/capability-guides/mobile-access/managing-phones-for-a-user-identity). To filter the list of returned phones by a specific owner user identity or credential, include the `owner_user_identity_id` or `acs_credential_id`, respectively, in the request body.", + "description": "Returns a list of all [phones](/capability-guides/mobile-access/managing-phones-for-a-user-identity). To filter the list of returned phones by a specific owner user identity or credential, include the `owner_user_identity_id` or `acs_credential_id`, respectively, in the request body.", "operationId": "phonesListGet", "parameters": [ { @@ -60577,7 +60577,7 @@ "in": "query", "name": "acs_credential_id", "schema": { - "description": "ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) by which you want to filter the list of returned phones.", + "description": "ID of the [credential](/low-level-apis/access-systems/managing-credentials) by which you want to filter the list of returned phones.", "format": "uuid", "type": "string" } @@ -60640,7 +60640,7 @@ "x-title": "List Phones" }, "post": { - "description": "Returns a list of all [phones](https://docs.seam.co/capability-guides/mobile-access/managing-phones-for-a-user-identity). To filter the list of returned phones by a specific owner user identity or credential, include the `owner_user_identity_id` or `acs_credential_id`, respectively, in the request body.", + "description": "Returns a list of all [phones](/capability-guides/mobile-access/managing-phones-for-a-user-identity). To filter the list of returned phones by a specific owner user identity or credential, include the `owner_user_identity_id` or `acs_credential_id`, respectively, in the request body.", "operationId": "phonesListPost", "requestBody": { "content": { @@ -60648,7 +60648,7 @@ "schema": { "properties": { "acs_credential_id": { - "description": "ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) by which you want to filter the list of returned phones.", + "description": "ID of the [credential](/low-level-apis/access-systems/managing-credentials) by which you want to filter the list of returned phones.", "format": "uuid", "type": "string" }, @@ -60752,7 +60752,7 @@ }, "/phones/simulate/create_sandbox_phone": { "post": { - "description": "Creates a new simulated phone in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](https://docs.seam.co/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity).", + "description": "Creates a new simulated phone in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity).", "operationId": "phonesSimulateCreateSandboxPhonePost", "requestBody": { "content": { @@ -60932,7 +60932,7 @@ }, "/spaces/add_acs_entrances": { "post": { - "description": "Adds [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) to a specific space.", + "description": "Adds [entrances](/low-level-apis/access-systems/retrieving-entrance-details) to a specific space.", "operationId": "spacesAddAcsEntrancesPost", "requestBody": { "content": { @@ -61044,7 +61044,7 @@ ] }, "put": { - "description": "Adds [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) to a specific space.", + "description": "Adds [entrances](/low-level-apis/access-systems/retrieving-entrance-details) to a specific space.", "operationId": "spacesAddAcsEntrancesPut", "requestBody": { "content": { @@ -61127,7 +61127,7 @@ }, "/spaces/add_connected_account": { "post": { - "description": "Adds a [connected account](https://docs.seam.co/core-concepts/connected-accounts) to a specific space.", + "description": "Adds a [connected account](/core-concepts/connected-accounts) to a specific space.", "operationId": "spacesAddConnectedAccountPost", "requestBody": { "content": { @@ -61203,7 +61203,7 @@ } }, "put": { - "description": "Adds a [connected account](https://docs.seam.co/core-concepts/connected-accounts) to a specific space.", + "description": "Adds a [connected account](/core-concepts/connected-accounts) to a specific space.", "operationId": "spacesAddConnectedAccountPut", "requestBody": { "content": { @@ -62607,7 +62607,7 @@ }, "/spaces/remove_acs_entrances": { "delete": { - "description": "Removes [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) from a specific space.", + "description": "Removes [entrances](/low-level-apis/access-systems/retrieving-entrance-details) from a specific space.", "operationId": "spacesRemoveAcsEntrancesDelete", "parameters": [ { @@ -62684,7 +62684,7 @@ "x-title": "Remove Entrances from a Space" }, "post": { - "description": "Removes [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) from a specific space.", + "description": "Removes [entrances](/low-level-apis/access-systems/retrieving-entrance-details) from a specific space.", "operationId": "spacesRemoveAcsEntrancesPost", "requestBody": { "content": { @@ -62797,7 +62797,7 @@ }, "/spaces/remove_connected_account": { "delete": { - "description": "Removes a [connected account](https://docs.seam.co/core-concepts/connected-accounts) from a specific space.", + "description": "Removes a [connected account](/core-concepts/connected-accounts) from a specific space.", "operationId": "spacesRemoveConnectedAccountDelete", "parameters": [ { @@ -62871,7 +62871,7 @@ "x-title": "Remove a Connected Account from a Space" }, "post": { - "description": "Removes a [connected account](https://docs.seam.co/core-concepts/connected-accounts) from a specific space.", + "description": "Removes a [connected account](/core-concepts/connected-accounts) from a specific space.", "operationId": "spacesRemoveConnectedAccountPost", "requestBody": { "content": { @@ -63443,7 +63443,7 @@ }, "/thermostats/activate_climate_preset": { "post": { - "description": "Activates a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Activates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsActivateClimatePresetPost", "requestBody": { "content": { @@ -63603,7 +63603,7 @@ }, "/thermostats/cool": { "post": { - "description": "Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [cool mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings).", + "description": "Sets a specified [thermostat](/capability-guides/thermostats) to [cool mode](/capability-guides/thermostats/configure-current-climate-settings).", "operationId": "thermostatsCoolPost", "requestBody": { "content": { @@ -63611,12 +63611,12 @@ "schema": { "properties": { "cooling_set_point_celsius": { - "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, @@ -63776,7 +63776,7 @@ }, "/thermostats/create_climate_preset": { "post": { - "description": "Creates a [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Creates a [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsCreateClimatePresetPost", "requestBody": { "content": { @@ -63784,7 +63784,7 @@ "schema": { "properties": { "climate_preset_key": { - "description": "Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "climate_preset_mode": { @@ -63800,12 +63800,12 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, @@ -63842,7 +63842,7 @@ "type": "object" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -63851,17 +63851,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -63880,7 +63880,7 @@ }, "name": { "default": null, - "description": "User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "nullable": true, "type": "string" } @@ -64004,7 +64004,7 @@ "description": "Period for a thermostat daily program. Consists of a starts at time and the key that identifies the configured climate preset to apply at the starting time.", "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", + "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", "type": "string" }, "starts_at_time": { @@ -64311,7 +64311,7 @@ "description": "Period for a thermostat daily program. Consists of a starts at time and the key that identifies the configured climate preset to apply at the starting time.", "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", + "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", "type": "string" }, "starts_at_time": { @@ -64420,7 +64420,7 @@ "description": "Period for a thermostat daily program. Consists of a starts at time and the key that identifies the configured climate preset to apply at the starting time.", "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", + "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", "type": "string" }, "starts_at_time": { @@ -64590,7 +64590,7 @@ }, "/thermostats/delete_climate_preset": { "delete": { - "description": "Deletes a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Deletes a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsDeleteClimatePresetDelete", "requestBody": { "content": { @@ -64668,7 +64668,7 @@ "x-title": "Delete a Climate Preset" }, "post": { - "description": "Deletes a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Deletes a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsDeleteClimatePresetPost", "requestBody": { "content": { @@ -64779,7 +64779,7 @@ }, "/thermostats/heat": { "post": { - "description": "Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [heat mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings).", + "description": "Sets a specified [thermostat](/capability-guides/thermostats) to [heat mode](/capability-guides/thermostats/configure-current-climate-settings).", "operationId": "thermostatsHeatPost", "requestBody": { "content": { @@ -64792,12 +64792,12 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, @@ -64952,7 +64952,7 @@ }, "/thermostats/heat_cool": { "post": { - "description": "Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [heat-cool (\"auto\") mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings).", + "description": "Sets a specified [thermostat](/capability-guides/thermostats) to [heat-cool (\"auto\") mode](/capability-guides/thermostats/configure-current-climate-settings).", "operationId": "thermostatsHeatCoolPost", "requestBody": { "content": { @@ -64960,12 +64960,12 @@ "schema": { "properties": { "cooling_set_point_celsius": { - "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, @@ -64975,12 +64975,12 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, @@ -65135,7 +65135,7 @@ }, "/thermostats/list": { "get": { - "description": "Returns a list of all [thermostats](https://docs.seam.co/capability-guides/thermostats).", + "description": "Returns a list of all [thermostats](/capability-guides/thermostats).", "operationId": "thermostatsListGet", "parameters": [ { @@ -65281,7 +65281,7 @@ } ] }, - "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" } }, @@ -65457,7 +65457,7 @@ "x-title": "List Thermostats" }, "post": { - "description": "Returns a list of all [thermostats](https://docs.seam.co/capability-guides/thermostats).", + "description": "Returns a list of all [thermostats](/capability-guides/thermostats).", "operationId": "thermostatsListPost", "requestBody": { "content": { @@ -65498,7 +65498,7 @@ } ] }, - "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" }, "customer_key": { @@ -65748,7 +65748,7 @@ }, "/thermostats/off": { "post": { - "description": "Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [\"off\" mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings).", + "description": "Sets a specified [thermostat](/capability-guides/thermostats) to [\"off\" mode](/capability-guides/thermostats/configure-current-climate-settings).", "operationId": "thermostatsOffPost", "requestBody": { "content": { @@ -65911,7 +65911,7 @@ }, "/thermostats/schedules/create": { "post": { - "description": "Creates a new [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Creates a new [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsSchedulesCreatePost", "requestBody": { "content": { @@ -65919,7 +65919,7 @@ "schema": { "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the new thermostat schedule.", + "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the new thermostat schedule.", "type": "string" }, "device_id": { @@ -65931,11 +65931,11 @@ "type": "string" }, "is_override_allowed": { - "description": "Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the new schedule is active. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the new schedule is active. See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean" }, "max_override_period_minutes": { - "description": "Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "exclusiveMinimum": true, "minimum": 0, "nullable": true, @@ -66053,7 +66053,7 @@ }, "/thermostats/schedules/delete": { "delete": { - "description": "Deletes a [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Deletes a [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsSchedulesDeleteDelete", "parameters": [ { @@ -66120,7 +66120,7 @@ "x-title": "Delete a Thermostat Schedule" }, "post": { - "description": "Deletes a [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Deletes a [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsSchedulesDeletePost", "requestBody": { "content": { @@ -66226,7 +66226,7 @@ }, "/thermostats/schedules/get": { "get": { - "description": "Returns a specified [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Returns a specified [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "operationId": "thermostatsSchedulesGetGet", "parameters": [ { @@ -66298,7 +66298,7 @@ "x-title": "Get a Thermostat Schedule" }, "post": { - "description": "Returns a specified [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Returns a specified [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "operationId": "thermostatsSchedulesGetPost", "requestBody": { "content": { @@ -66408,7 +66408,7 @@ }, "/thermostats/schedules/list": { "get": { - "description": "Returns a list of all [thermostat schedules](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Returns a list of all [thermostat schedules](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsSchedulesListGet", "parameters": [ { @@ -66495,7 +66495,7 @@ "x-title": "List Thermostat Schedules" }, "post": { - "description": "Returns a list of all [thermostat schedules](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Returns a list of all [thermostat schedules](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsSchedulesListPost", "requestBody": { "content": { @@ -66615,7 +66615,7 @@ }, "/thermostats/schedules/update": { "patch": { - "description": "Updates a specified [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Updates a specified [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "operationId": "thermostatsSchedulesUpdatePatch", "requestBody": { "content": { @@ -66623,7 +66623,7 @@ "schema": { "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the thermostat schedule.", + "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the thermostat schedule.", "type": "string" }, "ends_at": { @@ -66631,11 +66631,11 @@ "type": "string" }, "is_override_allowed": { - "description": "Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the schedule is active. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the schedule is active. See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean" }, "max_override_period_minutes": { - "description": "Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "exclusiveMinimum": true, "minimum": 0, "nullable": true, @@ -66716,7 +66716,7 @@ "x-title": "Update a Thermostat Schedule" }, "post": { - "description": "Updates a specified [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Updates a specified [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "operationId": "thermostatsSchedulesUpdatePost", "requestBody": { "content": { @@ -66724,7 +66724,7 @@ "schema": { "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the thermostat schedule.", + "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the thermostat schedule.", "type": "string" }, "ends_at": { @@ -66732,11 +66732,11 @@ "type": "string" }, "is_override_allowed": { - "description": "Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the schedule is active. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the schedule is active. See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean" }, "max_override_period_minutes": { - "description": "Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "exclusiveMinimum": true, "minimum": 0, "nullable": true, @@ -66849,7 +66849,7 @@ }, "/thermostats/set_fallback_climate_preset": { "post": { - "description": "Sets a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) as the [\"fallback\"](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) preset for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Sets a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) as the [\"fallback\"](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) preset for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsSetFallbackClimatePresetPost", "requestBody": { "content": { @@ -66957,7 +66957,7 @@ }, "/thermostats/set_fan_mode": { "post": { - "description": "Sets the [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Sets the [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsSetFanModePost", "requestBody": { "content": { @@ -66981,7 +66981,7 @@ "x-deprecated": "Use `fan_mode_setting` instead." }, "fan_mode_setting": { - "description": "[Fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) that you want to set for the thermostat.", + "description": "[Fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) that you want to set for the thermostat.", "enum": [ "auto", "on", @@ -67140,7 +67140,7 @@ }, "/thermostats/set_hvac_mode": { "post": { - "description": "Sets the [HVAC mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Sets the [HVAC mode](/capability-guides/thermostats/configure-current-climate-settings) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsSetHvacModePost", "requestBody": { "content": { @@ -67173,12 +67173,12 @@ { "properties": { "cooling_set_point_celsius": { - "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, @@ -67208,12 +67208,12 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, @@ -67233,12 +67233,12 @@ { "properties": { "cooling_set_point_celsius": { - "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, @@ -67248,12 +67248,12 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, @@ -67432,7 +67432,7 @@ }, "/thermostats/set_temperature_threshold": { "patch": { - "description": "Sets a [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range.", + "description": "Sets a [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range.", "operationId": "thermostatsSetTemperatureThresholdPatch", "requestBody": { "content": { @@ -67530,7 +67530,7 @@ "x-title": "Set a Temperature Threshold" }, "post": { - "description": "Sets a [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range.", + "description": "Sets a [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range.", "operationId": "thermostatsSetTemperatureThresholdPost", "requestBody": { "content": { @@ -67661,7 +67661,7 @@ }, "/thermostats/simulate/hvac_mode_adjusted": { "post": { - "description": "Simulates having adjusted the [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](https://docs.seam.co/capability-guides/thermostats). Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints).", + "description": "Simulates having adjusted the [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](/capability-guides/thermostats). Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints).", "operationId": "thermostatsSimulateHvacModeAdjustedPost", "requestBody": { "content": { @@ -67695,12 +67695,12 @@ { "properties": { "cooling_set_point_celsius": { - "description": "Cooling [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `cooling_set_point_celsius` or `cooling_set_point_fahrenheit`.", + "description": "Cooling [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `cooling_set_point_celsius` or `cooling_set_point_fahrenheit`.", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Cooling [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `cooling_set_point_fahrenheit` or `cooling_set_point_celsius`.", + "description": "Cooling [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `cooling_set_point_fahrenheit` or `cooling_set_point_celsius`.", "format": "float", "type": "number" }, @@ -67731,12 +67731,12 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `heating_set_point_celsius` or `heating_set_point_fahrenheit`.", + "description": "Heating [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `heating_set_point_celsius` or `heating_set_point_fahrenheit`.", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `heating_set_point_fahrenheit` or `heating_set_point_celsius`.", + "description": "Heating [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `heating_set_point_fahrenheit` or `heating_set_point_celsius`.", "format": "float", "type": "number" }, @@ -67757,12 +67757,12 @@ { "properties": { "cooling_set_point_celsius": { - "description": "Cooling [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `cooling_set_point_celsius` or `cooling_set_point_fahrenheit`.", + "description": "Cooling [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `cooling_set_point_celsius` or `cooling_set_point_fahrenheit`.", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Cooling [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `cooling_set_point_fahrenheit` or `cooling_set_point_celsius`.", + "description": "Cooling [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `cooling_set_point_fahrenheit` or `cooling_set_point_celsius`.", "format": "float", "type": "number" }, @@ -67772,12 +67772,12 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `heating_set_point_celsius` or `heating_set_point_fahrenheit`.", + "description": "Heating [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `heating_set_point_celsius` or `heating_set_point_fahrenheit`.", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `heating_set_point_fahrenheit` or `heating_set_point_celsius`.", + "description": "Heating [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `heating_set_point_fahrenheit` or `heating_set_point_celsius`.", "format": "float", "type": "number" }, @@ -67882,7 +67882,7 @@ }, "/thermostats/simulate/temperature_reached": { "post": { - "description": "Simulates a [thermostat](https://docs.seam.co/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints).", + "description": "Simulates a [thermostat](/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints).", "operationId": "thermostatsSimulateTemperatureReachedPost", "requestBody": { "content": { @@ -67995,7 +67995,7 @@ }, "/thermostats/update_climate_preset": { "patch": { - "description": "Updates a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Updates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsUpdateClimatePresetPatch", "requestBody": { "content": { @@ -68003,7 +68003,7 @@ "schema": { "properties": { "climate_preset_key": { - "description": "Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "climate_preset_mode": { @@ -68019,12 +68019,12 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, @@ -68061,7 +68061,7 @@ "type": "object" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -68070,17 +68070,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -68092,13 +68092,13 @@ }, "manual_override_allowed": { "deprecated": true, - "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean", "x-deprecated": "Use 'thermostat_schedule.is_override_allowed'" }, "name": { "default": null, - "description": "User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "nullable": true, "type": "string" } @@ -68164,7 +68164,7 @@ "x-title": "Update a Climate Preset" }, "post": { - "description": "Updates a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", + "description": "Updates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats).", "operationId": "thermostatsUpdateClimatePresetPost", "requestBody": { "content": { @@ -68172,7 +68172,7 @@ "schema": { "properties": { "climate_preset_key": { - "description": "Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "climate_preset_mode": { @@ -68188,12 +68188,12 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, @@ -68230,7 +68230,7 @@ "type": "object" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -68239,17 +68239,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -68261,13 +68261,13 @@ }, "manual_override_allowed": { "deprecated": true, - "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean", "x-deprecated": "Use 'thermostat_schedule.is_override_allowed'" }, "name": { "default": null, - "description": "User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", "nullable": true, "type": "string" } @@ -68566,7 +68566,7 @@ }, "/user_identities/add_acs_user": { "post": { - "description": "Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).\n\nYou must specify either `user_identity_id` or `user_identity_key` to identify the user identity.\n\nIf `user_identity_key` is provided, but the user identity doesn't exist, a new user identity will be created automatically using information from the ACS user.", + "description": "Adds a specified [access system user](/low-level-apis/access-systems/user-management) to a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).\n\nYou must specify either `user_identity_id` or `user_identity_key` to identify the user identity.\n\nIf `user_identity_key` is provided, but the user identity doesn't exist, a new user identity will be created automatically using information from the ACS user.", "operationId": "userIdentitiesAddAcsUserPost", "requestBody": { "content": { @@ -68676,7 +68676,7 @@ ] }, "put": { - "description": "Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).\n\nYou must specify either `user_identity_id` or `user_identity_key` to identify the user identity.\n\nIf `user_identity_key` is provided, but the user identity doesn't exist, a new user identity will be created automatically using information from the ACS user.", + "description": "Adds a specified [access system user](/low-level-apis/access-systems/user-management) to a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).\n\nYou must specify either `user_identity_id` or `user_identity_key` to identify the user identity.\n\nIf `user_identity_key` is provided, but the user identity doesn't exist, a new user identity will be created automatically using information from the ACS user.", "operationId": "userIdentitiesAddAcsUserPut", "requestBody": { "content": { @@ -68757,7 +68757,7 @@ }, "/user_identities/create": { "post": { - "description": "Creates a new [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Creates a new [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesCreatePost", "requestBody": { "content": { @@ -68887,7 +68887,7 @@ }, "/user_identities/delete": { "delete": { - "description": "Deletes a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This deletes the user identity and all associated resources, including any [credentials](https://docs.seam.co/api/acs/credentials/object), [acs users](https://docs.seam.co/api/acs/users/object) and [client sessions](https://docs.seam.co/api/client_sessions/object).", + "description": "Deletes a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This deletes the user identity and all associated resources, including any [credentials](/api/acs/credentials/object), [acs users](/api/acs/users/object) and [client sessions](/api/client_sessions/object).", "operationId": "userIdentitiesDeleteDelete", "parameters": [ { @@ -68950,7 +68950,7 @@ "x-title": "Delete a User Identity" }, "post": { - "description": "Deletes a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This deletes the user identity and all associated resources, including any [credentials](https://docs.seam.co/api/acs/credentials/object), [acs users](https://docs.seam.co/api/acs/users/object) and [client sessions](https://docs.seam.co/api/client_sessions/object).", + "description": "Deletes a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This deletes the user identity and all associated resources, including any [credentials](/api/acs/credentials/object), [acs users](/api/acs/users/object) and [client sessions](/api/client_sessions/object).", "operationId": "userIdentitiesDeletePost", "requestBody": { "content": { @@ -69053,7 +69053,7 @@ }, "/user_identities/generate_instant_key": { "post": { - "description": "Generates a new [instant key](https://docs.seam.co/capability-guides/instant-keys) for a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Generates a new [instant key](/capability-guides/instant-keys) for a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesGenerateInstantKeyPost", "requestBody": { "content": { @@ -69170,7 +69170,7 @@ }, "/user_identities/get": { "get": { - "description": "Returns a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesGetGet", "responses": { "200": { @@ -69229,7 +69229,7 @@ "x-title": "Get a User Identity" }, "post": { - "description": "Returns a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesGetPost", "requestBody": { "content": { @@ -69354,7 +69354,7 @@ }, "/user_identities/grant_access_to_device": { "post": { - "description": "Grants a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) access to a specified [device](https://docs.seam.co/core-concepts/devices).", + "description": "Grants a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) access to a specified [device](/core-concepts/devices).", "operationId": "userIdentitiesGrantAccessToDevicePost", "requestBody": { "content": { @@ -69461,7 +69461,7 @@ ] }, "put": { - "description": "Grants a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) access to a specified [device](https://docs.seam.co/core-concepts/devices).", + "description": "Grants a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) access to a specified [device](/core-concepts/devices).", "operationId": "userIdentitiesGrantAccessToDevicePut", "requestBody": { "content": { @@ -69539,7 +69539,7 @@ }, "/user_identities/list": { "get": { - "description": "Returns a list of all [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a list of all [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesListGet", "parameters": [ { @@ -69665,7 +69665,7 @@ "x-title": "List User Identities" }, "post": { - "description": "Returns a list of all [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a list of all [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesListPost", "requestBody": { "content": { @@ -69808,7 +69808,7 @@ }, "/user_identities/list_accessible_devices": { "get": { - "description": "Returns a list of all [devices](https://docs.seam.co/core-concepts/devices) associated with a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes devices derived from the access grants assigned to the user identity and devices directly linked to the user identity.", + "description": "Returns a list of all [devices](/core-concepts/devices) associated with a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes devices derived from the access grants assigned to the user identity and devices directly linked to the user identity.", "operationId": "userIdentitiesListAccessibleDevicesGet", "parameters": [ { @@ -69888,7 +69888,7 @@ "x-title": "List Accessible Devices for a User Identity" }, "post": { - "description": "Returns a list of all [devices](https://docs.seam.co/core-concepts/devices) associated with a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes devices derived from the access grants assigned to the user identity and devices directly linked to the user identity.", + "description": "Returns a list of all [devices](/core-concepts/devices) associated with a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes devices derived from the access grants assigned to the user identity and devices directly linked to the user identity.", "operationId": "userIdentitiesListAccessibleDevicesPost", "requestBody": { "content": { @@ -70007,7 +70007,7 @@ }, "/user_identities/list_accessible_entrances": { "get": { - "description": "Returns a list of all [ACS entrances](https://docs.seam.co/api/acs/entrances/object) accessible to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes entrances derived from the access grants assigned to the user identity and entrances accessible through ACS users linked to the user identity.", + "description": "Returns a list of all [ACS entrances](/api/acs/entrances/object) accessible to a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes entrances derived from the access grants assigned to the user identity and entrances accessible through ACS users linked to the user identity.", "operationId": "userIdentitiesListAccessibleEntrancesGet", "parameters": [ { @@ -70081,7 +70081,7 @@ "x-title": "List Accessible Entrances for a User Identity" }, "post": { - "description": "Returns a list of all [ACS entrances](https://docs.seam.co/api/acs/entrances/object) accessible to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes entrances derived from the access grants assigned to the user identity and entrances accessible through ACS users linked to the user identity.", + "description": "Returns a list of all [ACS entrances](/api/acs/entrances/object) accessible to a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes entrances derived from the access grants assigned to the user identity and entrances accessible through ACS users linked to the user identity.", "operationId": "userIdentitiesListAccessibleEntrancesPost", "requestBody": { "content": { @@ -70162,7 +70162,7 @@ }, "/user_identities/list_acs_systems": { "get": { - "description": "Returns a list of all [access systems](https://docs.seam.co/low-level-apis/access-systems) associated with a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a list of all [access systems](/low-level-apis/access-systems) associated with a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesListAcsSystemsGet", "parameters": [ { @@ -70236,7 +70236,7 @@ "x-title": "List ACS Systems Associated with a User Identity" }, "post": { - "description": "Returns a list of all [access systems](https://docs.seam.co/low-level-apis/access-systems) associated with a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a list of all [access systems](/low-level-apis/access-systems) associated with a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesListAcsSystemsPost", "requestBody": { "content": { @@ -70349,7 +70349,7 @@ }, "/user_identities/list_acs_users": { "get": { - "description": "Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management) assigned to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a list of all [access system users](/low-level-apis/access-systems/user-management) assigned to a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesListAcsUsersGet", "parameters": [ { @@ -70420,7 +70420,7 @@ "x-title": "List ACS Users Associated with a User Identity" }, "post": { - "description": "Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management) assigned to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a list of all [access system users](/low-level-apis/access-systems/user-management) assigned to a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesListAcsUsersPost", "requestBody": { "content": { @@ -70530,7 +70530,7 @@ }, "/user_identities/remove_acs_user": { "delete": { - "description": "Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Removes a specified [access system user](/low-level-apis/access-systems/user-management) from a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesRemoveAcsUserDelete", "parameters": [ { @@ -70603,7 +70603,7 @@ "x-title": "Remove an ACS User from a User Identity" }, "post": { - "description": "Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Removes a specified [access system user](/low-level-apis/access-systems/user-management) from a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesRemoveAcsUserPost", "requestBody": { "content": { @@ -70712,7 +70712,7 @@ }, "/user_identities/revoke_access_to_device": { "delete": { - "description": "Revokes access to a specified [device](https://docs.seam.co/core-concepts/devices) from a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Revokes access to a specified [device](/core-concepts/devices) from a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesRevokeAccessToDeviceDelete", "parameters": [ { @@ -70785,7 +70785,7 @@ "x-title": "Revoke Access to a Device from a User Identity" }, "post": { - "description": "Revokes access to a specified [device](https://docs.seam.co/core-concepts/devices) from a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Revokes access to a specified [device](/core-concepts/devices) from a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesRevokeAccessToDevicePost", "requestBody": { "content": { @@ -70894,7 +70894,7 @@ }, "/user_identities/unmanaged/get": { "get": { - "description": "Returns a specified unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", + "description": "Returns a specified unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", "operationId": "userIdentitiesUnmanagedGetGet", "parameters": [ { @@ -71143,7 +71143,7 @@ "x-title": "Get an Unmanaged User Identity" }, "post": { - "description": "Returns a specified unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", + "description": "Returns a specified unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", "operationId": "userIdentitiesUnmanagedGetPost", "requestBody": { "content": { @@ -71398,7 +71398,7 @@ }, "/user_identities/unmanaged/list": { "get": { - "description": "Returns a list of all unmanaged [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", + "description": "Returns a list of all unmanaged [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", "operationId": "userIdentitiesUnmanagedListGet", "parameters": [ { @@ -71684,7 +71684,7 @@ "x-title": "List Unmanaged User Identities" }, "post": { - "description": "Returns a list of all unmanaged [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", + "description": "Returns a list of all unmanaged [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", "operationId": "userIdentitiesUnmanagedListPost", "requestBody": { "content": { @@ -71962,7 +71962,7 @@ }, "/user_identities/unmanaged/update": { "patch": { - "description": "Updates an unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed.\n\nThis endpoint can only be used to convert unmanaged user identities to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed user identities back to unmanaged.", + "description": "Updates an unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed.\n\nThis endpoint can only be used to convert unmanaged user identities to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed user identities back to unmanaged.", "operationId": "userIdentitiesUnmanagedUpdatePatch", "requestBody": { "content": { @@ -72048,7 +72048,7 @@ "x-title": "Update an Unmanaged User Identity" }, "post": { - "description": "Updates an unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed.\n\nThis endpoint can only be used to convert unmanaged user identities to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed user identities back to unmanaged.", + "description": "Updates an unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed.\n\nThis endpoint can only be used to convert unmanaged user identities to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed user identities back to unmanaged.", "operationId": "userIdentitiesUnmanagedUpdatePost", "requestBody": { "content": { @@ -72134,7 +72134,7 @@ }, "/user_identities/update": { "patch": { - "description": "Updates a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Updates a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesUpdatePatch", "requestBody": { "content": { @@ -72227,7 +72227,7 @@ "x-title": "Update a User Identity" }, "post": { - "description": "Updates a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Updates a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesUpdatePost", "requestBody": { "content": { @@ -72353,7 +72353,7 @@ }, "/webhooks/create": { "post": { - "description": "Creates a new [webhook](https://docs.seam.co/developer-tools/webhooks).", + "description": "Creates a new [webhook](/developer-tools/webhooks).", "operationId": "webhooksCreatePost", "requestBody": { "content": { @@ -72470,7 +72470,7 @@ }, "/webhooks/delete": { "delete": { - "description": "Deletes a specified [webhook](https://docs.seam.co/developer-tools/webhooks).", + "description": "Deletes a specified [webhook](/developer-tools/webhooks).", "operationId": "webhooksDeleteDelete", "parameters": [ { @@ -72532,7 +72532,7 @@ "x-title": "Delete a Webhook" }, "post": { - "description": "Deletes a specified [webhook](https://docs.seam.co/developer-tools/webhooks).", + "description": "Deletes a specified [webhook](/developer-tools/webhooks).", "operationId": "webhooksDeletePost", "requestBody": { "content": { @@ -72634,7 +72634,7 @@ }, "/webhooks/get": { "get": { - "description": "Gets a specified [webhook](https://docs.seam.co/developer-tools/webhooks).", + "description": "Gets a specified [webhook](/developer-tools/webhooks).", "operationId": "webhooksGetGet", "parameters": [ { @@ -72701,7 +72701,7 @@ "x-title": "Get a Webhook" }, "post": { - "description": "Gets a specified [webhook](https://docs.seam.co/developer-tools/webhooks).", + "description": "Gets a specified [webhook](/developer-tools/webhooks).", "operationId": "webhooksGetPost", "requestBody": { "content": { @@ -72807,7 +72807,7 @@ }, "/webhooks/list": { "get": { - "description": "Returns a list of all [webhooks](https://docs.seam.co/developer-tools/webhooks).", + "description": "Returns a list of all [webhooks](/developer-tools/webhooks).", "operationId": "webhooksListGet", "responses": { "200": { @@ -72866,7 +72866,7 @@ "x-title": "List Webhooks" }, "post": { - "description": "Returns a list of all [webhooks](https://docs.seam.co/developer-tools/webhooks).", + "description": "Returns a list of all [webhooks](/developer-tools/webhooks).", "operationId": "webhooksListPost", "responses": { "200": { @@ -72957,7 +72957,7 @@ }, "/webhooks/update": { "post": { - "description": "Updates a specified [webhook](https://docs.seam.co/developer-tools/webhooks).", + "description": "Updates a specified [webhook](/developer-tools/webhooks).", "operationId": "webhooksUpdatePost", "requestBody": { "content": { @@ -73065,7 +73065,7 @@ ] }, "put": { - "description": "Updates a specified [webhook](https://docs.seam.co/developer-tools/webhooks).", + "description": "Updates a specified [webhook](/developer-tools/webhooks).", "operationId": "webhooksUpdatePut", "requestBody": { "content": { @@ -73144,7 +73144,7 @@ }, "/workspaces/create": { "post": { - "description": "Creates a new [workspace](https://docs.seam.co/core-concepts/workspaces).", + "description": "Creates a new [workspace](/core-concepts/workspaces).", "operationId": "workspacesCreatePost", "requestBody": { "content": { @@ -73163,10 +73163,10 @@ "x-deprecated": "Use `company_name` instead." }, "connect_webview_customization": { - "description": "[Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) customizations for the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "[Connect Webview](/core-concepts/connect-webviews) customizations for the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "properties": { "logo_shape": { - "description": "Logo shape for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Logo shape for [Connect Webviews](/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "enum": [ "circle", "square" @@ -73175,17 +73175,17 @@ "type": "string" }, "primary_button_color": { - "description": "Primary button color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button color for [Connect Webviews](/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }, "primary_button_text_color": { - "description": "Primary button text color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button text color for [Connect Webviews](/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }, "success_message": { - "description": "Success message for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Success message for [Connect Webviews](/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" } @@ -73194,7 +73194,7 @@ }, "is_sandbox": { "default": false, - "description": "Indicates whether the new workspace is a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", + "description": "Indicates whether the new workspace is a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", "type": "boolean" }, "name": { @@ -73325,7 +73325,7 @@ }, "/workspaces/get": { "get": { - "description": "Returns the [workspace](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.", + "description": "Returns the [workspace](/core-concepts/workspaces) associated with the authentication value.", "operationId": "workspacesGetGet", "responses": { "200": { @@ -73387,7 +73387,7 @@ "x-title": "Get a Workspace" }, "post": { - "description": "Returns the [workspace](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.", + "description": "Returns the [workspace](/core-concepts/workspaces) associated with the authentication value.", "operationId": "workspacesGetPost", "responses": { "200": { @@ -73481,7 +73481,7 @@ }, "/workspaces/list": { "get": { - "description": "Returns a list of [workspaces](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.", + "description": "Returns a list of [workspaces](/core-concepts/workspaces) associated with the authentication value.", "operationId": "workspacesListGet", "responses": { "200": { @@ -73549,7 +73549,7 @@ "x-title": "List Workspaces" }, "post": { - "description": "Returns a list of [workspaces](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.", + "description": "Returns a list of [workspaces](/core-concepts/workspaces) associated with the authentication value.", "operationId": "workspacesListPost", "responses": { "200": { @@ -73649,7 +73649,7 @@ }, "/workspaces/reset_sandbox": { "post": { - "description": "Resets the [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) associated with the authentication value. Note that this endpoint is only available for sandbox workspaces.", + "description": "Resets the [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces) associated with the authentication value. Note that this endpoint is only available for sandbox workspaces.", "operationId": "workspacesResetSandboxPost", "responses": { "200": { @@ -73785,7 +73785,7 @@ }, "/workspaces/update": { "patch": { - "description": "Updates the [workspace](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.", + "description": "Updates the [workspace](/core-concepts/workspaces) associated with the authentication value.", "operationId": "workspacesUpdatePatch", "requestBody": { "content": { @@ -73797,10 +73797,10 @@ "type": "string" }, "connect_webview_customization": { - "description": "[Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) customizations for the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "[Connect Webview](/core-concepts/connect-webviews) customizations for the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "properties": { "logo_shape": { - "description": "Logo shape for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Logo shape for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "enum": [ "circle", "square" @@ -73809,17 +73809,17 @@ "type": "string" }, "primary_button_color": { - "description": "Primary button color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }, "primary_button_text_color": { - "description": "Primary button text color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button text color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }, "success_message": { - "description": "Success message for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Success message for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" } @@ -73883,7 +73883,7 @@ "x-title": "Update a Workspace" }, "post": { - "description": "Updates the [workspace](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.", + "description": "Updates the [workspace](/core-concepts/workspaces) associated with the authentication value.", "operationId": "workspacesUpdatePost", "requestBody": { "content": { @@ -73895,10 +73895,10 @@ "type": "string" }, "connect_webview_customization": { - "description": "[Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) customizations for the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "[Connect Webview](/core-concepts/connect-webviews) customizations for the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "properties": { "logo_shape": { - "description": "Logo shape for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Logo shape for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "enum": [ "circle", "square" @@ -73907,17 +73907,17 @@ "type": "string" }, "primary_button_color": { - "description": "Primary button color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }, "primary_button_text_color": { - "description": "Primary button text color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button text color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }, "success_message": { - "description": "Success message for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Success message for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" } From 9e47d690bab9507aba885cb3938729fd3408c33e Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 7 Jul 2026 02:51:45 +0000 Subject: [PATCH 6/6] Revert "feat: normalize generated docs links to root-relative and heal anchors" This reverts commit dcf644d9d2c8869902feb290af33261b4c8f6c8b. --- mintlify-codegen/lib/canonicalize-links.ts | 90 +- mintlify-codegen/lib/postprocess.ts | 59 +- mintlify-docs/api/access_codes/errors.mdx | 6 +- mintlify-docs/api/access_codes/events.mdx | 34 +- mintlify-docs/api/access_codes/object.mdx | 14 +- .../api/access_codes/simulate/object.mdx | 2 +- .../api/access_codes/unmanaged/errors.mdx | 6 +- .../api/access_codes/unmanaged/events.mdx | 8 +- .../api/access_codes/unmanaged/object.mdx | 8 +- mintlify-docs/api/access_grants/errors.mdx | 4 +- mintlify-docs/api/access_grants/events.mdx | 4 +- mintlify-docs/api/access_grants/object.mdx | 4 +- mintlify-docs/api/access_methods/errors.mdx | 4 +- mintlify-docs/api/access_methods/object.mdx | 4 +- .../api/acs/access_groups/errors.mdx | 2 +- .../api/acs/access_groups/object.mdx | 4 +- mintlify-docs/api/acs/credentials/errors.mdx | 12 +- mintlify-docs/api/acs/credentials/events.mdx | 8 +- mintlify-docs/api/acs/credentials/object.mdx | 56 +- mintlify-docs/api/acs/encoders/events.mdx | 4 +- mintlify-docs/api/acs/encoders/object.mdx | 20 +- .../api/acs/encoders/simulate/object.mdx | 8 +- mintlify-docs/api/acs/entrances/events.mdx | 4 +- mintlify-docs/api/acs/entrances/object.mdx | 38 +- mintlify-docs/api/acs/object.mdx | 26 +- mintlify-docs/api/acs/systems/errors.mdx | 26 +- mintlify-docs/api/acs/systems/events.mdx | 6 +- mintlify-docs/api/acs/systems/object.mdx | 44 +- mintlify-docs/api/acs/users/errors.mdx | 20 +- mintlify-docs/api/acs/users/events.mdx | 4 +- mintlify-docs/api/acs/users/object.mdx | 46 +- mintlify-docs/api/action_attempts/object.mdx | 4 +- mintlify-docs/api/client_sessions/object.mdx | 24 +- mintlify-docs/api/connect_webviews/object.mdx | 12 +- .../api/connected_accounts/errors.mdx | 4 +- .../api/connected_accounts/object.mdx | 6 +- .../connected_accounts/simulate/object.mdx | 2 +- mintlify-docs/api/devices/errors.mdx | 8 +- mintlify-docs/api/devices/events.mdx | 6 +- mintlify-docs/api/devices/object.mdx | 240 +-- mintlify-docs/api/devices/simulate/object.mdx | 6 +- .../api/devices/unmanaged/errors.mdx | 8 +- .../api/devices/unmanaged/events.mdx | 6 +- .../api/devices/unmanaged/object.mdx | 6 +- mintlify-docs/api/locks/errors.mdx | 2 +- mintlify-docs/api/locks/events.mdx | 8 +- mintlify-docs/api/locks/object.mdx | 34 +- mintlify-docs/api/locks/simulate/object.mdx | 4 +- .../noise_sensors/noise_thresholds/events.mdx | 2 +- .../noise_sensors/noise_thresholds/object.mdx | 4 +- mintlify-docs/api/noise_sensors/object.mdx | 2 +- .../api/noise_sensors/simulate/object.mdx | 2 +- mintlify-docs/api/phones/object.mdx | 2 +- mintlify-docs/api/phones/simulate/object.mdx | 2 +- mintlify-docs/api/thermostats/events.mdx | 24 +- mintlify-docs/api/thermostats/object.mdx | 186 +- .../api/thermostats/schedules/object.mdx | 22 +- .../api/thermostats/simulate/object.mdx | 4 +- mintlify-docs/api/user_identities/object.mdx | 2 +- .../api/user_identities/unmanaged/object.mdx | 6 +- mintlify-docs/api/webhooks/object.mdx | 8 +- mintlify-docs/api/workspaces/object.mdx | 22 +- mintlify-docs/openapi.json | 1890 ++++++++--------- 63 files changed, 1498 insertions(+), 1635 deletions(-) diff --git a/mintlify-codegen/lib/canonicalize-links.ts b/mintlify-codegen/lib/canonicalize-links.ts index 604c49472..6091cdc23 100644 --- a/mintlify-codegen/lib/canonicalize-links.ts +++ b/mintlify-codegen/lib/canonicalize-links.ts @@ -64,24 +64,18 @@ function splitAnchor(raw: string): { path: string; suffix: string } { * absolute `docs.seam.co/...` links, Markdown `](/...)` links, and JSX * `href="/..."` attributes; external links and non-redirected paths pass * through unchanged. - * - * Absolute `https://docs.seam.co/` links become root-relative - * `/` links — the convention used by the hand-written mintlify-docs - * content — so generated pages link consistently regardless of the form the - * upstream @seamapi/types descriptions use. */ export function canonicalizeLinks( text: string, redirects: Map, ): string { - // Absolute docs.seam.co links (the dominant form in @seamapi/types text): - // canonicalize and relativize. + // Absolute docs.seam.co links (the dominant form in @seamapi/types text). let out = text.replace( /https?:\/\/docs\.seam\.co(\/[^\s"')>\]]*)?/g, (_full, pathPart?: string) => { const { path, suffix } = splitAnchor(pathPart ?? '/') const canon = canonicalizePath(path, redirects) - return `${canon}${suffix}` + return `https://docs.seam.co${canon === '/' ? '' : canon}${suffix}` }, ) // Relative Markdown links: ](/path) @@ -100,86 +94,6 @@ export function canonicalizeLinks( return out } -/** Heading slug matching Mintlify's anchor generation: lowercased, backticks - * stripped, punctuation and spaces hyphenated (`connected_account.connected` - * -> `connected_account-connected`), hyphen runs collapsed. */ -export function headingSlug(heading: string): string { - return heading - .trim() - .toLowerCase() - .replace(/`/g, '') - .replace(/[^\w\s-]/g, '-') - .replace(/\s+/g, '-') - .replace(/-+/g, '-') - .replace(/^-|-$/g, '') -} - -/** Collect the anchors of an mdx page (frontmatter excluded): heading slugs - * (with any trailing GitBook-style inline `` marker stripped) plus every - * explicit `id="…"` attribute. */ -export function pageAnchors(content: string): Set { - const body = content.replace(/^---\n[\s\S]*?\n---/, '') - const slugs = new Set() - for (const m of body.matchAll(/^#{1,6}\s+(.+?)\s*$/gm)) { - const heading = (m[1] ?? '').replace(/]*>.*?<\/a>/g, '') - slugs.add(headingSlug(heading)) - } - for (const m of body.matchAll(/\bid="([^"]+)"/g)) { - if (m[1] != null) slugs.add(m[1]) - } - return slugs -} - -/** - * Heal anchors on internal Markdown links: upstream @seamapi/types - * descriptions still carry GitBook-era anchors (e.g. - * `#acs_system.errors.seam_bridge_disconnected`, or slugs GitBook truncated) - * that don't match Mintlify's heading slugs. For each `](/path#anchor)` link - * whose target page is known, in order: keep valid anchors, rewrite ones - * whose slugified/normalized/truncated form matches a real heading, rewrite a - * GitBook section that became a child page (`/access-codes#backup-access-codes` - * -> `/access-codes/backup-access-codes`), and finally drop what can't be - * resolved (linking to the page top beats a broken anchor). Unknown target - * pages pass through untouched. - */ -export function healAnchors( - text: string, - routeAnchors: Map>, -): string { - const normalize = (anchor: string): string => - anchor.replace(/^id-/, '').replace(/[.-]/g, '') - - return text.replace( - /\]\((\/[^)\s#]*)#([^)\s]+)\)/g, - (full, path: string, anchor: string) => { - const route = path.replace(/\/$/, '') || '/' - const anchors = routeAnchors.get(route) - if (anchors == null) return full - if (anchors.has(anchor)) return full - - const slugged = headingSlug(anchor) - if (anchors.has(slugged)) return `](${path}#${slugged})` - const normalized = [...anchors].find( - (a) => normalize(a) === normalize(anchor), - ) - if (normalized != null) return `](${path}#${normalized})` - // GitBook truncated long heading slugs; match on the prefix when unique. - const prefixed = [...anchors].filter((a) => a.startsWith(slugged)) - if (prefixed.length === 1) return `](${path}#${prefixed[0]})` - // A GitBook page section that became its own child page. - if (routeAnchors.has(`${route}/${anchor}`)) { - return `](${route}/${anchor})` - } - - // eslint-disable-next-line no-console - console.log( - ` Dropping unresolvable anchor #${anchor} on link to ${path}`, - ) - return `](${path})` - }, - ) -} - /** Canonicalize links across openapi.json and every API `.mdx` page. */ export async function canonicalizeGeneratedLinks( docsDir: string, diff --git a/mintlify-codegen/lib/postprocess.ts b/mintlify-codegen/lib/postprocess.ts index 30611fe65..059551ba6 100644 --- a/mintlify-codegen/lib/postprocess.ts +++ b/mintlify-codegen/lib/postprocess.ts @@ -1,18 +1,11 @@ /* eslint-disable no-console */ -import { readdir, readFile } from 'node:fs/promises' -import { join } from 'node:path' - import type Metalsmith from 'metalsmith' -import { - canonicalizeLinks, - healAnchors, - pageAnchors, -} from './canonicalize-links.js' +import { canonicalizeLinks } from './canonicalize-links.js' /** * Metalsmith plugin: canonicalize docs links in the generated output - * (openapi.json plus every API `.mdx` page). Guards against three classes of + * (openapi.json plus every API `.mdx` page). Guards against two classes of * upstream @seamapi/types regression: * 1. legacy `/latest` reappearing in `docs.seam.co/latest/...` links * (the site serves at the root; a `/latest/:path*` redirect handles old @@ -21,18 +14,13 @@ import { * still resolve in the browser but cost an extra hop and dodge anchor * validation. We rewrite them to their final canonical destination so * generated content links directly. See DOC-210. - * 3. GitBook-era anchors that don't match Mintlify's heading slugs — these - * are healed against the actual headings of the target page, or dropped - * when unresolvable. - * Absolute `https://docs.seam.co/...` links also become root-relative here, - * matching the hand-written content's link convention. * This is self-healing: every `npm run generate` re-applies it, so source * descriptions can lag without leaving stale links in the published docs. * * Runs after the docs-json plugin so the redirect map reflects the final * docs.json, and after layouts so it sees the rendered pages. */ -export const postprocess: Metalsmith.Plugin = async (files, metalsmith) => { +export const postprocess: Metalsmith.Plugin = (files) => { console.log('Canonicalizing docs links in generated output...') const docsJsonFile = files['docs.json'] @@ -45,11 +33,6 @@ export const postprocess: Metalsmith.Plugin = async (files, metalsmith) => { redirects.set(r.source, r.destination) } - const routeAnchors = await collectRouteAnchors( - metalsmith.destination(), - files, - ) - const targets = Object.keys(files).filter( (key) => key === 'openapi.json' || @@ -61,10 +44,7 @@ export const postprocess: Metalsmith.Plugin = async (files, metalsmith) => { const file = files[key] if (file == null) continue const content = file.contents.toString() - const replaced = healAnchors( - canonicalizeLinks(content, redirects), - routeAnchors, - ) + const replaced = canonicalizeLinks(content, redirects) if (replaced !== content) { file.contents = Buffer.from(replaced) count++ @@ -72,34 +52,3 @@ export const postprocess: Metalsmith.Plugin = async (files, metalsmith) => { } console.log(` Canonicalized links in ${count} generated file(s)`) } - -/** - * Map every site route to its page's heading anchors. Pages in the build take - * priority (the generated api tree); everything else is read from the - * destination tree on disk (the hand-written guides). - */ -async function collectRouteAnchors( - destination: string, - files: Metalsmith.Files, -): Promise>> { - const routeAnchors = new Map>() - - const routeFor = (relativePath: string): string => { - const route = `/${relativePath.replace(/\.mdx$/, '').replace(/\/index$/, '')}` - return route === '/index' ? '/' : route - } - - const entries = await readdir(destination, { recursive: true }) - for (const entry of entries) { - if (!entry.endsWith('.mdx') || entry.startsWith('node_modules')) continue - const content = await readFile(join(destination, entry), 'utf8') - routeAnchors.set(routeFor(entry), pageAnchors(content)) - } - - for (const [key, file] of Object.entries(files)) { - if (!key.endsWith('.mdx')) continue - routeAnchors.set(routeFor(key), pageAnchors(file.contents.toString())) - } - - return routeAnchors -} diff --git a/mintlify-docs/api/access_codes/errors.mdx b/mintlify-docs/api/access_codes/errors.mdx index aa19732da..baa7f1730 100644 --- a/mintlify-docs/api/access_codes/errors.mdx +++ b/mintlify-docs/api/access_codes/errors.mdx @@ -41,11 +41,11 @@ Each error is an object with the following shape: - Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). + Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). - Indicates that the error is a [connected account](/api/connected_accounts/object) error. + Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. @@ -152,7 +152,7 @@ Indicates that the account is disconnected. #### `bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). --- diff --git a/mintlify-docs/api/access_codes/events.mdx b/mintlify-docs/api/access_codes/events.mdx index 46ae3ecd5..646e3db5e 100644 --- a/mintlify-docs/api/access_codes/events.mdx +++ b/mintlify-docs/api/access_codes/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Access Code resource, with ## `access_code.created` -An [access code](/low-level-apis/smart-locks/access-codes) was created. +An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was created. @@ -72,7 +72,7 @@ An [access code](/low-level-apis/smart-locks/access-codes) was created. ## `access_code.changed` -An [access code](/low-level-apis/smart-locks/access-codes) was changed. +An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed. @@ -149,7 +149,7 @@ An [access code](/low-level-apis/smart-locks/access-codes) was changed. ## `access_code.name_changed` -The name of an [access code](/low-level-apis/smart-locks/access-codes) was changed on the device. +The name of an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed on the device. @@ -247,7 +247,7 @@ The name of an [access code](/low-level-apis/smart-locks/access-codes) was chang ## `access_code.code_changed` -The pin code of an [access code](/low-level-apis/smart-locks/access-codes) was changed on the device. +The pin code of an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed on the device. @@ -345,7 +345,7 @@ The pin code of an [access code](/low-level-apis/smart-locks/access-codes) was c ## `access_code.time_frame_changed` -The time frame of an [access code](/low-level-apis/smart-locks/access-codes) was changed on the device. +The time frame of an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed on the device. @@ -451,7 +451,7 @@ The time frame of an [access code](/low-level-apis/smart-locks/access-codes) was ## `access_code.mutations_requested` -Mutations were requested on an [access code](/low-level-apis/smart-locks/access-codes). This event fires at request time, before the change is confirmed on the device. +Mutations were requested on an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). This event fires at request time, before the change is confirmed on the device. @@ -523,7 +523,7 @@ Mutations were requested on an [access code](/low-level-apis/smart-locks/access- ## `access_code.scheduled_on_device` -An [access code](/low-level-apis/smart-locks/access-codes) was [scheduled natively](/low-level-apis/smart-locks/access-codes#native-scheduling) on a device. +An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was [scheduled natively](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) on a device. @@ -595,7 +595,7 @@ An [access code](/low-level-apis/smart-locks/access-codes) was [scheduled native ## `access_code.set_on_device` -An [access code](/low-level-apis/smart-locks/access-codes) was set on a device. +An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was set on a device. @@ -667,7 +667,7 @@ An [access code](/low-level-apis/smart-locks/access-codes) was set on a device. ## `access_code.removed_from_device` -An [access code](/low-level-apis/smart-locks/access-codes) was removed from a device. +An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was removed from a device. @@ -734,7 +734,7 @@ An [access code](/low-level-apis/smart-locks/access-codes) was removed from a de ## `access_code.delay_in_setting_on_device` -There was an unusually long delay in setting an [access code](/low-level-apis/smart-locks/access-codes) on a device. +There was an unusually long delay in setting an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) on a device. @@ -831,7 +831,7 @@ There was an unusually long delay in setting an [access code](/low-level-apis/sm ## `access_code.failed_to_set_on_device` -An [access code](/low-level-apis/smart-locks/access-codes) failed to be set on a device. +An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) failed to be set on a device. @@ -928,7 +928,7 @@ An [access code](/low-level-apis/smart-locks/access-codes) failed to be set on a ## `access_code.deleted` -An [access code](/low-level-apis/smart-locks/access-codes) was deleted. +An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was deleted. @@ -1000,7 +1000,7 @@ An [access code](/low-level-apis/smart-locks/access-codes) was deleted. ## `access_code.delay_in_removing_from_device` -There was an unusually long delay in removing an [access code](/low-level-apis/smart-locks/access-codes) from a device. +There was an unusually long delay in removing an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) from a device. @@ -1097,7 +1097,7 @@ There was an unusually long delay in removing an [access code](/low-level-apis/s ## `access_code.failed_to_remove_from_device` -An [access code](/low-level-apis/smart-locks/access-codes) failed to be removed from a device. +An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) failed to be removed from a device. @@ -1194,7 +1194,7 @@ An [access code](/low-level-apis/smart-locks/access-codes) failed to be removed ## `access_code.modified_external_to_seam` -An [access code](/low-level-apis/smart-locks/access-codes) was modified outside of Seam. +An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was modified outside of Seam. @@ -1261,7 +1261,7 @@ An [access code](/low-level-apis/smart-locks/access-codes) was modified outside ## `access_code.deleted_external_to_seam` -An [access code](/low-level-apis/smart-locks/access-codes) was deleted outside of Seam. +An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was deleted outside of Seam. @@ -1328,7 +1328,7 @@ An [access code](/low-level-apis/smart-locks/access-codes) was deleted outside o ## `access_code.backup_access_code_pulled` -A [backup access code](/low-level-apis/smart-locks/access-codes/backup-access-codes) was pulled from the backup access code pool and set on a device. +A [backup access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) was pulled from the backup access code pool and set on a device. diff --git a/mintlify-docs/api/access_codes/object.mdx b/mintlify-docs/api/access_codes/object.mdx index f327d42b1..3d207aebe 100644 --- a/mintlify-docs/api/access_codes/object.mdx +++ b/mintlify-docs/api/access_codes/object.mdx @@ -5,15 +5,15 @@ description: 'Learn how the access_code object represents a smart lock PIN code ## The access_code Object -Represents a smart lock [access code](/low-level-apis/smart-locks/access-codes). +Represents a smart lock [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). An access code is a code used for a keypad or pinpad device. Unlike physical keys, which can easily be lost or duplicated, PIN codes can be customized, tracked, and altered on the fly. Using the Seam Access Code API, you can easily generate access codes on the hundreds of door lock models with which we integrate. -Seam supports programming two types of access codes: [ongoing](/low-level-apis/smart-locks/access-codes#ongoing-access-codes) and [time-bound](/low-level-apis/smart-locks/access-codes#time-bound-access-codes). To differentiate between the two, refer to the `type` property of the access code. Ongoing codes display as `ongoing`, whereas time-bound codes are labeled `time_bound`. An ongoing access code is active, until it has been removed from the device. To specify an ongoing access code, leave both `starts_at` and `ends_at` empty. A time-bound access code will be programmed at the `starts_at` time and removed at the `ends_at` time. +Seam supports programming two types of access codes: [ongoing](https://docs.seam.co/low-level-apis/smart-locks/access-codes#ongoing-access-codes) and [time-bound](https://docs.seam.co/low-level-apis/smart-locks/access-codes#time-bound-access-codes). To differentiate between the two, refer to the `type` property of the access code. Ongoing codes display as `ongoing`, whereas time-bound codes are labeled `time_bound`. An ongoing access code is active, until it has been removed from the device. To specify an ongoing access code, leave both `starts_at` and `ends_at` empty. A time-bound access code will be programmed at the `starts_at` time and removed at the `ends_at` time. -In addition, for certain devices, Seam also supports [offline access codes](/low-level-apis/smart-locks/access-codes#offline-access-codes). Offline access (PIN) codes are designed for door locks that might not always maintain an internet connection. For this type of access code, the device manufacturer uses encryption keys (tokens) to create server-based registries of algorithmically-generated offline PIN codes. Because the tokens remain synchronized with the managed devices, the locks do not require an active internet connection—and you do not need to be near the locks—to create an offline access code. Then, owners or managers can share these offline codes with users through a variety of mechanisms, such as messaging applications. That is, lock users do not need to install a smartphone application to receive an offline access code. +In addition, for certain devices, Seam also supports [offline access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes#offline-access-codes). Offline access (PIN) codes are designed for door locks that might not always maintain an internet connection. For this type of access code, the device manufacturer uses encryption keys (tokens) to create server-based registries of algorithmically-generated offline PIN codes. Because the tokens remain synchronized with the managed devices, the locks do not require an active internet connection—and you do not need to be near the locks—to create an offline access code. Then, owners or managers can share these offline codes with users through a variety of mechanisms, such as messaging applications. That is, lock users do not need to install a smartphone application to receive an offline access code. -For granting a person access to a space, [Access Grants](/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes. +For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes. @@ -190,7 +190,7 @@ For granting a person access to a space, [Access Grants](/use-cases/granting-acc - Errors associated with the [access code](/low-level-apis/smart-locks/access-codes). + Errors associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). @@ -242,7 +242,7 @@ For granting a person access to a space, [Access Grants](/use-cases/granting-acc - Current status of the access code within the operational lifecycle. Values are `setting`, a transitional phase that indicates that the code is being configured or activated; `set`, which indicates that the code is active and operational; `unset`, which indicates a deactivated or unused state, either before activation or after deliberate deactivation; `removing`, which indicates a transitional period in which the code is being deleted or made inactive; and `unknown`, which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. See also [Lifecycle of Access Codes](/low-level-apis/smart-locks/access-codes/lifecycle-of-access-codes). + Current status of the access code within the operational lifecycle. Values are `setting`, a transitional phase that indicates that the code is being configured or activated; `set`, which indicates that the code is active and operational; `unset`, which indicates a deactivated or unused state, either before activation or after deliberate deactivation; `removing`, which indicates a transitional period in which the code is being deleted or made inactive; and `unknown`, which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. See also [Lifecycle of Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/lifecycle-of-access-codes). @@ -250,7 +250,7 @@ For granting a person access to a space, [Access Grants](/use-cases/granting-acc - Warnings associated with the [access code](/low-level-apis/smart-locks/access-codes). + Warnings associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). diff --git a/mintlify-docs/api/access_codes/simulate/object.mdx b/mintlify-docs/api/access_codes/simulate/object.mdx index 76cca742e..8932962ae 100644 --- a/mintlify-docs/api/access_codes/simulate/object.mdx +++ b/mintlify-docs/api/access_codes/simulate/object.mdx @@ -7,4 +7,4 @@ description: 'Use the access code simulation endpoints to create unmanaged acces [**`/access_codes/simulate/create_unmanaged_access_code`**](./create_unmanaged_access_code) -Simulates the creation of an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). +Simulates the creation of an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/access_codes/unmanaged/errors.mdx b/mintlify-docs/api/access_codes/unmanaged/errors.mdx index 71920c771..571f2e68e 100644 --- a/mintlify-docs/api/access_codes/unmanaged/errors.mdx +++ b/mintlify-docs/api/access_codes/unmanaged/errors.mdx @@ -41,11 +41,11 @@ Each error is an object with the following shape: - Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). + Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). - Indicates that the error is a [connected account](/api/connected_accounts/object) error. + Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. @@ -152,7 +152,7 @@ Indicates that the account is disconnected. #### `bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). --- diff --git a/mintlify-docs/api/access_codes/unmanaged/events.mdx b/mintlify-docs/api/access_codes/unmanaged/events.mdx index 7a7e5f150..44d1e1897 100644 --- a/mintlify-docs/api/access_codes/unmanaged/events.mdx +++ b/mintlify-docs/api/access_codes/unmanaged/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Unmanaged Access Codes reso ## `access_code.unmanaged.converted_to_managed` -An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was converted successfully to a managed access code. +An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was converted successfully to a managed access code. @@ -72,7 +72,7 @@ An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-ex ## `access_code.unmanaged.failed_to_convert_to_managed` -An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) failed to be converted to a managed access code. +An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) failed to be converted to a managed access code. @@ -169,7 +169,7 @@ An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-ex ## `access_code.unmanaged.created` -An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was created on a device. +An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was created on a device. @@ -236,7 +236,7 @@ An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-ex ## `access_code.unmanaged.removed` -An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was removed from a device. +An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was removed from a device. diff --git a/mintlify-docs/api/access_codes/unmanaged/object.mdx b/mintlify-docs/api/access_codes/unmanaged/object.mdx index c7ef3d2d6..6658e6362 100644 --- a/mintlify-docs/api/access_codes/unmanaged/object.mdx +++ b/mintlify-docs/api/access_codes/unmanaged/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the unmanaged_access_code object represents an existing ## The unmanaged_access_code Object -Represents an [unmanaged smart lock access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes). +Represents an [unmanaged smart lock access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes). An access code is a code used for a keypad or pinpad device. Unlike physical keys, which can easily be lost or duplicated, PIN codes can be customized, tracked, and altered on the fly. @@ -15,7 +15,7 @@ Prior to using Seam to manage your devices, you may have used another lock manag Not all providers support unmanaged access codes. The following providers do not support unmanaged access codes: -- [Kwikset](/device-and-system-integration-guides/kwikset-locks) +- [Kwikset](https://docs.seam.co/device-and-system-integration-guides/kwikset-locks) @@ -102,7 +102,7 @@ Not all providers support unmanaged access codes. The following providers do not - Errors associated with the [access code](/low-level-apis/smart-locks/access-codes). + Errors associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). @@ -126,7 +126,7 @@ Not all providers support unmanaged access codes. The following providers do not - Warnings associated with the [access code](/low-level-apis/smart-locks/access-codes). + Warnings associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). diff --git a/mintlify-docs/api/access_grants/errors.mdx b/mintlify-docs/api/access_grants/errors.mdx index 4af32911b..113fd58c3 100644 --- a/mintlify-docs/api/access_grants/errors.mdx +++ b/mintlify-docs/api/access_grants/errors.mdx @@ -100,7 +100,7 @@ Each warning is an object with the following shape: ### `being_deleted` -Indicates that the [access grant](/use-cases/granting-access) is being deleted. +Indicates that the [access grant](https://docs.seam.co/use-cases/granting-access) is being deleted. --- @@ -136,6 +136,6 @@ Indicates that the access grant should have access to more locations than it cur ### `updating_access_times` -Indicates that the access times for this [access grant](/use-cases/granting-access) are being updated. +Indicates that the access times for this [access grant](https://docs.seam.co/use-cases/granting-access) are being updated. --- diff --git a/mintlify-docs/api/access_grants/events.mdx b/mintlify-docs/api/access_grants/events.mdx index 8dfd6aa08..386c09a49 100644 --- a/mintlify-docs/api/access_grants/events.mdx +++ b/mintlify-docs/api/access_grants/events.mdx @@ -171,7 +171,7 @@ Access requested as part of an Access Grant to a particular door was successfull - ID of the affected [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + ID of the affected [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). @@ -223,7 +223,7 @@ Access to a particular door that was requested as part of an Access Grant was lo - ID of the affected [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + ID of the affected [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). diff --git a/mintlify-docs/api/access_grants/object.mdx b/mintlify-docs/api/access_grants/object.mdx index 9c5fa498c..e1097ecbf 100644 --- a/mintlify-docs/api/access_grants/object.mdx +++ b/mintlify-docs/api/access_grants/object.mdx @@ -96,7 +96,7 @@ Represents an Access Grant. Access Grants enable you to grant a user identity ac - Errors associated with the [access grant](/use-cases/granting-access). + Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access). @@ -136,7 +136,7 @@ Represents an Access Grant. Access Grants enable you to grant a user identity ac - Warnings associated with the [access grant](/use-cases/granting-access). + Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access). diff --git a/mintlify-docs/api/access_methods/errors.mdx b/mintlify-docs/api/access_methods/errors.mdx index 71a4f446e..1f1d1313f 100644 --- a/mintlify-docs/api/access_methods/errors.mdx +++ b/mintlify-docs/api/access_methods/errors.mdx @@ -39,7 +39,7 @@ Each warning is an object with the following shape: ### `being_deleted` -Indicates that the [access method](/use-cases/granting-access/creating-an-access-grant) is being deleted. +Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted. --- @@ -51,6 +51,6 @@ Indicates that all attempts to create an access code on this device before the s ### `updating_access_times` -Indicates that the access times for this [access method](/use-cases/granting-access/creating-an-access-grant) are being updated. +Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated. --- diff --git a/mintlify-docs/api/access_methods/object.mdx b/mintlify-docs/api/access_methods/object.mdx index c263701b0..fcf18a07d 100644 --- a/mintlify-docs/api/access_methods/object.mdx +++ b/mintlify-docs/api/access_methods/object.mdx @@ -121,11 +121,11 @@ Represents an access method for an Access Grant. Access methods describe the mod - Pending mutations for the [access method](/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress. + Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress. - Warnings associated with the [access method](/use-cases/granting-access/creating-an-access-grant). + Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). diff --git a/mintlify-docs/api/acs/access_groups/errors.mdx b/mintlify-docs/api/acs/access_groups/errors.mdx index 61c207480..1bce31da8 100644 --- a/mintlify-docs/api/acs/access_groups/errors.mdx +++ b/mintlify-docs/api/acs/access_groups/errors.mdx @@ -35,6 +35,6 @@ Each error is an object with the following shape: ### `failed_to_create_on_acs_system` -Indicates that the [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups) was not created on the [access system](/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). +Indicates that the [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups) was not created on the [access system](https://docs.seam.co/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). --- diff --git a/mintlify-docs/api/acs/access_groups/object.mdx b/mintlify-docs/api/acs/access_groups/object.mdx index aea65e3ff..5f7bcebcc 100644 --- a/mintlify-docs/api/acs/access_groups/object.mdx +++ b/mintlify-docs/api/acs/access_groups/object.mdx @@ -7,9 +7,9 @@ description: 'Learn how the acs_access_group object defines the entrances a set Group that defines the entrances to which a set of users has access and, in some cases, the access schedule for these entrances and users. -Some access control systems use [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. +Some access control systems use [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. -To learn whether your access control system supports access groups, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). +To learn whether your access control system supports access groups, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). diff --git a/mintlify-docs/api/acs/credentials/errors.mdx b/mintlify-docs/api/acs/credentials/errors.mdx index 1389e408e..e64e18d05 100644 --- a/mintlify-docs/api/acs/credentials/errors.mdx +++ b/mintlify-docs/api/acs/credentials/errors.mdx @@ -35,36 +35,36 @@ Each warning is an object with the following shape: ### `being_deleted` -Indicates that the [credential](/low-level-apis/access-systems/managing-credentials) is being deleted. +Indicates that the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is being deleted. --- ### `needs_to_be_reissued` -Access permissions for the [credential](/low-level-apis/access-systems/managing-credentials) have changed. [Reissue](/low-level-apis/access-systems/working-with-card-encoders-and-scanners/creating-and-encoding-card-based-credentials) (re-encode) the credential. This issue may affect the proper functioning of the credential. +Access permissions for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) have changed. [Reissue](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners/creating-and-encoding-card-based-credentials) (re-encode) the credential. This issue may affect the proper functioning of the credential. --- ### `schedule_externally_modified` -Indicates that the schedule of one of the [credential](/low-level-apis/access-systems/managing-credentials)'s children was modified externally. +Indicates that the schedule of one of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials)'s children was modified externally. --- ### `schedule_modified` -Indicates that the schedule of the [credential](/low-level-apis/access-systems/managing-credentials) was modified to avoid creating a credential with a start date in the past. +Indicates that the schedule of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was modified to avoid creating a credential with a start date in the past. --- ### `unknown_issue_with_acs_credential` -An unknown issue occurred while syncing the state of the [credential](/low-level-apis/access-systems/managing-credentials) with the provider. This issue may affect the proper functioning of the credential. +An unknown issue occurred while syncing the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) with the provider. This issue may affect the proper functioning of the credential. --- ### `waiting_to_be_issued` -Indicates that the [credential](/low-level-apis/access-systems/managing-credentials) is waiting to be issued. +Indicates that the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is waiting to be issued. --- diff --git a/mintlify-docs/api/acs/credentials/events.mdx b/mintlify-docs/api/acs/credentials/events.mdx index 5f89c07c1..f87244f28 100644 --- a/mintlify-docs/api/acs/credentials/events.mdx +++ b/mintlify-docs/api/acs/credentials/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Credential resource, with e ## `acs_credential.deleted` -An [access system credential](/low-level-apis/access-systems/managing-credentials) was deleted. +An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was deleted. @@ -62,7 +62,7 @@ An [access system credential](/low-level-apis/access-systems/managing-credential ## `acs_credential.issued` -An [access system credential](/low-level-apis/access-systems/managing-credentials) was issued. +An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was issued. @@ -119,7 +119,7 @@ An [access system credential](/low-level-apis/access-systems/managing-credential ## `acs_credential.reissued` -An [access system credential](/low-level-apis/access-systems/managing-credentials) was reissued. +An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was reissued. @@ -176,7 +176,7 @@ An [access system credential](/low-level-apis/access-systems/managing-credential ## `acs_credential.invalidated` -An [access system credential](/low-level-apis/access-systems/managing-credentials) was invalidated. That is, the credential cannot be used anymore. +An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was invalidated. That is, the credential cannot be used anymore. diff --git a/mintlify-docs/api/acs/credentials/object.mdx b/mintlify-docs/api/acs/credentials/object.mdx index 900bcd02a..537beecd3 100644 --- a/mintlify-docs/api/acs/credentials/object.mdx +++ b/mintlify-docs/api/acs/credentials/object.mdx @@ -5,13 +5,13 @@ description: 'Learn how the acs_credential object represents the means—such as ## The acs_credential Object -Means by which an [access control system user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems). +Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems). An access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs. For each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type. -For granting a person access to a space, [Access Grants](/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials. +For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials. @@ -102,11 +102,11 @@ For granting a person access to a space, [Access Grants](/use-cases/granting-acc ## Properties - Access method for the [credential](/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`. + Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`. - ID of the [credential](/low-level-apis/access-systems/managing-credentials). + ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). @@ -114,15 +114,15 @@ For granting a person access to a space, [Access Grants](/use-cases/granting-acc - ID of the [access control system](/low-level-apis/access-systems) that contains the [credential](/low-level-apis/access-systems/managing-credentials). + ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). - ID of the [ACS user](/low-level-apis/access-systems/user-management) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs. + ID of the [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. - Vostio-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials). + Vostio-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. @@ -146,47 +146,47 @@ For granting a person access to a space, [Access Grants](/use-cases/granting-acc - Number of the card associated with the [credential](/low-level-apis/access-systems/managing-credentials). + Number of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). - Access (PIN) code for the [credential](/low-level-apis/access-systems/managing-credentials). + Access (PIN) code for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). - ID of the [connected account](/low-level-apis/access-systems/managing-credentials) to which the [credential](/low-level-apis/access-systems/managing-credentials) belongs. + ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/managing-credentials#connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. - Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was created. + Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created. - Display name that corresponds to the [credential](/low-level-apis/access-systems/managing-credentials) type. + Display name that corresponds to the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. - Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. + Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. - Errors associated with the [credential](/low-level-apis/access-systems/managing-credentials). + Errors associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). - Brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. + Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. - Display name that corresponds to the brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type. + Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. - Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) has been encoded onto a card. + Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been encoded onto a card. - Indicates whether the latest state of the [credential](/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider. + Indicates whether the latest state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider. @@ -194,35 +194,35 @@ For granting a person access to a space, [Access Grants](/use-cases/granting-acc - Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). + Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). - Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. + Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. - Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was encoded onto a card. + Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was encoded onto a card. - Date and time at which the state of the [credential](/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider. + Date and time at which the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider. - ID of the parent [credential](/low-level-apis/access-systems/managing-credentials). + ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). - Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - ID of the [user identity](/api/user_identities/object) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs. + ID of the [user identity](https://docs.seam.co/api/user_identities/object) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. - Visionline-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials). + Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. @@ -252,9 +252,9 @@ For granting a person access to a space, [Access Grants](/use-cases/granting-acc - Warnings associated with the [credential](/low-level-apis/access-systems/managing-credentials). + Warnings associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). - ID of the workspace that contains the [credential](/low-level-apis/access-systems/managing-credentials). + ID of the workspace that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). diff --git a/mintlify-docs/api/acs/encoders/events.mdx b/mintlify-docs/api/acs/encoders/events.mdx index b54bbce11..dd85abf13 100644 --- a/mintlify-docs/api/acs/encoders/events.mdx +++ b/mintlify-docs/api/acs/encoders/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Encoder resource, with exam ## `acs_encoder.added` -An [access system encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was added. +An [access system encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was added. @@ -62,7 +62,7 @@ An [access system encoder](/low-level-apis/access-systems/working-with-card-enco ## `acs_encoder.removed` -An [access system encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was removed. +An [access system encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was removed. diff --git a/mintlify-docs/api/acs/encoders/object.mdx b/mintlify-docs/api/acs/encoders/object.mdx index 5a22f1ca6..fea6fad33 100644 --- a/mintlify-docs/api/acs/encoders/object.mdx +++ b/mintlify-docs/api/acs/encoders/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the acs_encoder object represents a hardware device that ## The acs_encoder Object -Represents a hardware device that encodes [credential](/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](/low-level-apis/access-systems). +Represents a hardware device that encodes [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](https://docs.seam.co/low-level-apis/access-systems). Some access control systems require credentials to be encoded onto plastic key cards using a card encoder. This process involves the following two key steps: @@ -16,9 +16,9 @@ Some access control systems require credentials to be encoded onto plastic key c Separately, the Seam API also supports card scanning, which enables you to scan and read the encoded data on a card. You can use this action to confirm consistency with access control system records or diagnose discrepancies if needed. -See [Working with Card Encoders and Scanners](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). +See [Working with Card Encoders and Scanners](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). -To verify if your access control system requires a card encoder, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). +To verify if your access control system requires a card encoder, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). @@ -41,29 +41,29 @@ To verify if your access control system requires a card encoder, see the corresp ## Properties - ID of the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners. + ID of the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners. - ID of the [access control system](/low-level-apis/access-systems) that contains the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - ID of the connected account that contains the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + ID of the connected account that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - Date and time at which the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was created. + Date and time at which the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was created. - Display name for the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + Display name for the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - Errors associated with the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + Errors associated with the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - ID of the workspace that contains the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + ID of the workspace that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). diff --git a/mintlify-docs/api/acs/encoders/simulate/object.mdx b/mintlify-docs/api/acs/encoders/simulate/object.mdx index 24f7bb24e..cce6545b3 100644 --- a/mintlify-docs/api/acs/encoders/simulate/object.mdx +++ b/mintlify-docs/api/acs/encoders/simulate/object.mdx @@ -7,16 +7,16 @@ description: 'Use the encoder simulation endpoints to make the next credential e [**`/acs/encoders/simulate/next_credential_encode_will_fail`**](./next_credential_encode_will_fail) -Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). +Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). [**`/acs/encoders/simulate/next_credential_encode_will_succeed`**](./next_credential_encode_will_succeed) -Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). +Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). [**`/acs/encoders/simulate/next_credential_scan_will_fail`**](./next_credential_scan_will_fail) -Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). +Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). [**`/acs/encoders/simulate/next_credential_scan_will_succeed`**](./next_credential_scan_will_succeed) -Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). +Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/acs/entrances/events.mdx b/mintlify-docs/api/acs/entrances/events.mdx index 7b49e8466..49a205aee 100644 --- a/mintlify-docs/api/acs/entrances/events.mdx +++ b/mintlify-docs/api/acs/entrances/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Entrance resource, with exa ## `acs_entrance.added` -An [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details) was added. +An [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was added. @@ -62,7 +62,7 @@ An [access system entrance](/low-level-apis/access-systems/retrieving-entrance-d ## `acs_entrance.removed` -An [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details) was removed. +An [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was removed. diff --git a/mintlify-docs/api/acs/entrances/object.mdx b/mintlify-docs/api/acs/entrances/object.mdx index f9bb7dfb0..c85e358be 100644 --- a/mintlify-docs/api/acs/entrances/object.mdx +++ b/mintlify-docs/api/acs/entrances/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the acs_entrance object represents a secured door, gate, ## The acs_entrance Object -Represents an [entrance](/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](/low-level-apis/access-systems). +Represents an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/low-level-apis/access-systems). In an access control system, an entrance is a secured door, gate, zone, or other method of entry. You can list details for all the `acs_entrance` resources in your workspace or get these details for a specific `acs_entrance`. You can also list all entrances associated with a specific credential, and you can list all credentials associated with a specific entrance. @@ -41,15 +41,15 @@ In an access control system, an entrance is a secured door, gate, zone, or other ## Properties - ID of the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + ID of the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). - ID of the [access control system](/low-level-apis/access-systems) that contains the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). - ASSA ABLOY Vostio-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + ASSA ABLOY Vostio-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). Name of the door in the Vostio access system. @@ -70,7 +70,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Avigilon Alta-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + Avigilon Alta-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). Entry name for an Avigilon Alta system. @@ -97,7 +97,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Brivo-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + Brivo-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). ID of the access point in the Brivo access system. @@ -132,19 +132,19 @@ In an access control system, an entrance is a secured door, gate, zone, or other - ID of the [connected account](/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). - Date and time at which the [entrance](/low-level-apis/access-systems/retrieving-entrance-details) was created. + Date and time at which the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was created. - Display name for the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + Display name for the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). - dormakaba Ambiance-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + dormakaba Ambiance-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). Name of the access point in the dormakaba Ambiance access system. @@ -153,7 +153,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other - dormakaba Community-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + dormakaba Community-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). Type of access point profile in the dormakaba Community access system. @@ -162,11 +162,11 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Errors associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + Errors associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). - Hotek-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + Hotek-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). Display name of the entrance. @@ -181,11 +181,11 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Indicates whether the [entrance](/low-level-apis/access-systems/retrieving-entrance-details) is currently locked. + Indicates whether the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) is currently locked. - Latch-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + Latch-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). Accessibility type in the Latch access system. @@ -203,7 +203,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Salto KS-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + Salto KS-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). Battery level of the door access device. @@ -233,7 +233,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Salto Space-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + Salto Space-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). Indicates whether AuditOnKeys is enabled for the door in the Salto Space access system. @@ -261,7 +261,7 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Visionline-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + Visionline-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). Category of the door in the Visionline access system. @@ -276,5 +276,5 @@ In an access control system, an entrance is a secured door, gate, zone, or other - Warnings associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details). + Warnings associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). diff --git a/mintlify-docs/api/acs/object.mdx b/mintlify-docs/api/acs/object.mdx index 96a3567dc..44a38d180 100644 --- a/mintlify-docs/api/acs/object.mdx +++ b/mintlify-docs/api/acs/object.mdx @@ -26,27 +26,27 @@ The Access Control Systems (ACS) namespace contains the following resources: Group that defines the entrances to which a set of users has access and, in some cases, the access schedule for these entrances and users. -Some access control systems use [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. +Some access control systems use [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. -To learn whether your access control system supports access groups, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). +To learn whether your access control system supports access groups, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). --- ### [`acs_credential`](#acs_credential) -Means by which an [access control system user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems). +Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems). An access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs. For each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type. -For granting a person access to a space, [Access Grants](/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials. +For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials. --- ### [`acs_encoder`](#acs_encoder) -Represents a hardware device that encodes [credential](/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](/low-level-apis/access-systems). +Represents a hardware device that encodes [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](https://docs.seam.co/low-level-apis/access-systems). Some access control systems require credentials to be encoded onto plastic key cards using a card encoder. This process involves the following two key steps: @@ -57,15 +57,15 @@ Some access control systems require credentials to be encoded onto plastic key c Separately, the Seam API also supports card scanning, which enables you to scan and read the encoded data on a card. You can use this action to confirm consistency with access control system records or diagnose discrepancies if needed. -See [Working with Card Encoders and Scanners](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). +See [Working with Card Encoders and Scanners](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). -To verify if your access control system requires a card encoder, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). +To verify if your access control system requires a card encoder, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). --- ### [`acs_entrance`](#acs_entrance) -Represents an [entrance](/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](/low-level-apis/access-systems). +Represents an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/low-level-apis/access-systems). In an access control system, an entrance is a secured door, gate, zone, or other method of entry. You can list details for all the `acs_entrance` resources in your workspace or get these details for a specific `acs_entrance`. You can also list all entrances associated with a specific credential, and you can list all credentials associated with a specific entrance. @@ -73,20 +73,20 @@ In an access control system, an entrance is a secured door, gate, zone, or other ### [`acs_system`](#acs_system) -Represents an [access control system](/low-level-apis/access-systems). +Represents an [access control system](https://docs.seam.co/low-level-apis/access-systems). -Within an `acs_system`, create [`acs_user`s](/api/acs/users/object) and [`acs_credential`s](/api/acs/credentials/object) to grant access to the `acs_user`s. +Within an `acs_system`, create [`acs_user`s](https://docs.seam.co/api/acs/users/object#acs_user) and [`acs_credential`s](https://docs.seam.co/api/acs/credentials/object#acs_credential) to grant access to the `acs_user`s. -For details about the resources associated with an access control system, see the [access control systems namespace](/api/acs/object). +For details about the resources associated with an access control system, see the [access control systems namespace](https://docs.seam.co/api/acs/object). --- ### [`acs_user`](#acs_user) -Represents a [user](/low-level-apis/access-systems/user-management) in an [access system](/low-level-apis/access-systems). +Represents a [user](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access system](https://docs.seam.co/low-level-apis/access-systems). An access system user typically refers to an individual who requires access, like an employee or resident. Each user can possess multiple credentials that serve as their keys or identifiers for access. The type of credential can vary widely. For example, in the Salto system, a user can have a PIN code, a mobile app account, and a fob. In other platforms, it is not uncommon for a user to have more than one of the same credential type, such as multiple key cards. Additionally, these credentials can have a schedule or validity period. -For details about how to configure users in your access system, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). +For details about how to configure users in your access system, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). --- diff --git a/mintlify-docs/api/acs/systems/errors.mdx b/mintlify-docs/api/acs/systems/errors.mdx index ea2d1bdc6..a20abd3c1 100644 --- a/mintlify-docs/api/acs/systems/errors.mdx +++ b/mintlify-docs/api/acs/systems/errors.mdx @@ -32,27 +32,27 @@ Each error is an object with the following shape: - Indicates whether the error is related to the [Seam Bridge](/capability-guides/seam-bridge). + Indicates whether the error is related to the [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). ### `account_disconnected` -Indicates that the login credentials are invalid. Reconnect the account using a [Connect Webview](/core-concepts/connect-webviews) to restore access. +Indicates that the login credentials are invalid. Reconnect the account using a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) to restore access. --- ### `acs_system_disconnected` -Indicates that the [access control system](/low-level-apis/access-systems) has been disconnected. See [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system) to resolve the issue. +Indicates that the [access control system](https://docs.seam.co/low-level-apis/access-systems) has been disconnected. See [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system) to resolve the issue. --- ### `bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. -See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. +See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). --- @@ -64,7 +64,7 @@ Indicates that the access control system provider's service is temporarily unava ### `salto_ks_certification_expired` -Indicates that the [access control system](/low-level-apis/access-systems) has lost its Salto KS certification. Contact [support](mailto:support@seam.co) to regain access. +Indicates that the [access control system](https://docs.seam.co/low-level-apis/access-systems) has lost its Salto KS certification. Contact [support](mailto:support@seam.co) to regain access. --- @@ -76,17 +76,17 @@ Indicates that the maximum number of users allowed for the site has been reached ### `seam_bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. -This error might also occur if Seam Bridge is connected to the wrong [workspace](/core-concepts/workspaces). -See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. +This error might also occur if Seam Bridge is connected to the wrong [workspace](https://docs.seam.co/core-concepts/workspaces). +See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). --- ### `visionline_instance_unreachable` -Indicates that [Seam Bridge](/capability-guides/seam-bridge) is functioning correctly and the Seam API can communicate with Seam Bridge, but the Seam API cannot connect to the on-premises [Visionline access control system](/device-and-system-integration-guides/assa-abloy-visionline-access-control-system). -For example, the IP address of the on-premises access control system may be set incorrectly within the Seam [workspace](/core-concepts/workspaces). -See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-visionline_instance_unreachable). +Indicates that [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge) is functioning correctly and the Seam API can communicate with Seam Bridge, but the Seam API cannot connect to the on-premises [Visionline access control system](https://docs.seam.co/device-and-system-integration-guides/assa-abloy-visionline-access-control-system). +For example, the IP address of the on-premises access control system may be set incorrectly within the Seam [workspace](https://docs.seam.co/core-concepts/workspaces). +See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.visionline_instance_unreachable). --- @@ -138,6 +138,6 @@ Indicates that the access control system requires additional setup before it can ### `time_zone_does_not_match_location` -Indicates the [access control system](/low-level-apis/access-systems) time zone could not be determined because the reported physical location does not match the time zone configured on the physical [ACS entrances](/low-level-apis/access-systems/retrieving-entrance-details). +Indicates the [access control system](https://docs.seam.co/low-level-apis/access-systems) time zone could not be determined because the reported physical location does not match the time zone configured on the physical [ACS entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). --- diff --git a/mintlify-docs/api/acs/systems/events.mdx b/mintlify-docs/api/acs/systems/events.mdx index 36516e960..edf5a4a30 100644 --- a/mintlify-docs/api/acs/systems/events.mdx +++ b/mintlify-docs/api/acs/systems/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the ACS System resource, with e ## `acs_system.connected` -An [access system](/low-level-apis/access-systems) was connected. +An [access system](https://docs.seam.co/low-level-apis/access-systems) was connected. @@ -57,7 +57,7 @@ An [access system](/low-level-apis/access-systems) was connected. ## `acs_system.added` -An [access system](/low-level-apis/access-systems) was added. +An [access system](https://docs.seam.co/low-level-apis/access-systems) was added. @@ -109,7 +109,7 @@ An [access system](/low-level-apis/access-systems) was added. ## `acs_system.disconnected` -An [access system](/low-level-apis/access-systems) was disconnected. +An [access system](https://docs.seam.co/low-level-apis/access-systems) was disconnected. diff --git a/mintlify-docs/api/acs/systems/object.mdx b/mintlify-docs/api/acs/systems/object.mdx index 2a6c3d07b..7534bf14f 100644 --- a/mintlify-docs/api/acs/systems/object.mdx +++ b/mintlify-docs/api/acs/systems/object.mdx @@ -5,11 +5,11 @@ description: 'Learn how the acs_system object represents an access control syste ## The acs_system Object -Represents an [access control system](/low-level-apis/access-systems). +Represents an [access control system](https://docs.seam.co/low-level-apis/access-systems). -Within an `acs_system`, create [`acs_user`s](/api/acs/users/object) and [`acs_credential`s](/api/acs/credentials/object) to grant access to the `acs_user`s. +Within an `acs_system`, create [`acs_user`s](https://docs.seam.co/api/acs/users/object#acs_user) and [`acs_credential`s](https://docs.seam.co/api/acs/credentials/object#acs_credential) to grant access to the `acs_user`s. -For details about the resources associated with an access control system, see the [access control systems namespace](/api/acs/object). +For details about the resources associated with an access control system, see the [access control systems namespace](https://docs.seam.co/api/acs/object). @@ -46,51 +46,51 @@ For details about the resources associated with an access control system, see th ## Properties - Number of access groups in the [access control system](/low-level-apis/access-systems). + Number of access groups in the [access control system](https://docs.seam.co/low-level-apis/access-systems). - ID of the [access control system](/low-level-apis/access-systems). + ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems). - Number of users in the [access control system](/low-level-apis/access-systems). + Number of users in the [access control system](https://docs.seam.co/low-level-apis/access-systems). - ID of the connected account associated with the [access control system](/low-level-apis/access-systems). + ID of the connected account associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems). - IDs of the [connected accounts](/core-concepts/connected-accounts) associated with the [access control system](/low-level-apis/access-systems). + IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems). - Date and time at which the [access control system](/low-level-apis/access-systems) was created. + Date and time at which the [access control system](https://docs.seam.co/low-level-apis/access-systems) was created. - ID of the default credential manager `acs_system` for this [access control system](/low-level-apis/access-systems). + ID of the default credential manager `acs_system` for this [access control system](https://docs.seam.co/low-level-apis/access-systems). - Errors associated with the [access control system](/low-level-apis/access-systems). + Errors associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems). - Brand-specific terminology for the [access control system](/low-level-apis/access-systems) type. + Brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type. - Display name that corresponds to the brand-specific terminology for the [access control system](/low-level-apis/access-systems) type. + Display name that corresponds to the brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type. - Alternative text for the [access control system](/low-level-apis/access-systems) image. + Alternative text for the [access control system](https://docs.seam.co/low-level-apis/access-systems) image. - URL for the image that represents the [access control system](/low-level-apis/access-systems). + URL for the image that represents the [access control system](https://docs.seam.co/low-level-apis/access-systems). @@ -98,16 +98,16 @@ For details about the resources associated with an access control system, see th - Location information for the [access control system](/low-level-apis/access-systems). + Location information for the [access control system](https://docs.seam.co/low-level-apis/access-systems). - Time zone in which the [access control system](/low-level-apis/access-systems) is located. + Time zone in which the [access control system](https://docs.seam.co/low-level-apis/access-systems) is located. - Name of the [access control system](/low-level-apis/access-systems). + Name of the [access control system](https://docs.seam.co/low-level-apis/access-systems). @@ -119,10 +119,10 @@ For details about the resources associated with an access control system, see th - Visionline-specific metadata for the [access control system](/low-level-apis/access-systems). + Visionline-specific metadata for the [access control system](https://docs.seam.co/low-level-apis/access-systems). - IP address or hostname of the main Visionline server relative to [Seam Bridge](/capability-guides/seam-bridge) on the local network. + IP address or hostname of the main Visionline server relative to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge) on the local network. Keyset loaded into a reader. Mobile keys and reader administration tools securely authenticate only with readers programmed with a matching keyset. @@ -134,9 +134,9 @@ For details about the resources associated with an access control system, see th - Warnings associated with the [access control system](/low-level-apis/access-systems). + Warnings associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems). - ID of the workspace that contains the [access control system](/low-level-apis/access-systems). + ID of the workspace that contains the [access control system](https://docs.seam.co/low-level-apis/access-systems). diff --git a/mintlify-docs/api/acs/users/errors.mdx b/mintlify-docs/api/acs/users/errors.mdx index fa73f4439..4bd25b232 100644 --- a/mintlify-docs/api/acs/users/errors.mdx +++ b/mintlify-docs/api/acs/users/errors.mdx @@ -35,37 +35,37 @@ Each error is an object with the following shape: ### `deleted_externally` -Indicates that the [access system user](/low-level-apis/access-systems/user-management) was deleted from the [access system](/low-level-apis/access-systems) outside of Seam. +Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was deleted from the [access system](https://docs.seam.co/low-level-apis/access-systems) outside of Seam. --- ### `failed_to_create_on_acs_system` -Indicates that the [access system user](/low-level-apis/access-systems/user-management) was not created on the [access system](/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). +Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was not created on the [access system](https://docs.seam.co/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). --- ### `failed_to_delete_on_acs_system` -Indicates that the [access system user](/low-level-apis/access-systems/user-management) was not deleted on the [access system](/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). +Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was not deleted on the [access system](https://docs.seam.co/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). --- ### `failed_to_update_on_acs_system` -Indicates that the [access system user](/low-level-apis/access-systems/user-management) was not updated on the [access system](/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). +Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was not updated on the [access system](https://docs.seam.co/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co). --- ### `latch_conflict_with_resident_user` -Indicates that the [access system user](/low-level-apis/access-systems/user-management) was created from the Seam API but also exists on Mission Control. This is unsupported. Contact Seam [support](mailto:support@seam.co). +Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created from the Seam API but also exists on Mission Control. This is unsupported. Contact Seam [support](mailto:support@seam.co). --- ### `salto_ks_subscription_limit_exceeded` -Indicates that the [access system user](/low-level-apis/access-systems/user-management) could not be subscribed on Salto KS because the subscription limit has been exceeded. +Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) could not be subscribed on Salto KS because the subscription limit has been exceeded. --- @@ -101,24 +101,24 @@ Each warning is an object with the following shape: ### `being_deleted` -Indicates that the [access system user](/low-level-apis/access-systems/user-management) is being deleted from the [access system](/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly. +Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is being deleted from the [access system](https://docs.seam.co/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly. --- ### `latch_resident_user` -Indicates that the [access system user](/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user. +Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user. --- ### `salto_ks_user_not_subscribed` -Indicates that the [access system user](/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed. +Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed. --- ### `unknown_issue_with_acs_user` -An unknown issue occurred while syncing the state of this [access system user](/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user. +An unknown issue occurred while syncing the state of this [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user. --- diff --git a/mintlify-docs/api/acs/users/events.mdx b/mintlify-docs/api/acs/users/events.mdx index e77218a69..77841774d 100644 --- a/mintlify-docs/api/acs/users/events.mdx +++ b/mintlify-docs/api/acs/users/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the ACS User resource, with exa ## `acs_user.created` -An [access system user](/low-level-apis/access-systems/user-management) was created. +An [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created. @@ -62,7 +62,7 @@ An [access system user](/low-level-apis/access-systems/user-management) was crea ## `acs_user.deleted` -An [access system user](/low-level-apis/access-systems/user-management) was deleted. +An [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was deleted. diff --git a/mintlify-docs/api/acs/users/object.mdx b/mintlify-docs/api/acs/users/object.mdx index 609082ed7..c809cd62d 100644 --- a/mintlify-docs/api/acs/users/object.mdx +++ b/mintlify-docs/api/acs/users/object.mdx @@ -5,11 +5,11 @@ description: 'Learn how the acs_user object represents an individual—such as a ## The acs_user Object -Represents a [user](/low-level-apis/access-systems/user-management) in an [access system](/low-level-apis/access-systems). +Represents a [user](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access system](https://docs.seam.co/low-level-apis/access-systems). An access system user typically refers to an individual who requires access, like an employee or resident. Each user can possess multiple credentials that serve as their keys or identifiers for access. The type of credential can vary widely. For example, in the Salto system, a user can have a PIN code, a mobile app account, and a fob. In other platforms, it is not uncommon for a user to have more than one of the same credential type, such as multiple key cards. Additionally, these credentials can have a schedule or validity period. -For details about how to configure users in your access system, see the corresponding [system integration guide](/device-and-system-integration-guides#access-control-systems). +For details about how to configure users in your access system, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). @@ -63,7 +63,7 @@ For details about how to configure users in your access system, see the correspo ## Properties - `starts_at` and `ends_at` timestamps for the [access system user's](/low-level-apis/access-systems/user-management) access. + `starts_at` and `ends_at` timestamps for the [access system user's](https://docs.seam.co/low-level-apis/access-systems/user-management) access. Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. @@ -75,23 +75,23 @@ For details about how to configure users in your access system, see the correspo - ID of the [access system](/low-level-apis/access-systems) that contains the [access system user](/low-level-apis/access-systems/user-management). + ID of the [access system](https://docs.seam.co/low-level-apis/access-systems) that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - ID of the [access system user](/low-level-apis/access-systems/user-management). + ID of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - The ID of the connected account that is associated with the [access system user](/low-level-apis/access-systems/user-management). + The ID of the connected account that is associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - Date and time at which the [access system user](/low-level-apis/access-systems/user-management) was created. + Date and time at which the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created. - Display name for the [access system user](/low-level-apis/access-systems/user-management). + Display name for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). @@ -99,23 +99,23 @@ For details about how to configure users in your access system, see the correspo - Email address of the [access system user](/low-level-apis/access-systems/user-management). + Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - Errors associated with the [access system user](/low-level-apis/access-systems/user-management). + Errors associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - Brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type. + Brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type. - Display name that corresponds to the brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type. + Display name that corresponds to the brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type. - Full name of the [access system user](/low-level-apis/access-systems/user-management). + Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). @@ -127,19 +127,19 @@ For details about how to configure users in your access system, see the correspo - Indicates whether the [access system user](/low-level-apis/access-systems/user-management) is currently [suspended](/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users). + Indicates whether the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is currently [suspended](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users). - Pending mutations associated with the [access system user](/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. + Pending mutations associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. - Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). + Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). - Salto Space-specific metadata associated with the [access system user](/low-level-apis/access-systems/user-management). + Salto Space-specific metadata associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). Indicates whether AuditOpenings is enabled for the user in the Salto Space access system. @@ -151,25 +151,25 @@ For details about how to configure users in your access system, see the correspo - Email address of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management). + Email address of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - Full name of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management). + Full name of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - ID of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management). + ID of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - Phone number of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). + Phone number of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). - Warnings associated with the [access system user](/low-level-apis/access-systems/user-management). + Warnings associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - ID of the workspace that contains the [access system user](/low-level-apis/access-systems/user-management). + ID of the workspace that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). diff --git a/mintlify-docs/api/action_attempts/object.mdx b/mintlify-docs/api/action_attempts/object.mdx index cb4a65ad5..287082197 100644 --- a/mintlify-docs/api/action_attempts/object.mdx +++ b/mintlify-docs/api/action_attempts/object.mdx @@ -85,8 +85,8 @@ Result of the action attempt. Null for pending and errored action attempts. [**`/action_attempts/get`**](./get) -Returns a specified [action attempt](/core-concepts/action-attempts). +Returns a specified [action attempt](https://docs.seam.co/core-concepts/action-attempts). [**`/action_attempts/list`**](./list) -Returns a list of the [action attempts](/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s. +Returns a list of the [action attempts](https://docs.seam.co/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s. diff --git a/mintlify-docs/api/client_sessions/object.mdx b/mintlify-docs/api/client_sessions/object.mdx index 098f54e41..be232fdb0 100644 --- a/mintlify-docs/api/client_sessions/object.mdx +++ b/mintlify-docs/api/client_sessions/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the client_session object restricts your users to their ## The client_session Object -Represents a [client session](/core-concepts/authentication/client-session-tokens). If you want to restrict your users' access to their own devices, use client sessions. +Represents a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). If you want to restrict your users' access to their own devices, use client sessions. You create each client session with a custom `user_identifier_key`. Normally, the `user_identifier_key` is a user ID that your application provides. @@ -13,7 +13,7 @@ When calling the Seam API from your backend using an API key, you can pass the ` A client session has a token that you can use with the Seam JavaScript SDK to make requests from the client (browser) directly to the Seam API. The token restricts the user's access to only the devices that they own. -See also [Get Started with React](/ui-components/overview/getting-started-with-seam-components/get-started-with-react-components-and-client-session-tokens). +See also [Get Started with React](https://docs.seam.co/ui-components/overview/getting-started-with-seam-components/get-started-with-react-components-and-client-session-tokens). @@ -51,43 +51,43 @@ See also [Get Started with React](/ui-components/overview/getting-started-with-s - IDs of the [Connect Webviews](/core-concepts/connect-webviews) associated with the [client session](/core-concepts/authentication/client-session-tokens). + IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). - IDs of the [connected accounts](/core-concepts/connected-accounts) associated with the [client session](/core-concepts/authentication/client-session-tokens). + IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). - Date and time at which the [client session](/core-concepts/authentication/client-session-tokens) was created. + Date and time at which the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) was created. - Customer key associated with the [client session](/core-concepts/authentication/client-session-tokens). + Customer key associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). - Number of devices associated with the [client session](/core-concepts/authentication/client-session-tokens). + Number of devices associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). - Date and time at which the [client session](/core-concepts/authentication/client-session-tokens) expires. + Date and time at which the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) expires. - Client session token associated with the [client session](/core-concepts/authentication/client-session-tokens). + Client session token associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). - Your user ID for the user associated with the [client session](/core-concepts/authentication/client-session-tokens). + Your user ID for the user associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). - ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session. + ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session. - IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session. + IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session. diff --git a/mintlify-docs/api/connect_webviews/object.mdx b/mintlify-docs/api/connect_webviews/object.mdx index 03f1b84f5..75c8d382e 100644 --- a/mintlify-docs/api/connect_webviews/object.mdx +++ b/mintlify-docs/api/connect_webviews/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the connect_webview object embeds a client-side flow tha ## The connect_webview Object -Represents a [Connect Webview](/core-concepts/connect-webviews). +Represents a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews). Connect Webviews are fully-embedded client-side components that you add to your app. Your users interact with your embedded Connect Webviews to link their IoT device or system accounts to Seam. That is, Connect Webviews walk your users through the process of logging in to their device or system accounts. Seam handles all the authentication steps, and—once your user has completed the authorization through your app—you can access and control their devices or systems using the Seam API. @@ -65,7 +65,7 @@ To list all providers within a category, use `/devices/list_device_providers` wi - List of accepted [provider keys](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). + List of accepted [provider keys](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). @@ -77,7 +77,7 @@ To list all providers within a category, use `/devices/list_device_providers` wi - Indicates whether Seam should [import all new devices](/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for use and management by the Seam API. + Indicates whether Seam should [import all new devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for use and management by the Seam API. @@ -93,7 +93,7 @@ To list all providers within a category, use `/devices/list_device_providers` wi - Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. @@ -117,7 +117,7 @@ To list all providers within a category, use `/devices/list_device_providers` wi - Selected provider of the Connect Webview, one of the [provider keys](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). + Selected provider of the Connect Webview, one of the [provider keys](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). @@ -129,7 +129,7 @@ To list all providers within a category, use `/devices/list_device_providers` wi - Indicates whether Seam should [finish syncing all devices](/core-concepts/connect-webviews/customizing-connect-webviews#wait_for_device_creation) in a newly-connected account before completing the associated Connect Webview. + Indicates whether Seam should [finish syncing all devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#wait_for_device_creation) in a newly-connected account before completing the associated Connect Webview. diff --git a/mintlify-docs/api/connected_accounts/errors.mdx b/mintlify-docs/api/connected_accounts/errors.mdx index 6a261d549..d16250031 100644 --- a/mintlify-docs/api/connected_accounts/errors.mdx +++ b/mintlify-docs/api/connected_accounts/errors.mdx @@ -34,7 +34,7 @@ Each error is an object with the following shape: - Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). + Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). @@ -55,7 +55,7 @@ Indicates that the account is disconnected. ### `bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). --- diff --git a/mintlify-docs/api/connected_accounts/object.mdx b/mintlify-docs/api/connected_accounts/object.mdx index b651e345d..c18920e8a 100644 --- a/mintlify-docs/api/connected_accounts/object.mdx +++ b/mintlify-docs/api/connected_accounts/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the connected_account object represents an external thir ## The connected_account Object -Represents a [connected account](/core-concepts/connected-accounts). A connected account is an external third-party account to which your user has authorized Seam to get access, for example, an August account with a list of door locks. +Represents a [connected account](https://docs.seam.co/core-concepts/connected-accounts). A connected account is an external third-party account to which your user has authorized Seam to get access, for example, an August account with a list of door locks. @@ -54,7 +54,7 @@ Represents a [connected account](/core-concepts/connected-accounts). A connected - Indicates whether Seam should [import all new devices](/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for management by the Seam API. + Indicates whether Seam should [import all new devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for management by the Seam API. @@ -66,7 +66,7 @@ Represents a [connected account](/core-concepts/connected-accounts). A connected - Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. diff --git a/mintlify-docs/api/connected_accounts/simulate/object.mdx b/mintlify-docs/api/connected_accounts/simulate/object.mdx index 3533e7347..fbb80381c 100644 --- a/mintlify-docs/api/connected_accounts/simulate/object.mdx +++ b/mintlify-docs/api/connected_accounts/simulate/object.mdx @@ -7,4 +7,4 @@ description: 'Use the connected account simulation endpoint to disconnect an acc [**`/connected_accounts/simulate/disconnect`**](./disconnect) -Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). +Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/devices/errors.mdx b/mintlify-docs/api/devices/errors.mdx index e0dbf9864..fcd3c52a8 100644 --- a/mintlify-docs/api/devices/errors.mdx +++ b/mintlify-docs/api/devices/errors.mdx @@ -34,11 +34,11 @@ Each error is an object with the following shape: - Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). + Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). - Indicates that the error is a [connected account](/api/connected_accounts/object) error. + Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. @@ -87,7 +87,7 @@ Indicates that a subscription is required to connect. #### `empty_backup_access_code_pool` -Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. +Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. --- @@ -139,7 +139,7 @@ Indicates that the account is disconnected. #### `bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). --- diff --git a/mintlify-docs/api/devices/events.mdx b/mintlify-docs/api/devices/events.mdx index 00d923626..270309e60 100644 --- a/mintlify-docs/api/devices/events.mdx +++ b/mintlify-docs/api/devices/events.mdx @@ -139,7 +139,7 @@ A device was added to Seam or was re-added to Seam after having been removed. ## `device.converted_to_unmanaged` -A managed device was successfully converted to an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices). +A managed device was successfully converted to an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). @@ -791,7 +791,7 @@ Seam detected that a device is no longer using a third-party integration that wa ## `device.salto.privacy_mode_activated` -A [Salto device](/device-and-system-integration-guides/salto-locks) activated privacy mode. +A [Salto device](https://docs.seam.co/device-and-system-integration-guides/salto-locks) activated privacy mode. @@ -858,7 +858,7 @@ A [Salto device](/device-and-system-integration-guides/salto-locks) activated pr ## `device.salto.privacy_mode_deactivated` -A [Salto device](/device-and-system-integration-guides/salto-locks) deactivated privacy mode. +A [Salto device](https://docs.seam.co/device-and-system-integration-guides/salto-locks) deactivated privacy mode. diff --git a/mintlify-docs/api/devices/object.mdx b/mintlify-docs/api/devices/object.mdx index 4d7988c42..53434ee93 100644 --- a/mintlify-docs/api/devices/object.mdx +++ b/mintlify-docs/api/devices/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the device object represents a smart lock, thermostat, s ## The device Object -Represents a [device](/core-concepts/devices) that has been connected to Seam. +Represents a [device](https://docs.seam.co/core-concepts/devices) that has been connected to Seam. @@ -470,7 +470,7 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). + Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). @@ -482,7 +482,7 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. @@ -502,7 +502,7 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices). + Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). @@ -1437,40 +1437,40 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. Supported code lengths for access codes. - Indicates whether the device supports a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes). + Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). - Active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - ID of the desired [thermostat](/capability-guides/thermostats) device. + ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). ID of the workspace that contains the thermostat schedule. @@ -1478,13 +1478,13 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - ID of the active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". - Available [climate presets](/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. + Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. Fan mode settings that the thermostat supports. @@ -1496,28 +1496,28 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. Current climate setting. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). Metadata specific to the Ecobee climate, if applicable. @@ -1534,22 +1534,22 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). @@ -1557,28 +1557,28 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. The default climate setting. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). Metadata specific to the Ecobee climate, if applicable. @@ -1595,27 +1595,27 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - Key of the [fallback climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. + Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. The fan mode setting. @@ -1633,16 +1633,16 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. - Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. @@ -1651,22 +1651,22 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. Maximum number of climate presets that the thermostat can support for weekly programming. - Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. - Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. - Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. Reported relative humidity, as a value between 0 and 1, inclusive. @@ -1678,19 +1678,19 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. Reported temperature in °F. - Current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Lower limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Lower limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Upper limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Upper limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. @@ -1698,10 +1698,10 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. - Configured [daily programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - Current [weekly program](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. Date and time at which the thermostat weekly program was created. @@ -1836,7 +1836,7 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Indicates whether the device supports a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes). + Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). ## Hardware @@ -1934,37 +1934,37 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. ## Thermostats - Active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - ID of the desired [thermostat](/capability-guides/thermostats) device. + ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). ID of the workspace that contains the thermostat schedule. @@ -1973,7 +1973,7 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - ID of the active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). @@ -1981,7 +1981,7 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Available [climate presets](/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. + Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. @@ -1996,28 +1996,28 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. Current climate setting. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). Metadata specific to the Ecobee climate, if applicable. @@ -2034,22 +2034,22 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). @@ -2058,28 +2058,28 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. The default climate setting. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. - Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). Metadata specific to the Ecobee climate, if applicable. @@ -2096,28 +2096,28 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. - Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). - Key of the [fallback climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. + Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. @@ -2141,19 +2141,19 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. @@ -2165,27 +2165,27 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. - Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. - Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. - Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. - Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. - Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. @@ -2201,19 +2201,19 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Lower limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Lower limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Upper limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Upper limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. @@ -2223,11 +2223,11 @@ Represents a [device](/core-concepts/devices) that has been connected to Seam. - Configured [daily programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. - Current [weekly program](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. Date and time at which the thermostat weekly program was created. diff --git a/mintlify-docs/api/devices/simulate/object.mdx b/mintlify-docs/api/devices/simulate/object.mdx index 55475e7f1..8b1825daa 100644 --- a/mintlify-docs/api/devices/simulate/object.mdx +++ b/mintlify-docs/api/devices/simulate/object.mdx @@ -7,7 +7,7 @@ description: 'Use the device simulation endpoints to connect, disconnect, and re [**`/devices/simulate/connect`**](./connect) -Simulates connecting a device to Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). +Simulates connecting a device to Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). [**`/devices/simulate/connect_to_hub`**](./connect_to_hub) @@ -18,7 +18,7 @@ This will clear the `hub_disconnected` error on the device. [**`/devices/simulate/disconnect`**](./disconnect) -Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). +Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). [**`/devices/simulate/disconnect_from_hub`**](./disconnect_from_hub) @@ -36,4 +36,4 @@ The actual device error is created/cleared by the poller after this state change [**`/devices/simulate/remove`**](./remove) -Simulates removing a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). +Simulates removing a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). diff --git a/mintlify-docs/api/devices/unmanaged/errors.mdx b/mintlify-docs/api/devices/unmanaged/errors.mdx index fa6c7f77b..178308154 100644 --- a/mintlify-docs/api/devices/unmanaged/errors.mdx +++ b/mintlify-docs/api/devices/unmanaged/errors.mdx @@ -34,11 +34,11 @@ Each error is an object with the following shape: - Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). + Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). - Indicates that the error is a [connected account](/api/connected_accounts/object) error. + Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. @@ -87,7 +87,7 @@ Indicates that a subscription is required to connect. #### `empty_backup_access_code_pool` -Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. +Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. --- @@ -139,7 +139,7 @@ Indicates that the account is disconnected. #### `bridge_disconnected` -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). --- diff --git a/mintlify-docs/api/devices/unmanaged/events.mdx b/mintlify-docs/api/devices/unmanaged/events.mdx index 9ebb73b8f..c31afcaa0 100644 --- a/mintlify-docs/api/devices/unmanaged/events.mdx +++ b/mintlify-docs/api/devices/unmanaged/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Unmanaged Devices resource, ## `device.unmanaged.converted_to_managed` -An [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) was successfully converted to a managed device. +An [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices) was successfully converted to a managed device. @@ -72,7 +72,7 @@ An [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) was ## `device.unmanaged.connected` -The status of an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`. +The status of an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`. @@ -139,7 +139,7 @@ The status of an [unmanaged device](/core-concepts/devices/managed-and-unmanaged ## `device.unmanaged.disconnected` -The status of an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`. +The status of an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`. diff --git a/mintlify-docs/api/devices/unmanaged/object.mdx b/mintlify-docs/api/devices/unmanaged/object.mdx index c39647e42..6cac4f5d9 100644 --- a/mintlify-docs/api/devices/unmanaged/object.mdx +++ b/mintlify-docs/api/devices/unmanaged/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the unmanaged_device object exposes a limited set of pro ## The unmanaged_device Object -Represents an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed). +Represents an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed). @@ -156,7 +156,7 @@ Represents an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-de - Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). + Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). @@ -168,7 +168,7 @@ Represents an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-de - Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. diff --git a/mintlify-docs/api/locks/errors.mdx b/mintlify-docs/api/locks/errors.mdx index 5262b2a5e..fd783b5ea 100644 --- a/mintlify-docs/api/locks/errors.mdx +++ b/mintlify-docs/api/locks/errors.mdx @@ -38,7 +38,7 @@ Each error is an object with the following shape: - Indicates that the error is a [connected account](/api/connected_accounts/object) error. + Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. diff --git a/mintlify-docs/api/locks/events.mdx b/mintlify-docs/api/locks/events.mdx index 887706262..8ed2f7468 100644 --- a/mintlify-docs/api/locks/events.mdx +++ b/mintlify-docs/api/locks/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Lock resource, with example ## `lock.locked` -A [lock](/low-level-apis/smart-locks) was locked. +A [lock](https://docs.seam.co/low-level-apis/smart-locks) was locked. @@ -104,7 +104,7 @@ A [lock](/low-level-apis/smart-locks) was locked. ## `lock.unlocked` -A [lock](/low-level-apis/smart-locks) was unlocked. +A [lock](https://docs.seam.co/low-level-apis/smart-locks) was unlocked. @@ -208,7 +208,7 @@ A [lock](/low-level-apis/smart-locks) was unlocked. - Method by which the lock was unlocked. `keycode`: an [access code](/low-level-apis/smart-locks/access-codes) was used (see `access_code_id`). `manual`: a physical action such as a thumbturn or handle press. `remote`: a remote action via an app, Bluetooth, or the Seam API (see `action_attempt_id` if Seam-initiated; see `is_via_bluetooth` or `is_via_nfc` for the transport). `automatic`: triggered automatically, for example by a time-based schedule. `unknown`: could not be determined. + Method by which the lock was unlocked. `keycode`: an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was used (see `access_code_id`). `manual`: a physical action such as a thumbturn or handle press. `remote`: a remote action via an app, Bluetooth, or the Seam API (see `action_attempt_id` if Seam-initiated; see `is_via_bluetooth` or `is_via_nfc` for the transport). `automatic`: triggered automatically, for example by a time-based schedule. `unknown`: could not be determined. Possible values: `keycode`, `manual`, `automatic`, `unknown`, `remote` @@ -231,7 +231,7 @@ A [lock](/low-level-apis/smart-locks) was unlocked. ## `lock.access_denied` -The [lock](/low-level-apis/smart-locks) denied access to a user after one or more consecutive invalid attempts to unlock the device. +The [lock](https://docs.seam.co/low-level-apis/smart-locks) denied access to a user after one or more consecutive invalid attempts to unlock the device. diff --git a/mintlify-docs/api/locks/object.mdx b/mintlify-docs/api/locks/object.mdx index 2fc7a1c07..c0e65b4bf 100644 --- a/mintlify-docs/api/locks/object.mdx +++ b/mintlify-docs/api/locks/object.mdx @@ -286,7 +286,7 @@ Indicates whether the lock supports unlocking with an access code. **`capabilities_supported`** _List_ _of Enums_ -Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). +Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). --- @@ -304,7 +304,7 @@ Date and time at which the device object was created. **`custom_metadata`** _Record_ -Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. +Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. --- @@ -400,7 +400,7 @@ Enum values: **`is_connected_account_error`** _Boolean_ -Indicates that the error is a [connected account](/api/connected_accounts/object) error. +Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. --- @@ -437,7 +437,7 @@ Enum values: **`is_connected_account_error`** _Boolean_ -Indicates that the error is a [connected account](/api/connected_accounts/object) error. +Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. --- @@ -474,7 +474,7 @@ Enum values: **`is_connected_account_error`** _Boolean_ -Indicates that the error is a [connected account](/api/connected_accounts/object) error. +Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. --- @@ -615,7 +615,7 @@ Detailed description of the error. Provides insights into the issue and potentia -Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. +Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. **`created_at`** _Datetime_ @@ -863,7 +863,7 @@ Detailed description of the error. Provides insights into the issue and potentia -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). **`created_at`** _Datetime_ @@ -883,7 +883,7 @@ Enum values: **`is_bridge_error`** _Boolean_ -Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). +Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). --- @@ -903,7 +903,7 @@ Detailed description of the error. Provides insights into the issue and potentia **`is_managed`** _Boolean_ -Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices). +Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). --- @@ -2605,7 +2605,7 @@ Supported code lengths for access codes. **`supports_backup_access_code_pool`** _Boolean_ -Indicates whether the device supports a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes). +Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). --- @@ -2845,7 +2845,7 @@ Indicates that the lock is not connected to a bridge. **`empty_backup_access_code_pool`** -Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. +Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. --- @@ -2893,7 +2893,7 @@ Indicates that the account is disconnected. **`bridge_disconnected`** -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). --- @@ -3047,20 +3047,20 @@ Indicates that the Wyze Lock is not connected to a gateway. [**`/locks/configure_auto_lock`**](./configure_auto_lock) -Configures the auto-lock setting for a specified [lock](/low-level-apis/smart-locks). +Configures the auto-lock setting for a specified [lock](https://docs.seam.co/low-level-apis/smart-locks). [**`/locks/get`**](./get) -Returns a specified [lock](/low-level-apis/smart-locks). +Returns a specified [lock](https://docs.seam.co/low-level-apis/smart-locks). [**`/locks/list`**](./list) -Returns a list of all [locks](/low-level-apis/smart-locks). +Returns a list of all [locks](https://docs.seam.co/low-level-apis/smart-locks). [**`/locks/lock_door`**](./lock_door) -Locks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock). +Locks a [lock](https://docs.seam.co/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](https://docs.seam.co/low-level-apis/smart-locks/lock-and-unlock). [**`/locks/unlock_door`**](./unlock_door) -Unlocks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock). +Unlocks a [lock](https://docs.seam.co/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](https://docs.seam.co/low-level-apis/smart-locks/lock-and-unlock). diff --git a/mintlify-docs/api/locks/simulate/object.mdx b/mintlify-docs/api/locks/simulate/object.mdx index e9f45962e..11142e090 100644 --- a/mintlify-docs/api/locks/simulate/object.mdx +++ b/mintlify-docs/api/locks/simulate/object.mdx @@ -7,8 +7,8 @@ description: 'Use the lock simulation endpoints to mimic keypad code entry and m [**`/locks/simulate/keypad_code_entry`**](./keypad_code_entry) -Simulates the entry of a code on a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). +Simulates the entry of a code on a keypad. You can only perform this action for [August](https://docs.seam.co/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). [**`/locks/simulate/manual_lock_via_keypad`**](./manual_lock_via_keypad) -Simulates a manual lock action using a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces). +Simulates a manual lock action using a keypad. You can only perform this action for [August](https://docs.seam.co/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/noise_sensors/noise_thresholds/events.mdx b/mintlify-docs/api/noise_sensors/noise_thresholds/events.mdx index 6cb352034..bdbf279b5 100644 --- a/mintlify-docs/api/noise_sensors/noise_thresholds/events.mdx +++ b/mintlify-docs/api/noise_sensors/noise_thresholds/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Noise Thresholds resource, ## `noise_sensor.noise_threshold_triggered` -Extended periods of noise or noise exceeding a [threshold](/capability-guides/noise-sensors#what-is-a-threshold) were detected. +Extended periods of noise or noise exceeding a [threshold](https://docs.seam.co/capability-guides/noise-sensors#what-is-a-threshold) were detected. diff --git a/mintlify-docs/api/noise_sensors/noise_thresholds/object.mdx b/mintlify-docs/api/noise_sensors/noise_thresholds/object.mdx index 2dfe97b0c..3dbf645ea 100644 --- a/mintlify-docs/api/noise_sensors/noise_thresholds/object.mdx +++ b/mintlify-docs/api/noise_sensors/noise_thresholds/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the noise_threshold object sets the limits of noise tole ## The noise_threshold Object -Represents a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them. +Represents a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them. @@ -48,7 +48,7 @@ Represents a [noise threshold](/capability-guides/noise-sensors/configure-noise- - Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](/device-and-system-integration-guides/noiseaware-sensors). + Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors). diff --git a/mintlify-docs/api/noise_sensors/object.mdx b/mintlify-docs/api/noise_sensors/object.mdx index 18486f229..ebd5eb2c1 100644 --- a/mintlify-docs/api/noise_sensors/object.mdx +++ b/mintlify-docs/api/noise_sensors/object.mdx @@ -17,4 +17,4 @@ The Seam API represents a noise sensor as a `device` resource that includes both [**`/noise_sensors/list`**](./list) -Returns a list of all [noise sensors](/capability-guides/noise-sensors). +Returns a list of all [noise sensors](https://docs.seam.co/capability-guides/noise-sensors). diff --git a/mintlify-docs/api/noise_sensors/simulate/object.mdx b/mintlify-docs/api/noise_sensors/simulate/object.mdx index ab7283be5..35c3003b9 100644 --- a/mintlify-docs/api/noise_sensors/simulate/object.mdx +++ b/mintlify-docs/api/noise_sensors/simulate/object.mdx @@ -7,4 +7,4 @@ description: 'Use the noise sensor simulation endpoint to trigger a noise thresh [**`/noise_sensors/simulate/trigger_noise_threshold`**](./trigger_noise_threshold) -Simulates the triggering of a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). +Simulates the triggering of a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). diff --git a/mintlify-docs/api/phones/object.mdx b/mintlify-docs/api/phones/object.mdx index fcca6b547..e6f36c243 100644 --- a/mintlify-docs/api/phones/object.mdx +++ b/mintlify-docs/api/phones/object.mdx @@ -47,7 +47,7 @@ Represents an app user's mobile phone. - Optional [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) for the phone. + Optional [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) for the phone. diff --git a/mintlify-docs/api/phones/simulate/object.mdx b/mintlify-docs/api/phones/simulate/object.mdx index 58a0f2614..c744f5d83 100644 --- a/mintlify-docs/api/phones/simulate/object.mdx +++ b/mintlify-docs/api/phones/simulate/object.mdx @@ -7,4 +7,4 @@ description: 'Use the phone simulation endpoint to create a simulated phone in a [**`/phones/simulate/create_sandbox_phone`**](./create_sandbox_phone) -Creates a new simulated phone in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity). +Creates a new simulated phone in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](https://docs.seam.co/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity). diff --git a/mintlify-docs/api/thermostats/events.mdx b/mintlify-docs/api/thermostats/events.mdx index 87c9861a4..594f63ae1 100644 --- a/mintlify-docs/api/thermostats/events.mdx +++ b/mintlify-docs/api/thermostats/events.mdx @@ -5,7 +5,7 @@ description: 'Webhook events that Seam emits for the Thermostat resource, with e ## `thermostat.climate_preset_activated` -A thermostat [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) was activated. +A thermostat [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) was activated. @@ -87,7 +87,7 @@ A thermostat [climate preset](/capability-guides/thermostats/creating-and-managi ## `thermostat.manually_adjusted` -A [thermostat](/capability-guides/thermostats) was adjusted manually. +A [thermostat](https://docs.seam.co/capability-guides/thermostats) was adjusted manually. @@ -126,11 +126,11 @@ A [thermostat](/capability-guides/thermostats) was adjusted manually. - Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). @@ -158,21 +158,21 @@ A [thermostat](/capability-guides/thermostats) was adjusted manually. - Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. Possible values: `auto`, `on`, `circulate` - Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. Possible values: `off`, `heat`, `cool`, `heat_cool`, `eco` @@ -195,7 +195,7 @@ A [thermostat](/capability-guides/thermostats) was adjusted manually. ## `thermostat.temperature_threshold_exceeded` -A [thermostat's](/capability-guides/thermostats) temperature reading exceeded the set [threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds). +A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature reading exceeded the set [threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds). @@ -292,7 +292,7 @@ A [thermostat's](/capability-guides/thermostats) temperature reading exceeded th ## `thermostat.temperature_threshold_no_longer_exceeded` -A [thermostat's](/capability-guides/thermostats) temperature reading no longer exceeds the set [threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds). +A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature reading no longer exceeds the set [threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds). @@ -389,7 +389,7 @@ A [thermostat's](/capability-guides/thermostats) temperature reading no longer e ## `thermostat.temperature_reached_set_point` -A [thermostat's](/capability-guides/thermostats) temperature reading is within 1 °C of the configured cooling or heating [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). +A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature reading is within 1 °C of the configured cooling or heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). @@ -476,7 +476,7 @@ A [thermostat's](/capability-guides/thermostats) temperature reading is within 1 ## `thermostat.temperature_changed` -A [thermostat's](/capability-guides/thermostats) reported temperature changed by at least 1 °C. +A [thermostat's](https://docs.seam.co/capability-guides/thermostats) reported temperature changed by at least 1 °C. diff --git a/mintlify-docs/api/thermostats/object.mdx b/mintlify-docs/api/thermostats/object.mdx index 5624852b9..cc9a32427 100644 --- a/mintlify-docs/api/thermostats/object.mdx +++ b/mintlify-docs/api/thermostats/object.mdx @@ -526,7 +526,7 @@ Indicates whether the lock supports unlocking with an access code. **`capabilities_supported`** _List_ _of Enums_ -Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags). +Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). --- @@ -544,7 +544,7 @@ Date and time at which the device object was created. **`custom_metadata`** _Record_ -Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. +Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. --- @@ -640,7 +640,7 @@ Enum values: **`is_connected_account_error`** _Boolean_ -Indicates that the error is a [connected account](/api/connected_accounts/object) error. +Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. --- @@ -677,7 +677,7 @@ Enum values: **`is_connected_account_error`** _Boolean_ -Indicates that the error is a [connected account](/api/connected_accounts/object) error. +Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. --- @@ -714,7 +714,7 @@ Enum values: **`is_connected_account_error`** _Boolean_ -Indicates that the error is a [connected account](/api/connected_accounts/object) error. +Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts/object) error. --- @@ -855,7 +855,7 @@ Detailed description of the error. Provides insights into the issue and potentia -Indicates that the [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. +Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. **`created_at`** _Datetime_ @@ -1103,7 +1103,7 @@ Detailed description of the error. Provides insights into the issue and potentia -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). **`created_at`** _Datetime_ @@ -1123,7 +1123,7 @@ Enum values: **`is_bridge_error`** _Boolean_ -Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge). +Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). --- @@ -1143,7 +1143,7 @@ Detailed description of the error. Provides insights into the issue and potentia **`is_managed`** _Boolean_ -Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices). +Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). --- @@ -1842,7 +1842,7 @@ Unique identifier for the Seam workspace associated with the device. **`active_thermostat_schedule`** _Object_ -Active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). +Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). **Deprecated**. Use `active_thermostat_schedule_id` with @@ -1852,19 +1852,19 @@ Active [thermostat schedule](/capability-guides/thermostats/creating-and-managin - Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - ID of the desired [thermostat](/capability-guides/thermostats) device. + ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). Unique identifier of the type of error. Enables quick recognition and categorization of the issue. @@ -1873,19 +1873,19 @@ Active [thermostat schedule](/capability-guides/thermostats/creating-and-managin Detailed description of the error. Provides insights into the issue and potentially how to rectify it. - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). ID of the workspace that contains the thermostat schedule. @@ -1896,7 +1896,7 @@ Active [thermostat schedule](/capability-guides/thermostats/creating-and-managin **`active_thermostat_schedule_id`** _UUID_ -ID of the active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). +ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). --- @@ -1996,33 +1996,33 @@ Climate preset modes that the thermostat supports, such as "home", "away", "wake **`available_climate_presets`** _List_ _of Objects_ -Available [climate presets](/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. +Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. can_delete Boolean -Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. +Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. can_edit Boolean -Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. +Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. can_use_with_thermostat_daily_programs Boolean -Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. +Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. climate_preset_key String -Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). +Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). climate_preset_mode @@ -2047,21 +2047,21 @@ The climate preset mode for the thermostat, based on the available climate prese Number -Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). +Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). cooling_set_point_fahrenheit Number -Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). +Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). display_name String -Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). +Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). ecobee_metadata @@ -2111,21 +2111,21 @@ Indicates whether the climate preset is owned by the user or the system. -Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. +Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. heating_set_point_celsius Number -Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). +Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). heating_set_point_fahrenheit Number -Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). +Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). hvac_mode_setting @@ -2142,21 +2142,21 @@ Temperature to which the thermostat should heat (in °F). See also [Set Points]( -Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. +Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. manual_override_allowed Boolean -Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). +Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). name String -User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). +User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). @@ -2247,16 +2247,16 @@ Current climate setting. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. @@ -2273,13 +2273,13 @@ Current climate setting. - Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). Metadata specific to the Ecobee climate, if applicable. @@ -2301,7 +2301,7 @@ Current climate setting. - Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. @@ -2312,13 +2312,13 @@ Current climate setting. - Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. @@ -2331,11 +2331,11 @@ Current climate setting. - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). @@ -2351,16 +2351,16 @@ Current climate setting. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. - Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. - Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. @@ -2377,13 +2377,13 @@ Current climate setting. - Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). Metadata specific to the Ecobee climate, if applicable. @@ -2405,7 +2405,7 @@ Current climate setting. - Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. @@ -2416,13 +2416,13 @@ Current climate setting. - Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). - Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. @@ -2435,11 +2435,11 @@ Current climate setting. - Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). **Deprecated**. Use 'thermostat_schedule.is_override_allowed' - User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). + User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). @@ -2528,7 +2528,7 @@ Metadata for an ecobee device. **`fallback_climate_preset_key`** _String_ -Key of the [fallback climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. +Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. --- @@ -2813,25 +2813,25 @@ Metadata for a Lockly device. **`max_cooling_set_point_celsius`** _Number_ -Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. +Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. --- **`max_cooling_set_point_fahrenheit`** _Number_ -Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. +Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. --- **`max_heating_set_point_celsius`** _Number_ -Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. +Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. --- **`max_heating_set_point_fahrenheit`** _Number_ -Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. +Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. --- @@ -2849,37 +2849,37 @@ Maximum number of climate presets that the thermostat can support for weekly pro **`min_cooling_set_point_celsius`** _Number_ -Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. +Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. --- **`min_cooling_set_point_fahrenheit`** _Number_ -Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. +Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. --- **`min_heating_cooling_delta_celsius`** _Number_ -Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. +Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. --- **`min_heating_cooling_delta_fahrenheit`** _Number_ -Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. +Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. --- **`min_heating_set_point_celsius`** _Number_ -Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. +Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. --- **`min_heating_set_point_fahrenheit`** _Number_ -Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. +Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. --- @@ -3356,21 +3356,21 @@ Reported temperature in °F. **`temperature_threshold`** _Object_ -Current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. +Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Lower limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Lower limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Upper limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. - Upper limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. @@ -3384,7 +3384,7 @@ Precision of the thermostat's period in minutes. For example, if the thermostat **`thermostat_daily_programs`** _List_ _of Objects_ -Configured [daily programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. +Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. created_at Datetime @@ -3432,7 +3432,7 @@ ID of the workspace that contains the thermostat daily program. **`thermostat_weekly_program`** _Object_ -Current [weekly program](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. +Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. @@ -3659,7 +3659,7 @@ Indicates that the account is disconnected. **`bridge_disconnected`** -Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). +Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected). --- @@ -3699,55 +3699,55 @@ Indicates that a third-party integration has been detected. [**`/thermostats/activate_climate_preset`**](./activate_climate_preset) -Activates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). +Activates a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). [**`/thermostats/cool`**](./cool) -Sets a specified [thermostat](/capability-guides/thermostats) to [cool mode](/capability-guides/thermostats/configure-current-climate-settings). +Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [cool mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings). [**`/thermostats/create_climate_preset`**](./create_climate_preset) -Creates a [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). +Creates a [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). [**`/thermostats/delete_climate_preset`**](./delete_climate_preset) -Deletes a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). +Deletes a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). [**`/thermostats/heat`**](./heat) -Sets a specified [thermostat](/capability-guides/thermostats) to [heat mode](/capability-guides/thermostats/configure-current-climate-settings). +Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [heat mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings). [**`/thermostats/heat_cool`**](./heat_cool) -Sets a specified [thermostat](/capability-guides/thermostats) to [heat-cool ("auto") mode](/capability-guides/thermostats/configure-current-climate-settings). +Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [heat-cool ("auto") mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings). [**`/thermostats/list`**](./list) -Returns a list of all [thermostats](/capability-guides/thermostats). +Returns a list of all [thermostats](https://docs.seam.co/capability-guides/thermostats). [**`/thermostats/off`**](./off) -Sets a specified [thermostat](/capability-guides/thermostats) to ["off" mode](/capability-guides/thermostats/configure-current-climate-settings). +Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to ["off" mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings). [**`/thermostats/set_fallback_climate_preset`**](./set_fallback_climate_preset) -Sets a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) as the ["fallback"](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) preset for a specified [thermostat](/capability-guides/thermostats). +Sets a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) as the ["fallback"](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) preset for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). [**`/thermostats/set_fan_mode`**](./set_fan_mode) -Sets the [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) for a specified [thermostat](/capability-guides/thermostats). +Sets the [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). [**`/thermostats/set_hvac_mode`**](./set_hvac_mode) -Sets the [HVAC mode](/capability-guides/thermostats/configure-current-climate-settings) for a specified [thermostat](/capability-guides/thermostats). +Sets the [HVAC mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). [**`/thermostats/set_temperature_threshold`**](./set_temperature_threshold) -Sets a [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range. +Sets a [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range. [**`/thermostats/update_climate_preset`**](./update_climate_preset) -Updates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats). +Updates a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats). [**`/thermostats/update_weekly_program`**](./update_weekly_program) diff --git a/mintlify-docs/api/thermostats/schedules/object.mdx b/mintlify-docs/api/thermostats/schedules/object.mdx index e51d08a4d..af638610c 100644 --- a/mintlify-docs/api/thermostats/schedules/object.mdx +++ b/mintlify-docs/api/thermostats/schedules/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the thermostat_schedule object activates a climate prese ## The thermostat_schedule Object -Represents a [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that activates a configured [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) on a [thermostat](/capability-guides/thermostats) at a specified starting time and deactivates the climate preset at a specified ending time. +Represents a [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that activates a configured [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) on a [thermostat](https://docs.seam.co/capability-guides/thermostats) at a specified starting time and deactivates the climate preset at a specified ending time. @@ -32,43 +32,43 @@ Represents a [thermostat schedule](/capability-guides/thermostats/creating-and-m ## Properties - Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. - ID of the desired [thermostat](/capability-guides/thermostats) device. + ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. - Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). - User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). - Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). diff --git a/mintlify-docs/api/thermostats/simulate/object.mdx b/mintlify-docs/api/thermostats/simulate/object.mdx index ad1c7b8b2..0a0fbf06e 100644 --- a/mintlify-docs/api/thermostats/simulate/object.mdx +++ b/mintlify-docs/api/thermostats/simulate/object.mdx @@ -7,8 +7,8 @@ description: 'Use the thermostat simulation endpoints to mimic HVAC mode changes [**`/thermostats/simulate/hvac_mode_adjusted`**](./hvac_mode_adjusted) -Simulates having adjusted the [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](/capability-guides/thermostats). Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). +Simulates having adjusted the [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](https://docs.seam.co/capability-guides/thermostats). Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). [**`/thermostats/simulate/temperature_reached`**](./temperature_reached) -Simulates a [thermostat](/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). +Simulates a [thermostat](https://docs.seam.co/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints). diff --git a/mintlify-docs/api/user_identities/object.mdx b/mintlify-docs/api/user_identities/object.mdx index db4e6273f..9a3980edd 100644 --- a/mintlify-docs/api/user_identities/object.mdx +++ b/mintlify-docs/api/user_identities/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the user_identity object links a person to their applica ## The user_identity Object -Represents a [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with an application user account. +Represents a [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with an application user account. diff --git a/mintlify-docs/api/user_identities/unmanaged/object.mdx b/mintlify-docs/api/user_identities/unmanaged/object.mdx index 8bb493fef..9c4e597c5 100644 --- a/mintlify-docs/api/user_identities/unmanaged/object.mdx +++ b/mintlify-docs/api/user_identities/unmanaged/object.mdx @@ -7,14 +7,14 @@ description: 'Use the unmanaged user identity endpoints to get, list, and update [**`/user_identities/unmanaged/get`**](./get) -Returns a specified unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). +Returns a specified unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). [**`/user_identities/unmanaged/list`**](./list) -Returns a list of all unmanaged [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). +Returns a list of all unmanaged [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false). [**`/user_identities/unmanaged/update`**](./update) -Updates an unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed. +Updates an unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed. This endpoint can only be used to convert unmanaged user identities to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed user identities back to unmanaged. diff --git a/mintlify-docs/api/webhooks/object.mdx b/mintlify-docs/api/webhooks/object.mdx index 2f49dae89..6940bb726 100644 --- a/mintlify-docs/api/webhooks/object.mdx +++ b/mintlify-docs/api/webhooks/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the webhook object lets you receive event notifications ## The webhook Object -Represents a [webhook](/developer-tools/webhooks) that enables you to receive notifications of events. When you create a webhook, specify the endpoint URL at which you want to receive events and the set of event types that you want to receive. +Represents a [webhook](https://docs.seam.co/developer-tools/webhooks) that enables you to receive notifications of events. When you create a webhook, specify the endpoint URL at which you want to receive events and the set of event types that you want to receive. @@ -28,15 +28,15 @@ Represents a [webhook](/developer-tools/webhooks) that enables you to receive no ## Properties - Types of events that the [webhook](/developer-tools/webhooks) should receive. + Types of events that the [webhook](https://docs.seam.co/developer-tools/webhooks) should receive. - Secret associated with the [webhook](/developer-tools/webhooks). + Secret associated with the [webhook](https://docs.seam.co/developer-tools/webhooks). - URL for the [webhook](/developer-tools/webhooks). + URL for the [webhook](https://docs.seam.co/developer-tools/webhooks). diff --git a/mintlify-docs/api/workspaces/object.mdx b/mintlify-docs/api/workspaces/object.mdx index 0a2dec71c..c9afa45dc 100644 --- a/mintlify-docs/api/workspaces/object.mdx +++ b/mintlify-docs/api/workspaces/object.mdx @@ -5,7 +5,7 @@ description: 'Learn how the workspace object represents an isolated Seam environ ## The workspace Object -Represents a Seam [workspace](/core-concepts/workspaces). A workspace is a top-level entity that encompasses all other resources below it, such as devices, connected accounts, and Connect Webviews. Seam provides two types of workspaces. A [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces) is a special type of workspace designed for testing code. Sandbox workspaces offer test device accounts and virtual devices that you can connect and control. This ability to work with virtual devices is quite handy because it removes the need to own physical devices from multiple brands. To connect real devices and systems to Seam, use a [production workspace](/core-concepts/workspaces#production-workspaces). +Represents a Seam [workspace](https://docs.seam.co/core-concepts/workspaces). A workspace is a top-level entity that encompasses all other resources below it, such as devices, connected accounts, and Connect Webviews. Seam provides two types of workspaces. A [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) is a special type of workspace designed for testing code. Sandbox workspaces offer test device accounts and virtual devices that you can connect and control. This ability to work with virtual devices is quite handy because it removes the need to own physical devices from multiple brands. To connect real devices and systems to Seam, use a [production workspace](https://docs.seam.co/core-concepts/workspaces#production-workspaces). @@ -79,7 +79,7 @@ Represents a Seam [workspace](/core-concepts/workspaces). A workspace is a top-l ## Properties - Company name associated with the [workspace](/core-concepts/workspaces). + Company name associated with the [workspace](https://docs.seam.co/core-concepts/workspaces). @@ -90,19 +90,19 @@ Represents a Seam [workspace](/core-concepts/workspaces). A workspace is a top-l The connect webview customization. - URL of the inviter logo for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + URL of the inviter logo for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). - Logo shape for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + Logo shape for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). - Primary button color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + Primary button color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). - Primary button text color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + Primary button text color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). - Success message for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + Success message for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). @@ -112,15 +112,15 @@ Represents a Seam [workspace](/core-concepts/workspaces). A workspace is a top-l - Indicates whether the workspace is a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). + Indicates whether the workspace is a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). - Indicates whether the [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces) is suspended. Seam suspends sandbox workspaces that have not been accessed in 14 days. + Indicates whether the [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) is suspended. Seam suspends sandbox workspaces that have not been accessed in 14 days. - Name of the [workspace](/core-concepts/workspaces). + Name of the [workspace](https://docs.seam.co/core-concepts/workspaces). @@ -128,7 +128,7 @@ Represents a Seam [workspace](/core-concepts/workspaces). A workspace is a top-l - Publishable key for the [workspace](/core-concepts/workspaces). This key is used to identify the workspace in client-side applications. + Publishable key for the [workspace](https://docs.seam.co/core-concepts/workspaces). This key is used to identify the workspace in client-side applications. diff --git a/mintlify-docs/openapi.json b/mintlify-docs/openapi.json index 9a0f99399..25a659400 100644 --- a/mintlify-docs/openapi.json +++ b/mintlify-docs/openapi.json @@ -12,7 +12,7 @@ "components": { "schemas": { "access_code": { - "description": "Represents a smart lock [access code](/low-level-apis/smart-locks/access-codes).", + "description": "Represents a smart lock [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", "properties": { "access_code_id": { "description": "Unique identifier for the access code.", @@ -92,7 +92,7 @@ }, "errors": { "type": "array", - "description": "Errors associated with the [access code](/low-level-apis/smart-locks/access-codes).", + "description": "Errors associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", "items": { "type": "object", "properties": { @@ -450,7 +450,7 @@ "type": "string" }, "status": { - "description": "Current status of the access code within the operational lifecycle. Values are `setting`, a transitional phase that indicates that the code is being configured or activated; `set`, which indicates that the code is active and operational; `unset`, which indicates a deactivated or unused state, either before activation or after deliberate deactivation; `removing`, which indicates a transitional period in which the code is being deleted or made inactive; and `unknown`, which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. See also [Lifecycle of Access Codes](/low-level-apis/smart-locks/access-codes/lifecycle-of-access-codes).", + "description": "Current status of the access code within the operational lifecycle. Values are `setting`, a transitional phase that indicates that the code is being configured or activated; `set`, which indicates that the code is active and operational; `unset`, which indicates a deactivated or unused state, either before activation or after deliberate deactivation; `removing`, which indicates a transitional period in which the code is being deleted or made inactive; and `unknown`, which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. See also [Lifecycle of Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/lifecycle-of-access-codes).", "enum": [ "setting", "set", @@ -470,7 +470,7 @@ }, "warnings": { "type": "array", - "description": "Warnings associated with the [access code](/low-level-apis/smart-locks/access-codes).", + "description": "Warnings associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", "items": { "type": "object", "properties": { @@ -563,7 +563,7 @@ "type": "string" }, "errors": { - "description": "Errors associated with the [access grant](/use-cases/granting-access).", + "description": "Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "items": { "discriminator": { "propertyName": "error_code" @@ -867,7 +867,7 @@ }, "warnings": { "type": "array", - "description": "Warnings associated with the [access grant](/use-cases/granting-access).", + "description": "Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "items": { "type": "object", "properties": { @@ -987,7 +987,7 @@ "type": "string" }, "pending_mutations": { - "description": "Pending mutations for the [access method](/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", + "description": "Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -1197,15 +1197,15 @@ "type": "array" }, "warnings": { - "description": "Warnings associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", + "description": "Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", "items": { - "description": "Warning associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", + "description": "Warning associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access method](/use-cases/granting-access/creating-an-access-grant) is being deleted.", + "description": "Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -1232,7 +1232,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access method](/use-cases/granting-access/creating-an-access-grant) are being updated.", + "description": "Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -1392,7 +1392,7 @@ }, "oneOf": [ { - "description": "Indicates that the [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups) was not created on the [access system](/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co).", + "description": "Indicates that the [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups) was not created on the [access system](https://docs.seam.co/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co).", "properties": { "created_at": { "description": "Date and time at which Seam created the error.", @@ -1918,10 +1918,10 @@ "x-route-path": "/acs/access_groups" }, "acs_credential": { - "description": "Means by which an [access control system user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems).", + "description": "Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).", "properties": { "access_method": { - "description": "Access method for the [credential](/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.", + "description": "Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.", "enum": [ "code", "card", @@ -1931,7 +1931,7 @@ "type": "string" }, "acs_credential_id": { - "description": "ID of the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, @@ -1941,17 +1941,17 @@ "type": "string" }, "acs_system_id": { - "description": "ID of the [access control system](/low-level-apis/access-systems) that contains the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, "acs_user_id": { - "description": "ID of the [ACS user](/low-level-apis/access-systems/user-management) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "assa_abloy_vostio_metadata": { - "description": "Vostio-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Vostio-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "properties": { "auto_join": { "description": "Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.", @@ -1987,36 +1987,36 @@ "type": "object" }, "card_number": { - "description": "Number of the card associated with the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Number of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "nullable": true, "type": "string" }, "code": { - "description": "Access (PIN) code for the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Access (PIN) code for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "nullable": true, "type": "string" }, "connected_account_id": { - "description": "ID of the [connected account](/low-level-apis/access-systems/managing-credentials) to which the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/managing-credentials#connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was created.", + "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name that corresponds to the [credential](/low-level-apis/access-systems/managing-credentials) type.", + "description": "Display name that corresponds to the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.", "minLength": 1, "type": "string" }, "ends_at": { - "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.", + "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.", "type": "string" }, "errors": { - "description": "Errors associated with the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Errors associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "items": { "properties": { "error_code": { @@ -2035,7 +2035,7 @@ "type": "array" }, "external_type": { - "description": "Brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.", + "description": "Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.", "enum": [ "pti_card", "brivo_credential", @@ -2053,15 +2053,15 @@ "type": "string" }, "external_type_display_name": { - "description": "Display name that corresponds to the brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type.", + "description": "Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.", "type": "string" }, "is_issued": { - "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.", + "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.", "type": "boolean" }, "is_latest_desired_state_synced_with_provider": { - "description": "Indicates whether the latest state of the [credential](/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.", + "description": "Indicates whether the latest state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.", "nullable": true, "type": "boolean" }, @@ -2073,41 +2073,41 @@ "type": "boolean" }, "is_multi_phone_sync_credential": { - "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", + "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.", + "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.", "type": "boolean" }, "issued_at": { - "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was encoded onto a card.", + "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was encoded onto a card.", "format": "date-time", "nullable": true, "type": "string" }, "latest_desired_state_synced_with_provider_at": { - "description": "Date and time at which the state of the [credential](/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.", + "description": "Date and time at which the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.", "format": "date-time", "nullable": true, "type": "string" }, "parent_acs_credential_id": { - "description": "ID of the parent [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, "starts_at": { - "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](/api/user_identities/object) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [user identity](https://docs.seam.co/api/user_identities/object) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "visionline_metadata": { - "description": "Visionline-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "properties": { "auto_join": { "description": "Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.", @@ -2165,7 +2165,7 @@ }, "warnings": { "type": "array", - "description": "Warnings associated with the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Warnings associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "items": { "type": "object", "properties": { @@ -2186,7 +2186,7 @@ } }, "workspace_id": { - "description": "ID of the workspace that contains the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the workspace that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" } @@ -2290,36 +2290,36 @@ "x-undocumented": "Deprecated. Will be removed." }, "acs_encoder": { - "description": "Represents a hardware device that encodes [credential](/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](/low-level-apis/access-systems).", + "description": "Represents a hardware device that encodes [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](https://docs.seam.co/low-level-apis/access-systems).", "properties": { "acs_encoder_id": { - "description": "ID of the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners.", + "description": "ID of the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners.", "format": "uuid", "type": "string" }, "acs_system_id": { - "description": "ID of the [access control system](/low-level-apis/access-systems) that contains the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "format": "uuid", "type": "string" }, "connected_account_id": { - "description": "ID of the connected account that contains the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "ID of the connected account that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was created.", + "description": "Date and time at which the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name for the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Display name for the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "type": "string" }, "errors": { - "description": "Errors associated with the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Errors associated with the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "items": { - "description": "Error associated with the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Error associated with the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "properties": { "created_at": { "description": "Date and time at which Seam created the error.", @@ -2349,7 +2349,7 @@ "type": "array" }, "workspace_id": { - "description": "ID of the workspace that contains the [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "ID of the workspace that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "format": "uuid", "type": "string" } @@ -2367,20 +2367,20 @@ "x-route-path": "/acs/encoders" }, "acs_entrance": { - "description": "Represents an [entrance](/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](/low-level-apis/access-systems).", + "description": "Represents an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/low-level-apis/access-systems).", "properties": { "acs_entrance_id": { - "description": "ID of the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, "acs_system_id": { - "description": "ID of the [access control system](/low-level-apis/access-systems) that contains the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, "assa_abloy_vostio_metadata": { - "description": "ASSA ABLOY Vostio-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ASSA ABLOY Vostio-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "door_name": { "description": "Name of the door in the Vostio access system.", @@ -2417,7 +2417,7 @@ "type": "object" }, "avigilon_alta_metadata": { - "description": "Avigilon Alta-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Avigilon Alta-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "entry_name": { "description": "Entry name for an Avigilon Alta system.", @@ -2463,7 +2463,7 @@ "type": "object" }, "brivo_metadata": { - "description": "Brivo-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Brivo-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "access_point_id": { "description": "ID of the access point in the Brivo access system.", @@ -2507,21 +2507,21 @@ "type": "boolean" }, "connected_account_id": { - "description": "ID of the [connected account](/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [entrance](/low-level-apis/access-systems/retrieving-entrance-details) was created.", + "description": "Date and time at which the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name for the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Display name for the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "type": "string" }, "dormakaba_ambiance_metadata": { - "description": "dormakaba Ambiance-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "dormakaba Ambiance-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "access_point_name": { "description": "Name of the access point in the dormakaba Ambiance access system.", @@ -2534,7 +2534,7 @@ "type": "object" }, "dormakaba_community_metadata": { - "description": "dormakaba Community-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "dormakaba Community-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "access_point_profile": { "description": "Type of access point profile in the dormakaba Community access system.", @@ -2547,7 +2547,7 @@ "type": "object" }, "errors": { - "description": "Errors associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Errors associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "items": { "properties": { "error_code": { @@ -2568,7 +2568,7 @@ "type": "array" }, "hotek_metadata": { - "description": "Hotek-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Hotek-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "common_area_name": { "description": "Display name of the entrance.", @@ -2586,11 +2586,11 @@ "type": "object" }, "is_locked": { - "description": "Indicates whether the [entrance](/low-level-apis/access-systems/retrieving-entrance-details) is currently locked.", + "description": "Indicates whether the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) is currently locked.", "type": "boolean" }, "latch_metadata": { - "description": "Latch-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Latch-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "accessibility_type": { "description": "Accessibility type in the Latch access system.", @@ -2618,7 +2618,7 @@ "type": "object" }, "salto_ks_metadata": { - "description": "Salto KS-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Salto KS-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "battery_level": { "description": "Battery level of the door access device.", @@ -2662,7 +2662,7 @@ "type": "object" }, "salto_space_metadata": { - "description": "Salto Space-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Salto Space-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "audit_on_keys": { "description": "Indicates whether AuditOnKeys is enabled for the door in the Salto Space access system.", @@ -2700,7 +2700,7 @@ "type": "array" }, "visionline_metadata": { - "description": "Visionline-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Visionline-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "door_category": { "description": "Category of the door in the Visionline access system.", @@ -2751,9 +2751,9 @@ "type": "object" }, "warnings": { - "description": "Warnings associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Warnings associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "items": { - "description": "Warning associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Warning associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "discriminator": { "propertyName": "warning_code" }, @@ -2885,31 +2885,31 @@ "x-route-path": "/acs/entrances" }, "acs_system": { - "description": "Represents an [access control system](/low-level-apis/access-systems).\n\nWithin an `acs_system`, create [`acs_user`s](/api/acs/users/object) and [`acs_credential`s](/api/acs/credentials/object) to grant access to the `acs_user`s.\n\nFor details about the resources associated with an access control system, see the [access control systems namespace](/api/acs/object).", + "description": "Represents an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nWithin an `acs_system`, create [`acs_user`s](https://docs.seam.co/api/acs/users/object#acs_user) and [`acs_credential`s](https://docs.seam.co/api/acs/credentials/object#acs_credential) to grant access to the `acs_user`s.\n\nFor details about the resources associated with an access control system, see the [access control systems namespace](https://docs.seam.co/api/acs/object).", "properties": { "acs_access_group_count": { - "description": "Number of access groups in the [access control system](/low-level-apis/access-systems).", + "description": "Number of access groups in the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "format": "float", "type": "number" }, "acs_system_id": { - "description": "ID of the [access control system](/low-level-apis/access-systems).", + "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "format": "uuid", "type": "string" }, "acs_user_count": { - "description": "Number of users in the [access control system](/low-level-apis/access-systems).", + "description": "Number of users in the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "format": "float", "type": "number" }, "connected_account_id": { - "description": "ID of the connected account associated with the [access control system](/low-level-apis/access-systems).", + "description": "ID of the connected account associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "format": "uuid", "type": "string" }, "connected_account_ids": { "deprecated": true, - "description": "IDs of the [connected accounts](/core-concepts/connected-accounts) associated with the [access control system](/low-level-apis/access-systems).", + "description": "IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "items": { "format": "uuid", "type": "string" @@ -2918,19 +2918,19 @@ "x-deprecated": "Use `connected_account_id`." }, "created_at": { - "description": "Date and time at which the [access control system](/low-level-apis/access-systems) was created.", + "description": "Date and time at which the [access control system](https://docs.seam.co/low-level-apis/access-systems) was created.", "format": "date-time", "type": "string" }, "default_credential_manager_acs_system_id": { - "description": "ID of the default credential manager `acs_system` for this [access control system](/low-level-apis/access-systems).", + "description": "ID of the default credential manager `acs_system` for this [access control system](https://docs.seam.co/low-level-apis/access-systems).", "format": "uuid", "nullable": true, "type": "string" }, "errors": { "type": "array", - "description": "Errors associated with the [access control system](/low-level-apis/access-systems).", + "description": "Errors associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "items": { "type": "object", "properties": { @@ -2951,7 +2951,7 @@ } }, "external_type": { - "description": "Brand-specific terminology for the [access control system](/low-level-apis/access-systems) type.", + "description": "Brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type.", "enum": [ "pti_site", "avigilon_alta_org", @@ -2972,15 +2972,15 @@ "type": "string" }, "external_type_display_name": { - "description": "Display name that corresponds to the brand-specific terminology for the [access control system](/low-level-apis/access-systems) type.", + "description": "Display name that corresponds to the brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type.", "type": "string" }, "image_alt_text": { - "description": "Alternative text for the [access control system](/low-level-apis/access-systems) image.", + "description": "Alternative text for the [access control system](https://docs.seam.co/low-level-apis/access-systems) image.", "type": "string" }, "image_url": { - "description": "URL for the image that represents the [access control system](/low-level-apis/access-systems).", + "description": "URL for the image that represents the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "type": "string" }, "is_credential_manager": { @@ -2988,10 +2988,10 @@ "type": "boolean" }, "location": { - "description": "Location information for the [access control system](/low-level-apis/access-systems).", + "description": "Location information for the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "properties": { "time_zone": { - "description": "Time zone in which the [access control system](/low-level-apis/access-systems) is located.", + "description": "Time zone in which the [access control system](https://docs.seam.co/low-level-apis/access-systems) is located.", "nullable": true, "type": "string" } @@ -3002,7 +3002,7 @@ "type": "object" }, "name": { - "description": "Name of the [access control system](/low-level-apis/access-systems).", + "description": "Name of the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "type": "string" }, "system_type": { @@ -3033,10 +3033,10 @@ "x-deprecated": "Use `external_type_display_name`." }, "visionline_metadata": { - "description": "Visionline-specific metadata for the [access control system](/low-level-apis/access-systems).", + "description": "Visionline-specific metadata for the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "properties": { "lan_address": { - "description": "IP address or hostname of the main Visionline server relative to [Seam Bridge](/capability-guides/seam-bridge) on the local network.", + "description": "IP address or hostname of the main Visionline server relative to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge) on the local network.", "type": "string" }, "mobile_access_uuid": { @@ -3056,9 +3056,9 @@ "type": "object" }, "warnings": { - "description": "Warnings associated with the [access control system](/low-level-apis/access-systems).", + "description": "Warnings associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "items": { - "description": "Warning associated with the [access control system](/low-level-apis/access-systems).", + "description": "Warning associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "discriminator": { "propertyName": "warning_code" }, @@ -3091,7 +3091,7 @@ "type": "object" }, { - "description": "Indicates the [access control system](/low-level-apis/access-systems) time zone could not be determined because the reported physical location does not match the time zone configured on the physical [ACS entrances](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Indicates the [access control system](https://docs.seam.co/low-level-apis/access-systems) time zone could not be determined because the reported physical location does not match the time zone configured on the physical [ACS entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -3158,7 +3158,7 @@ "type": "array" }, "workspace_id": { - "description": "ID of the workspace that contains the [access control system](/low-level-apis/access-systems).", + "description": "ID of the workspace that contains the [access control system](https://docs.seam.co/low-level-apis/access-systems).", "format": "uuid", "type": "string" } @@ -3181,10 +3181,10 @@ "x-route-path": "/acs/systems" }, "acs_user": { - "description": "Represents a [user](/low-level-apis/access-systems/user-management) in an [access system](/low-level-apis/access-systems).", + "description": "Represents a [user](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access system](https://docs.seam.co/low-level-apis/access-systems).", "properties": { "access_schedule": { - "description": "`starts_at` and `ends_at` timestamps for the [access system user's](/low-level-apis/access-systems/user-management) access.", + "description": "`starts_at` and `ends_at` timestamps for the [access system user's](https://docs.seam.co/low-level-apis/access-systems/user-management) access.", "properties": { "ends_at": { "description": "Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", @@ -3205,27 +3205,27 @@ "type": "object" }, "acs_system_id": { - "description": "ID of the [access system](/low-level-apis/access-systems) that contains the [access system user](/low-level-apis/access-systems/user-management).", + "description": "ID of the [access system](https://docs.seam.co/low-level-apis/access-systems) that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "format": "uuid", "type": "string" }, "acs_user_id": { - "description": "ID of the [access system user](/low-level-apis/access-systems/user-management).", + "description": "ID of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "format": "uuid", "type": "string" }, "connected_account_id": { - "description": "\n The ID of the connected account that is associated with the [access system user](/low-level-apis/access-systems/user-management).\n ", + "description": "\n The ID of the connected account that is associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).\n ", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [access system user](/low-level-apis/access-systems/user-management) was created.", + "description": "Date and time at which the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name for the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Display name for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "type": "string" }, "email": { @@ -3235,13 +3235,13 @@ "x-deprecated": "use email_address." }, "email_address": { - "description": "Email address of the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "format": "email", "type": "string" }, "errors": { "type": "array", - "description": "Errors associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Errors associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "items": { "type": "object", "properties": { @@ -3262,7 +3262,7 @@ } }, "external_type": { - "description": "Brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type.", + "description": "Brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type.", "enum": [ "pti_user", "brivo_user", @@ -3276,11 +3276,11 @@ "type": "string" }, "external_type_display_name": { - "description": "Display name that corresponds to the brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type.", + "description": "Display name that corresponds to the brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type.", "type": "string" }, "full_name": { - "description": "Full name of the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "minLength": 1, "type": "string" }, @@ -3297,7 +3297,7 @@ "type": "boolean" }, "is_suspended": { - "description": "Indicates whether the [access system user](/low-level-apis/access-systems/user-management) is currently [suspended](/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users).", + "description": "Indicates whether the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is currently [suspended](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users).", "type": "boolean" }, "last_successful_sync_at": { @@ -3308,7 +3308,7 @@ "x-undocumented": "Only used internally." }, "pending_mutations": { - "description": "Pending mutations associated with the [access system user](/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.", + "description": "Pending mutations associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -3764,11 +3764,11 @@ "type": "array" }, "phone_number": { - "description": "Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "type": "string" }, "salto_space_metadata": { - "description": "Salto Space-specific metadata associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Salto Space-specific metadata associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "properties": { "audit_openings": { "description": "Indicates whether AuditOpenings is enabled for the user in the Salto Space access system.", @@ -3782,34 +3782,34 @@ "type": "object" }, "user_identity_email_address": { - "description": "Email address of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Email address of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "nullable": true, "type": "string" }, "user_identity_full_name": { - "description": "Full name of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Full name of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "nullable": true, "type": "string" }, "user_identity_id": { - "description": "ID of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "ID of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "type": "string" }, "user_identity_phone_number": { - "description": "Phone number of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "nullable": true, "type": "string" }, "warnings": { - "description": "Warnings associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Warnings associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "items": { - "description": "Warnings associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Warnings associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access system user](/low-level-apis/access-systems/user-management) is being deleted from the [access system](/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly.", + "description": "Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is being deleted from the [access system](https://docs.seam.co/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -3835,7 +3835,7 @@ "type": "object" }, { - "description": "Indicates that the [access system user](/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.", + "description": "Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -3861,7 +3861,7 @@ "type": "object" }, { - "description": "An unknown issue occurred while syncing the state of this [access system user](/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user.", + "description": "An unknown issue occurred while syncing the state of this [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -3887,7 +3887,7 @@ "type": "object" }, { - "description": "Indicates that the [access system user](/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user.", + "description": "Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -3917,7 +3917,7 @@ "type": "array" }, "workspace_id": { - "description": "ID of the workspace that contains the [access system user](/low-level-apis/access-systems/user-management).", + "description": "ID of the workspace that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "format": "uuid", "type": "string" } @@ -4161,7 +4161,7 @@ "x-route-path": "/workspaces" }, "bridge_client_session": { - "description": "Represents a [Seam Bridge](/capability-guides/seam-bridge) client session.", + "description": "Represents a [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge) client session.", "properties": { "bridge_client_machine_identifier_key": { "description": "Identifier key of the client machine for the Seam Bridge client.", @@ -4345,14 +4345,14 @@ "x-undocumented": "Seam Bridge client only." }, "bridge_connected_systems": { - "description": "Represents an access system connected to [Seam Bridge](/capability-guides/seam-bridge).", + "description": "Represents an access system connected to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).", "properties": { "acs_system_display_name": { - "description": "Display name for the [access system](/low-level-apis/access-systems) associated with Seam Bridge.", + "description": "Display name for the [access system](https://docs.seam.co/low-level-apis/access-systems) associated with Seam Bridge.", "type": "string" }, "acs_system_id": { - "description": "ID of the [access system](/low-level-apis/access-systems) associated with Seam Bridge.", + "description": "ID of the [access system](https://docs.seam.co/low-level-apis/access-systems) associated with Seam Bridge.", "format": "uuid", "type": "string" }, @@ -4377,7 +4377,7 @@ "type": "string" }, "workspace_display_name": { - "description": "Display name for the [workspace](/core-concepts/workspaces) with which Seam Bridge is paired.", + "description": "Display name for the [workspace](https://docs.seam.co/core-concepts/workspaces) with which Seam Bridge is paired.", "type": "string" }, "workspace_id": { @@ -4401,7 +4401,7 @@ "x-undocumented": "Seam Bridge client only." }, "client_session": { - "description": "Represents a [client session](/core-concepts/authentication/client-session-tokens). If you want to restrict your users' access to their own devices, use client sessions.", + "description": "Represents a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). If you want to restrict your users' access to their own devices, use client sessions.", "properties": { "client_session_id": { "description": "ID of the client session.", @@ -4409,7 +4409,7 @@ "type": "string" }, "connect_webview_ids": { - "description": "IDs of the [Connect Webviews](/core-concepts/connect-webviews) associated with the [client session](/core-concepts/authentication/client-session-tokens).", + "description": "IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "items": { "format": "uuid", "type": "string" @@ -4417,7 +4417,7 @@ "type": "array" }, "connected_account_ids": { - "description": "IDs of the [connected accounts](/core-concepts/connected-accounts) associated with the [client session](/core-concepts/authentication/client-session-tokens).", + "description": "IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "items": { "format": "uuid", "type": "string" @@ -4425,41 +4425,41 @@ "type": "array" }, "created_at": { - "description": "Date and time at which the [client session](/core-concepts/authentication/client-session-tokens) was created.", + "description": "Date and time at which the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) was created.", "format": "date-time", "type": "string" }, "customer_key": { - "description": "Customer key associated with the [client session](/core-concepts/authentication/client-session-tokens).", + "description": "Customer key associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "type": "string" }, "device_count": { - "description": "Number of devices associated with the [client session](/core-concepts/authentication/client-session-tokens).", + "description": "Number of devices associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "format": "float", "type": "number" }, "expires_at": { - "description": "Date and time at which the [client session](/core-concepts/authentication/client-session-tokens) expires.", + "description": "Date and time at which the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) expires.", "format": "date-time", "type": "string" }, "token": { - "description": "Client session token associated with the [client session](/core-concepts/authentication/client-session-tokens).", + "description": "Client session token associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "type": "string" }, "user_identifier_key": { - "description": "Your user ID for the user associated with the [client session](/core-concepts/authentication/client-session-tokens).", + "description": "Your user ID for the user associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "nullable": true, "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session.", + "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session.", "format": "uuid", "type": "string" }, "user_identity_ids": { "deprecated": true, - "description": "IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session.", + "description": "IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session.", "items": { "format": "uuid", "type": "string" @@ -4489,7 +4489,7 @@ "x-route-path": "/client_sessions" }, "connect_webview": { - "description": "Represents a [Connect Webview](/core-concepts/connect-webviews).", + "description": "Represents a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews).", "properties": { "accepted_capabilities": { "description": "High-level device capabilities that the Connect Webview can accept. When creating a Connect Webview, you can specify the types of devices that it can connect to Seam. If you do not set custom `accepted_capabilities`, Seam uses a default set of `accepted_capabilities` for each provider. For example, if you create a Connect Webview that accepts SmartThing devices, without specifying `accepted_capabilities`, Seam accepts only SmartThings locks. To connect SmartThings thermostats and locks to Seam, create a Connect Webview and include both `thermostat` and `lock` in the `accepted_capabilities`.", @@ -4516,7 +4516,7 @@ "x-undocumented": "Unused. Will be removed." }, "accepted_providers": { - "description": "List of accepted [provider keys](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", + "description": "List of accepted [provider keys](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", "items": { "type": "string" }, @@ -4539,7 +4539,7 @@ "type": "string" }, "automatically_manage_new_devices": { - "description": "Indicates whether Seam should [import all new devices](/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for use and management by the Seam API.", + "description": "Indicates whether Seam should [import all new devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for use and management by the Seam API.", "type": "boolean" }, "connect_webview_id": { @@ -4569,7 +4569,7 @@ } ] }, - "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", + "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", "type": "object" }, "custom_redirect_failure_url": { @@ -4602,7 +4602,7 @@ "type": "boolean" }, "selected_provider": { - "description": "Selected provider of the Connect Webview, one of the [provider keys](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", + "description": "Selected provider of the Connect Webview, one of the [provider keys](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", "nullable": true, "type": "string" }, @@ -4621,7 +4621,7 @@ "type": "string" }, "wait_for_device_creation": { - "description": "Indicates whether Seam should [finish syncing all devices](/core-concepts/connect-webviews/customizing-connect-webviews#wait_for_device_creation) in a newly-connected account before completing the associated Connect Webview.", + "description": "Indicates whether Seam should [finish syncing all devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#wait_for_device_creation) in a newly-connected account before completing the associated Connect Webview.", "type": "boolean" }, "workspace_id": { @@ -4656,7 +4656,7 @@ "x-route-path": "/connect_webviews" }, "connected_account": { - "description": "Represents a [connected account](/core-concepts/connected-accounts). A connected account is an external third-party account to which your user has authorized Seam to get access, for example, an August account with a list of door locks.", + "description": "Represents a [connected account](https://docs.seam.co/core-concepts/connected-accounts). A connected account is an external third-party account to which your user has authorized Seam to get access, for example, an August account with a list of door locks.", "properties": { "accepted_capabilities": { "description": "List of capabilities that were accepted during the account connection process.", @@ -4682,7 +4682,7 @@ "type": "string" }, "automatically_manage_new_devices": { - "description": "Indicates whether Seam should [import all new devices](/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for management by the Seam API.", + "description": "Indicates whether Seam should [import all new devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for management by the Seam API.", "type": "boolean" }, "connected_account_id": { @@ -4706,7 +4706,7 @@ } ] }, - "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", + "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", "type": "object" }, "customer_key": { @@ -4748,7 +4748,7 @@ "type": "string" }, "is_bridge_error": { - "description": "Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge).", + "description": "Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).", "type": "boolean" }, "is_connected_account_error": { @@ -4769,7 +4769,7 @@ "x-resource-type": "connected_account" }, { - "description": "Indicates that the Seam API cannot communicate with [Seam Bridge](/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected).", + "description": "Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected).", "properties": { "created_at": { "description": "Date and time at which Seam created the error.", @@ -4784,7 +4784,7 @@ "type": "string" }, "is_bridge_error": { - "description": "Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge).", + "description": "Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).", "type": "boolean" }, "is_connected_account_error": { @@ -4820,7 +4820,7 @@ "type": "string" }, "is_bridge_error": { - "description": "Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge).", + "description": "Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).", "type": "boolean" }, "is_connected_account_error": { @@ -4900,7 +4900,7 @@ "type": "string" }, "is_bridge_error": { - "description": "Indicates whether the error is related to [Seam Bridge](/capability-guides/seam-bridge).", + "description": "Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).", "type": "boolean" }, "is_connected_account_error": { @@ -5144,7 +5144,7 @@ "x-undocumented": "Unreleased." }, "device": { - "description": "Represents a [device](/core-concepts/devices) that has been connected to Seam.", + "description": "Represents a [device](https://docs.seam.co/core-concepts/devices) that has been connected to Seam.", "properties": { "can_configure_auto_lock": { "description": "Indicates whether the lock supports configuring automatic locking.", @@ -5227,9 +5227,9 @@ "type": "boolean" }, "capabilities_supported": { - "description": "\n Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags).\n ", + "description": "\n Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags).\n ", "items": { - "description": "\n Collection of capabilities that the device supports when connected to Seam. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags).\n ", + "description": "\n Collection of capabilities that the device supports when connected to Seam. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags).\n ", "enum": [ "access_code", "lock", @@ -5263,7 +5263,7 @@ } ] }, - "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", + "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", "type": "object" }, "device_id": { @@ -5432,7 +5432,7 @@ } }, "is_managed": { - "description": "Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](/core-concepts/devices/managed-and-unmanaged-devices).", + "description": "Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).", "enum": [ true ], @@ -7223,7 +7223,7 @@ "x-property-group-key": "access_codes" }, "supports_backup_access_code_pool": { - "description": "Indicates whether the device supports a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes).", + "description": "Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes).", "type": "boolean", "x-property-group-key": "access_codes" } @@ -7234,30 +7234,30 @@ "properties": { "active_thermostat_schedule": { "deprecated": true, - "description": "Active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "nullable": true, "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "type": "string" }, "created_at": { - "description": "Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.", + "description": "Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.", "format": "date-time", "type": "string" }, "device_id": { - "description": "ID of the desired [thermostat](/capability-guides/thermostats) device.", + "description": "ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device.", "format": "uuid", "type": "string" }, "ends_at": { - "description": "Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "format": "date-time", "type": "string" }, "errors": { - "description": "Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "items": { "properties": { "error_code": { @@ -7278,28 +7278,28 @@ "type": "array" }, "is_override_allowed": { - "description": "Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.", "type": "boolean" }, "max_override_period_minutes": { - "description": "Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "exclusiveMinimum": true, "minimum": 0, "nullable": true, "type": "integer" }, "name": { - "description": "User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "nullable": true, "type": "string" }, "starts_at": { - "description": "Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "format": "date-time", "type": "string" }, "thermostat_schedule_id": { - "description": "ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "format": "uuid", "type": "string" }, @@ -7326,7 +7326,7 @@ "x-route-path": "/thermostats/schedules" }, "active_thermostat_schedule_id": { - "description": "ID of the active [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "format": "uuid", "nullable": true, "type": "string", @@ -7351,23 +7351,23 @@ "x-property-group-key": "thermostats" }, "available_climate_presets": { - "description": "Available [climate presets](/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat.", + "description": "Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat.", "items": { "properties": { "can_delete": { - "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.", + "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.", "type": "boolean" }, "can_edit": { - "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.", + "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.", "type": "boolean" }, "can_use_with_thermostat_daily_programs": { - "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.", + "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.", "type": "boolean" }, "climate_preset_key": { - "description": "Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "climate_preset_mode": { @@ -7383,17 +7383,17 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "display_name": { - "description": "Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "ecobee_metadata": { @@ -7424,7 +7424,7 @@ "type": "object" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -7433,17 +7433,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -7455,13 +7455,13 @@ }, "manual_override_allowed": { "deprecated": true, - "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean", "x-deprecated": "Use 'thermostat_schedule.is_override_allowed'" }, "name": { "default": null, - "description": "User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "nullable": true, "type": "string" } @@ -7513,19 +7513,19 @@ "description": "Current climate setting.", "properties": { "can_delete": { - "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.", + "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.", "type": "boolean" }, "can_edit": { - "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.", + "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.", "type": "boolean" }, "can_use_with_thermostat_daily_programs": { - "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.", + "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.", "type": "boolean" }, "climate_preset_key": { - "description": "Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "climate_preset_mode": { @@ -7541,17 +7541,17 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "display_name": { - "description": "Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "ecobee_metadata": { @@ -7582,7 +7582,7 @@ "type": "object" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -7591,17 +7591,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -7613,13 +7613,13 @@ }, "manual_override_allowed": { "deprecated": true, - "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean", "x-deprecated": "Use 'thermostat_schedule.is_override_allowed'" }, "name": { "default": null, - "description": "User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "nullable": true, "type": "string" } @@ -7631,19 +7631,19 @@ "deprecated": true, "properties": { "can_delete": { - "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.", + "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.", "type": "boolean" }, "can_edit": { - "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.", + "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.", "type": "boolean" }, "can_use_with_thermostat_daily_programs": { - "description": "Indicates whether the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.", + "description": "Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.", "type": "boolean" }, "climate_preset_key": { - "description": "Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "climate_preset_mode": { @@ -7659,17 +7659,17 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "display_name": { - "description": "Display name for the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "ecobee_metadata": { @@ -7700,7 +7700,7 @@ "type": "object" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -7709,17 +7709,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -7731,13 +7731,13 @@ }, "manual_override_allowed": { "deprecated": true, - "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean", "x-deprecated": "Use 'thermostat_schedule.is_override_allowed'" }, "name": { "default": null, - "description": "User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "nullable": true, "type": "string" } @@ -7747,7 +7747,7 @@ "x-property-group-key": "thermostats" }, "fallback_climate_preset_key": { - "description": "Key of the [fallback climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat.", + "description": "Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat.", "minLength": 1, "nullable": true, "type": "string", @@ -7785,25 +7785,25 @@ "x-property-group-key": "thermostats" }, "max_cooling_set_point_celsius": { - "description": "Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.", + "description": "Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "max_cooling_set_point_fahrenheit": { - "description": "Maximum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.", + "description": "Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "max_heating_set_point_celsius": { - "description": "Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.", + "description": "Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "max_heating_set_point_fahrenheit": { - "description": "Maximum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.", + "description": "Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.", "format": "float", "type": "number", "x-property-group-key": "thermostats" @@ -7821,37 +7821,37 @@ "x-property-group-key": "thermostats" }, "min_cooling_set_point_celsius": { - "description": "Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.", + "description": "Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "min_cooling_set_point_fahrenheit": { - "description": "Minimum [cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.", + "description": "Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "min_heating_cooling_delta_celsius": { - "description": "Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode.", + "description": "Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "min_heating_cooling_delta_fahrenheit": { - "description": "Minimum [temperature difference](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode.", + "description": "Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "min_heating_set_point_celsius": { - "description": "Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.", + "description": "Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.", "format": "float", "type": "number", "x-property-group-key": "thermostats" }, "min_heating_set_point_fahrenheit": { - "description": "Minimum [heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.", + "description": "Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.", "format": "float", "type": "number", "x-property-group-key": "thermostats" @@ -7877,28 +7877,28 @@ "x-property-group-key": "thermostats" }, "temperature_threshold": { - "description": "Current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.", + "description": "Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.", "properties": { "lower_limit_celsius": { - "description": "Lower limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", + "description": "Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", "format": "float", "nullable": true, "type": "number" }, "lower_limit_fahrenheit": { - "description": "Lower limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", + "description": "Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", "format": "float", "nullable": true, "type": "number" }, "upper_limit_celsius": { - "description": "Upper limit in °C within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", + "description": "Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", "format": "float", "nullable": true, "type": "number" }, "upper_limit_fahrenheit": { - "description": "Upper limit in °F within the current [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", + "description": "Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.\n ", "format": "float", "nullable": true, "type": "number" @@ -7920,7 +7920,7 @@ "x-property-group-key": "thermostats" }, "thermostat_daily_programs": { - "description": "Configured [daily programs](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.", + "description": "Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.", "items": { "description": "Represents a thermostat daily program, consisting of a set of periods, each of which has a starting time and the key that identifies the climate preset to apply at the starting time.", "properties": { @@ -7945,7 +7945,7 @@ "description": "Period for a thermostat daily program. Consists of a starts at time and the key that identifies the configured climate preset to apply at the starting time.", "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", + "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", "type": "string" }, "starts_at_time": { @@ -7988,7 +7988,7 @@ "x-property-group-key": "thermostats" }, "thermostat_weekly_program": { - "description": "Current [weekly program](/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.", + "description": "Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.", "nullable": true, "properties": { "created_at": { @@ -8344,7 +8344,7 @@ "x-route-path": "/devices" }, "enrollment_automation": { - "description": "Represents an [enrollment automation](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system) within the [Seam mobile access solution](/capability-guides/mobile-access).", + "description": "Represents an [enrollment automation](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system) within the [Seam mobile access solution](https://docs.seam.co/capability-guides/mobile-access).", "properties": { "created_at": { "description": "Date and time at which the enrollment automation was created.", @@ -8352,7 +8352,7 @@ "type": "string" }, "credential_manager_acs_system_id": { - "description": "ID of the associated [ACS system](/low-level-apis/access-systems) that serves as the credential manager.", + "description": "ID of the associated [ACS system](https://docs.seam.co/low-level-apis/access-systems) that serves as the credential manager.", "format": "uuid", "type": "string" }, @@ -8362,7 +8362,7 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the associated [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "ID of the associated [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "format": "uuid", "type": "string" }, @@ -8390,7 +8390,7 @@ }, "oneOf": [ { - "description": "An [access code](/low-level-apis/smart-locks/access-codes) was created.", + "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was created.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -8476,7 +8476,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](/low-level-apis/smart-locks/access-codes) was changed.", + "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -8595,7 +8595,7 @@ "x-route-path": "/access_codes" }, { - "description": "The name of an [access code](/low-level-apis/smart-locks/access-codes) was changed on the device.", + "description": "The name of an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed on the device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -8716,7 +8716,7 @@ "x-route-path": "/access_codes" }, { - "description": "The pin code of an [access code](/low-level-apis/smart-locks/access-codes) was changed on the device.", + "description": "The pin code of an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed on the device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -8837,7 +8837,7 @@ "x-route-path": "/access_codes" }, { - "description": "The time frame of an [access code](/low-level-apis/smart-locks/access-codes) was changed on the device.", + "description": "The time frame of an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was changed on the device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -8970,7 +8970,7 @@ "x-route-path": "/access_codes" }, { - "description": "Mutations were requested on an [access code](/low-level-apis/smart-locks/access-codes). This event fires at request time, before the change is confirmed on the device.", + "description": "Mutations were requested on an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). This event fires at request time, before the change is confirmed on the device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -9092,7 +9092,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](/low-level-apis/smart-locks/access-codes) was [scheduled natively](/low-level-apis/smart-locks/access-codes#native-scheduling) on a device.", + "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was [scheduled natively](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) on a device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -9183,7 +9183,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](/low-level-apis/smart-locks/access-codes) was set on a device.", + "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was set on a device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -9274,7 +9274,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](/low-level-apis/smart-locks/access-codes) was removed from a device.", + "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was removed from a device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -9360,7 +9360,7 @@ "x-route-path": "/access_codes" }, { - "description": "There was an unusually long delay in setting an [access code](/low-level-apis/smart-locks/access-codes) on a device.", + "description": "There was an unusually long delay in setting an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) on a device.", "properties": { "access_code_errors": { "description": "Errors associated with the access code.", @@ -9620,7 +9620,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](/low-level-apis/smart-locks/access-codes) failed to be set on a device.", + "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) failed to be set on a device.", "properties": { "access_code_errors": { "description": "Errors associated with the access code.", @@ -9880,7 +9880,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](/low-level-apis/smart-locks/access-codes) was deleted.", + "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was deleted.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -9972,7 +9972,7 @@ "x-route-path": "/access_codes" }, { - "description": "There was an unusually long delay in removing an [access code](/low-level-apis/smart-locks/access-codes) from a device.", + "description": "There was an unusually long delay in removing an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) from a device.", "properties": { "access_code_errors": { "description": "Errors associated with the access code.", @@ -10232,7 +10232,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](/low-level-apis/smart-locks/access-codes) failed to be removed from a device.", + "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) failed to be removed from a device.", "properties": { "access_code_errors": { "description": "Errors associated with the access code.", @@ -10492,7 +10492,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](/low-level-apis/smart-locks/access-codes) was modified outside of Seam.", + "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was modified outside of Seam.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -10578,7 +10578,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [access code](/low-level-apis/smart-locks/access-codes) was deleted outside of Seam.", + "description": "An [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was deleted outside of Seam.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -10664,7 +10664,7 @@ "x-route-path": "/access_codes" }, { - "description": "A [backup access code](/low-level-apis/smart-locks/access-codes/backup-access-codes) was pulled from the backup access code pool and set on a device.", + "description": "A [backup access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) was pulled from the backup access code pool and set on a device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -10755,7 +10755,7 @@ "x-route-path": "/access_codes" }, { - "description": "An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was converted successfully to a managed access code.", + "description": "An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was converted successfully to a managed access code.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -10841,7 +10841,7 @@ "x-route-path": "/access_codes/unmanaged" }, { - "description": "An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) failed to be converted to a managed access code.", + "description": "An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) failed to be converted to a managed access code.", "properties": { "access_code_errors": { "description": "Errors associated with the access code.", @@ -11101,7 +11101,7 @@ "x-route-path": "/access_codes/unmanaged" }, { - "description": "An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was created on a device.", + "description": "An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was created on a device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -11187,7 +11187,7 @@ "x-route-path": "/access_codes/unmanaged" }, { - "description": "An [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was removed from a device.", + "description": "An [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) was removed from a device.", "properties": { "access_code_id": { "description": "ID of the affected access code.", @@ -11419,7 +11419,7 @@ "type": "string" }, "acs_entrance_id": { - "description": "ID of the affected [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the affected [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, @@ -11471,7 +11471,7 @@ "type": "string" }, "acs_entrance_id": { - "description": "ID of the affected [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the affected [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, @@ -12020,7 +12020,7 @@ "x-route-path": "/access_methods" }, { - "description": "An [access system](/low-level-apis/access-systems) was connected.", + "description": "An [access system](https://docs.seam.co/low-level-apis/access-systems) was connected.", "properties": { "acs_system_id": { "description": "ID of the access system.", @@ -12071,7 +12071,7 @@ "x-route-path": "/acs/systems" }, { - "description": "An [access system](/low-level-apis/access-systems) was added.", + "description": "An [access system](https://docs.seam.co/low-level-apis/access-systems) was added.", "properties": { "acs_system_id": { "description": "ID of the access system.", @@ -12122,7 +12122,7 @@ "x-route-path": "/acs/systems" }, { - "description": "An [access system](/low-level-apis/access-systems) was disconnected.", + "description": "An [access system](https://docs.seam.co/low-level-apis/access-systems) was disconnected.", "properties": { "acs_system_errors": { "description": "Errors associated with the access control system.", @@ -12289,7 +12289,7 @@ "x-route-path": "/acs/systems" }, { - "description": "An [access system credential](/low-level-apis/access-systems/managing-credentials) was deleted.", + "description": "An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was deleted.", "properties": { "acs_credential_id": { "description": "ID of the affected credential.", @@ -12346,7 +12346,7 @@ "x-route-path": "/acs/credentials" }, { - "description": "An [access system credential](/low-level-apis/access-systems/managing-credentials) was issued.", + "description": "An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was issued.", "properties": { "acs_credential_id": { "description": "ID of the affected credential.", @@ -12403,7 +12403,7 @@ "x-route-path": "/acs/credentials" }, { - "description": "An [access system credential](/low-level-apis/access-systems/managing-credentials) was reissued.", + "description": "An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was reissued.", "properties": { "acs_credential_id": { "description": "ID of the affected credential.", @@ -12460,7 +12460,7 @@ "x-route-path": "/acs/credentials" }, { - "description": "An [access system credential](/low-level-apis/access-systems/managing-credentials) was invalidated. That is, the credential cannot be used anymore.", + "description": "An [access system credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was invalidated. That is, the credential cannot be used anymore.", "properties": { "acs_credential_id": { "description": "ID of the affected credential.", @@ -12517,7 +12517,7 @@ "x-route-path": "/acs/credentials" }, { - "description": "An [access system user](/low-level-apis/access-systems/user-management) was created.", + "description": "An [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created.", "properties": { "acs_system_id": { "description": "ID of the access system.", @@ -12574,7 +12574,7 @@ "x-route-path": "/acs/users" }, { - "description": "An [access system user](/low-level-apis/access-systems/user-management) was deleted.", + "description": "An [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was deleted.", "properties": { "acs_system_id": { "description": "ID of the access system.", @@ -12631,7 +12631,7 @@ "x-route-path": "/acs/users" }, { - "description": "An [access system encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was added.", + "description": "An [access system encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was added.", "properties": { "acs_encoder_id": { "description": "ID of the affected encoder.", @@ -12688,7 +12688,7 @@ "x-route-path": "/acs/encoders" }, { - "description": "An [access system encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was removed.", + "description": "An [access system encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was removed.", "properties": { "acs_encoder_id": { "description": "ID of the affected encoder.", @@ -12802,7 +12802,7 @@ "x-route-path": "/acs/access_groups" }, { - "description": "An [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details) was added.", + "description": "An [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was added.", "properties": { "acs_entrance_id": { "description": "ID of the affected entrance.", @@ -12859,7 +12859,7 @@ "x-route-path": "/acs/entrances" }, { - "description": "An [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details) was removed.", + "description": "An [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was removed.", "properties": { "acs_entrance_id": { "description": "ID of the affected entrance.", @@ -14401,7 +14401,7 @@ "x-route-path": "/devices" }, { - "description": "A managed device was successfully converted to an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices).", + "description": "A managed device was successfully converted to an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -14485,7 +14485,7 @@ "x-route-path": "/devices" }, { - "description": "An [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) was successfully converted to a managed device.", + "description": "An [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices) was successfully converted to a managed device.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -14569,7 +14569,7 @@ "x-route-path": "/devices/unmanaged" }, { - "description": "The status of an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`.", + "description": "The status of an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -14863,7 +14863,7 @@ "x-route-path": "/devices" }, { - "description": "The status of an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`.", + "description": "The status of an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -15693,7 +15693,7 @@ "x-route-path": "/devices" }, { - "description": "A [Salto device](/device-and-system-integration-guides/salto-locks) activated privacy mode.", + "description": "A [Salto device](https://docs.seam.co/device-and-system-integration-guides/salto-locks) activated privacy mode.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -15777,7 +15777,7 @@ "x-route-path": "/devices" }, { - "description": "A [Salto device](/device-and-system-integration-guides/salto-locks) deactivated privacy mode.", + "description": "A [Salto device](https://docs.seam.co/device-and-system-integration-guides/salto-locks) deactivated privacy mode.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -16713,7 +16713,7 @@ "x-route-path": "/devices" }, { - "description": "Extended periods of noise or noise exceeding a [threshold](/capability-guides/noise-sensors#what-is-a-threshold) were detected.", + "description": "Extended periods of noise or noise exceeding a [threshold](https://docs.seam.co/capability-guides/noise-sensors#what-is-a-threshold) were detected.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -16826,7 +16826,7 @@ "x-route-path": "/noise_sensors/noise_thresholds" }, { - "description": "A [lock](/low-level-apis/smart-locks) was locked.", + "description": "A [lock](https://docs.seam.co/low-level-apis/smart-locks) was locked.", "properties": { "access_code_id": { "description": "ID of the access code that was used to lock the device.", @@ -16944,7 +16944,7 @@ "x-route-path": "/locks" }, { - "description": "A [lock](/low-level-apis/smart-locks) was unlocked.", + "description": "A [lock](https://docs.seam.co/low-level-apis/smart-locks) was unlocked.", "properties": { "access_code_id": { "description": "ID of the access code that was used to unlock the affected device.", @@ -17042,7 +17042,7 @@ "type": "boolean" }, "method": { - "description": "Method by which the lock was unlocked. `keycode`: an [access code](/low-level-apis/smart-locks/access-codes) was used (see `access_code_id`). `manual`: a physical action such as a thumbturn or handle press. `remote`: a remote action via an app, Bluetooth, or the Seam API (see `action_attempt_id` if Seam-initiated; see `is_via_bluetooth` or `is_via_nfc` for the transport). `automatic`: triggered automatically, for example by a time-based schedule. `unknown`: could not be determined.", + "description": "Method by which the lock was unlocked. `keycode`: an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes) was used (see `access_code_id`). `manual`: a physical action such as a thumbturn or handle press. `remote`: a remote action via an app, Bluetooth, or the Seam API (see `action_attempt_id` if Seam-initiated; see `is_via_bluetooth` or `is_via_nfc` for the transport). `automatic`: triggered automatically, for example by a time-based schedule. `unknown`: could not be determined.", "enum": [ "keycode", "manual", @@ -17081,7 +17081,7 @@ "x-route-path": "/locks" }, { - "description": "The [lock](/low-level-apis/smart-locks) denied access to a user after one or more consecutive invalid attempts to unlock the device.", + "description": "The [lock](https://docs.seam.co/low-level-apis/smart-locks) denied access to a user after one or more consecutive invalid attempts to unlock the device.", "properties": { "access_code_id": { "description": "ID of the access code that was used in the unlock attempts.", @@ -17189,7 +17189,7 @@ "x-route-path": "/locks" }, { - "description": "A thermostat [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) was activated.", + "description": "A thermostat [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) was activated.", "properties": { "climate_preset_key": { "description": "Key of the climate preset that was activated.", @@ -17290,7 +17290,7 @@ "x-route-path": "/thermostats" }, { - "description": "A [thermostat](/capability-guides/thermostats) was adjusted manually.", + "description": "A [thermostat](https://docs.seam.co/capability-guides/thermostats) was adjusted manually.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -17312,12 +17312,12 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, @@ -17361,7 +17361,7 @@ "type": "string" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -17370,17 +17370,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -17423,7 +17423,7 @@ "x-route-path": "/thermostats" }, { - "description": "A [thermostat's](/capability-guides/thermostats) temperature reading exceeded the set [threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).", + "description": "A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature reading exceeded the set [threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -17547,7 +17547,7 @@ "x-route-path": "/thermostats" }, { - "description": "A [thermostat's](/capability-guides/thermostats) temperature reading no longer exceeds the set [threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).", + "description": "A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature reading no longer exceeds the set [threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -17671,7 +17671,7 @@ "x-route-path": "/thermostats" }, { - "description": "A [thermostat's](/capability-guides/thermostats) temperature reading is within 1 °C of the configured cooling or heating [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "A [thermostat's](https://docs.seam.co/capability-guides/thermostats) temperature reading is within 1 °C of the configured cooling or heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -17777,7 +17777,7 @@ "x-route-path": "/thermostats" }, { - "description": "A [thermostat's](/capability-guides/thermostats) reported temperature changed by at least 1 °C.", + "description": "A [thermostat's](https://docs.seam.co/capability-guides/thermostats) reported temperature changed by at least 1 °C.", "properties": { "connected_account_custom_metadata": { "additionalProperties": { @@ -18168,7 +18168,7 @@ "x-route-path": "/devices" }, { - "description": "An [enrollment automation](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system) was deleted.", + "description": "An [enrollment automation](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#prepare-the-phones-for-a-user-identity-to-start-receiving-mobile-credentials-using-an-enrollment-aut) was deleted.", "properties": { "created_at": { "description": "Date and time at which the event was created.", @@ -18598,7 +18598,7 @@ "x-undocumented": "Unreleased." }, "noise_threshold": { - "description": "Represents a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them.", + "description": "Represents a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them.", "properties": { "device_id": { "description": "Unique identifier for the device that contains the noise threshold.", @@ -18624,7 +18624,7 @@ "type": "string" }, "noise_threshold_nrs": { - "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](/device-and-system-integration-guides/noiseaware-sensors).", + "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors).", "format": "float", "type": "number" }, @@ -18689,7 +18689,7 @@ } ] }, - "description": "Optional [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) for the phone.\n ", + "description": "Optional [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) for the phone.\n ", "type": "object" }, "device_id": { @@ -18878,10 +18878,10 @@ "acs_credentials": { "description": "Access system credentials associated with the phone provider session.", "items": { - "description": "Means by which an [access control system user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems).\n\nAn access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.\n\nFor each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.\n\nFor granting a person access to a space, [Access Grants](/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials.", + "description": "Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nAn access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.\n\nFor each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials.", "properties": { "access_method": { - "description": "Access method for the [credential](/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.", + "description": "Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.", "enum": [ "code", "card", @@ -18901,20 +18901,20 @@ }, "acs_entrances": { "items": { - "description": "Represents an [entrance](/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](/low-level-apis/access-systems).\n\nIn an access control system, an entrance is a secured door, gate, zone, or other method of entry. You can list details for all the `acs_entrance` resources in your workspace or get these details for a specific `acs_entrance`. You can also list all entrances associated with a specific credential, and you can list all credentials associated with a specific entrance.", + "description": "Represents an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nIn an access control system, an entrance is a secured door, gate, zone, or other method of entry. You can list details for all the `acs_entrance` resources in your workspace or get these details for a specific `acs_entrance`. You can also list all entrances associated with a specific credential, and you can list all credentials associated with a specific entrance.", "properties": { "acs_entrance_id": { - "description": "ID of the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, "acs_system_id": { - "description": "ID of the [access control system](/low-level-apis/access-systems) that contains the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, "assa_abloy_vostio_metadata": { - "description": "ASSA ABLOY Vostio-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ASSA ABLOY Vostio-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "door_name": { "description": "Name of the door in the Vostio access system.", @@ -18951,7 +18951,7 @@ "type": "object" }, "avigilon_alta_metadata": { - "description": "Avigilon Alta-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Avigilon Alta-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "entry_name": { "description": "Entry name for an Avigilon Alta system.", @@ -18997,7 +18997,7 @@ "type": "object" }, "brivo_metadata": { - "description": "Brivo-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Brivo-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "access_point_id": { "description": "ID of the access point in the Brivo access system.", @@ -19041,21 +19041,21 @@ "type": "boolean" }, "connected_account_id": { - "description": "ID of the [connected account](/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [entrance](/low-level-apis/access-systems/retrieving-entrance-details) was created.", + "description": "Date and time at which the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name for the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Display name for the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "type": "string" }, "dormakaba_ambiance_metadata": { - "description": "dormakaba Ambiance-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "dormakaba Ambiance-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "access_point_name": { "description": "Name of the access point in the dormakaba Ambiance access system.", @@ -19068,7 +19068,7 @@ "type": "object" }, "dormakaba_community_metadata": { - "description": "dormakaba Community-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "dormakaba Community-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "access_point_profile": { "description": "Type of access point profile in the dormakaba Community access system.", @@ -19081,7 +19081,7 @@ "type": "object" }, "errors": { - "description": "Errors associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Errors associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "items": { "properties": { "error_code": { @@ -19102,7 +19102,7 @@ "type": "array" }, "hotek_metadata": { - "description": "Hotek-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Hotek-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "common_area_name": { "description": "Display name of the entrance.", @@ -19120,11 +19120,11 @@ "type": "object" }, "is_locked": { - "description": "Indicates whether the [entrance](/low-level-apis/access-systems/retrieving-entrance-details) is currently locked.", + "description": "Indicates whether the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) is currently locked.", "type": "boolean" }, "latch_metadata": { - "description": "Latch-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Latch-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "accessibility_type": { "description": "Accessibility type in the Latch access system.", @@ -19152,7 +19152,7 @@ "type": "object" }, "salto_ks_metadata": { - "description": "Salto KS-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Salto KS-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "battery_level": { "description": "Battery level of the door access device.", @@ -19196,7 +19196,7 @@ "type": "object" }, "salto_space_metadata": { - "description": "Salto Space-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Salto Space-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "audit_on_keys": { "description": "Indicates whether AuditOnKeys is enabled for the door in the Salto Space access system.", @@ -19234,7 +19234,7 @@ "type": "array" }, "visionline_metadata": { - "description": "Visionline-specific metadata associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Visionline-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "properties": { "door_category": { "description": "Category of the door in the Visionline access system.", @@ -19285,9 +19285,9 @@ "type": "object" }, "warnings": { - "description": "Warnings associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Warnings associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "items": { - "description": "Warning associated with the [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Warning associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "discriminator": { "propertyName": "warning_code" }, @@ -19421,17 +19421,17 @@ "type": "array" }, "acs_system_id": { - "description": "ID of the [access control system](/low-level-apis/access-systems) that contains the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, "acs_user_id": { - "description": "ID of the [ACS user](/low-level-apis/access-systems/user-management) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "assa_abloy_vostio_metadata": { - "description": "Vostio-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Vostio-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "properties": { "auto_join": { "description": "Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.", @@ -19467,36 +19467,36 @@ "type": "object" }, "card_number": { - "description": "Number of the card associated with the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Number of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "nullable": true, "type": "string" }, "code": { - "description": "Access (PIN) code for the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Access (PIN) code for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "nullable": true, "type": "string" }, "connected_account_id": { - "description": "ID of the [connected account](/low-level-apis/access-systems/managing-credentials) to which the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/managing-credentials#connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was created.", + "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name that corresponds to the [credential](/low-level-apis/access-systems/managing-credentials) type.", + "description": "Display name that corresponds to the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.", "minLength": 1, "type": "string" }, "ends_at": { - "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.", + "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.", "type": "string" }, "errors": { - "description": "Errors associated with the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Errors associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "items": { "properties": { "error_code": { @@ -19515,7 +19515,7 @@ "type": "array" }, "external_type": { - "description": "Brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.", + "description": "Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.", "enum": [ "pti_card", "brivo_credential", @@ -19533,15 +19533,15 @@ "type": "string" }, "external_type_display_name": { - "description": "Display name that corresponds to the brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type.", + "description": "Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.", "type": "string" }, "is_issued": { - "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.", + "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.", "type": "boolean" }, "is_latest_desired_state_synced_with_provider": { - "description": "Indicates whether the latest state of the [credential](/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.", + "description": "Indicates whether the latest state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.", "nullable": true, "type": "boolean" }, @@ -19553,41 +19553,41 @@ "type": "boolean" }, "is_multi_phone_sync_credential": { - "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", + "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.", + "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.", "type": "boolean" }, "issued_at": { - "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was encoded onto a card.", + "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was encoded onto a card.", "format": "date-time", "nullable": true, "type": "string" }, "latest_desired_state_synced_with_provider_at": { - "description": "Date and time at which the state of the [credential](/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.", + "description": "Date and time at which the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.", "format": "date-time", "nullable": true, "type": "string" }, "parent_acs_credential_id": { - "description": "ID of the parent [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, "starts_at": { - "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](/api/user_identities/object) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [user identity](https://docs.seam.co/api/user_identities/object) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "visionline_metadata": { - "description": "Visionline-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "properties": { "auto_join": { "description": "Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.", @@ -19644,15 +19644,15 @@ "type": "object" }, "warnings": { - "description": "Warnings associated with the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Warnings associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "items": { - "description": "Warning associated with the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Warning associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [credential](/low-level-apis/access-systems/managing-credentials) is waiting to be issued.", + "description": "Indicates that the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is waiting to be issued.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -19679,7 +19679,7 @@ "type": "object" }, { - "description": "Indicates that the schedule of one of the [credential](/low-level-apis/access-systems/managing-credentials)'s children was modified externally.", + "description": "Indicates that the schedule of one of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials)'s children was modified externally.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -19706,7 +19706,7 @@ "type": "object" }, { - "description": "Indicates that the schedule of the [credential](/low-level-apis/access-systems/managing-credentials) was modified to avoid creating a credential with a start date in the past.", + "description": "Indicates that the schedule of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was modified to avoid creating a credential with a start date in the past.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -19733,7 +19733,7 @@ "type": "object" }, { - "description": "Indicates that the [credential](/low-level-apis/access-systems/managing-credentials) is being deleted.", + "description": "Indicates that the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -19760,7 +19760,7 @@ "type": "object" }, { - "description": "An unknown issue occurred while syncing the state of the [credential](/low-level-apis/access-systems/managing-credentials) with the provider. This issue may affect the proper functioning of the credential.", + "description": "An unknown issue occurred while syncing the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) with the provider. This issue may affect the proper functioning of the credential.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -19787,7 +19787,7 @@ "type": "object" }, { - "description": "Access permissions for the [credential](/low-level-apis/access-systems/managing-credentials) have changed. [Reissue](/low-level-apis/access-systems/working-with-card-encoders-and-scanners/creating-and-encoding-card-based-credentials) (re-encode) the credential. This issue may affect the proper functioning of the credential.", + "description": "Access permissions for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) have changed. [Reissue](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners/creating-and-encoding-card-based-credentials) (re-encode) the credential. This issue may affect the proper functioning of the credential.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -19818,7 +19818,7 @@ "type": "array" }, "workspace_id": { - "description": "ID of the workspace that contains the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the workspace that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" } @@ -20320,7 +20320,7 @@ "description": "Period for a thermostat daily program. Consists of a starts at time and the key that identifies the configured climate preset to apply at the starting time.", "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", + "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", "type": "string" }, "starts_at_time": { @@ -20360,29 +20360,29 @@ "x-route-path": "/thermostats/daily_programs" }, "thermostat_schedule": { - "description": "Represents a [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that activates a configured [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) on a [thermostat](/capability-guides/thermostats) at a specified starting time and deactivates the climate preset at a specified ending time.", + "description": "Represents a [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that activates a configured [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) on a [thermostat](https://docs.seam.co/capability-guides/thermostats) at a specified starting time and deactivates the climate preset at a specified ending time.", "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "type": "string" }, "created_at": { - "description": "Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.", + "description": "Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.", "format": "date-time", "type": "string" }, "device_id": { - "description": "ID of the desired [thermostat](/capability-guides/thermostats) device.", + "description": "ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device.", "format": "uuid", "type": "string" }, "ends_at": { - "description": "Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "format": "date-time", "type": "string" }, "errors": { - "description": "Errors associated with the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "items": { "properties": { "error_code": { @@ -20403,28 +20403,28 @@ "type": "array" }, "is_override_allowed": { - "description": "Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.", "type": "boolean" }, "max_override_period_minutes": { - "description": "Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "exclusiveMinimum": true, "minimum": 0, "nullable": true, "type": "integer" }, "name": { - "description": "User-friendly name to identify the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "nullable": true, "type": "string" }, "starts_at": { - "description": "Date and time at which the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "format": "date-time", "type": "string" }, "thermostat_schedule_id": { - "description": "ID of the [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "format": "uuid", "type": "string" }, @@ -20449,7 +20449,7 @@ "x-route-path": "/thermostats/schedules" }, "unmanaged_access_code": { - "description": "Represents an [unmanaged smart lock access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Represents an [unmanaged smart lock access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "properties": { "access_code_id": { "description": "Unique identifier for the access code.", @@ -20538,7 +20538,7 @@ }, "errors": { "type": "array", - "description": "Errors associated with the [access code](/low-level-apis/smart-locks/access-codes).", + "description": "Errors associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", "items": { "type": "object", "properties": { @@ -20594,7 +20594,7 @@ }, "warnings": { "type": "array", - "description": "Warnings associated with the [access code](/low-level-apis/smart-locks/access-codes).", + "description": "Warnings associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", "items": { "type": "object", "properties": { @@ -20712,7 +20712,7 @@ }, "oneOf": [ { - "description": "Indicates that the [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups) was not created on the [access system](/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co).", + "description": "Indicates that the [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups) was not created on the [access system](https://docs.seam.co/low-level-apis/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co).", "properties": { "created_at": { "description": "Date and time at which Seam created the error.", @@ -21238,10 +21238,10 @@ "x-undocumented": "Unreleased." }, "unmanaged_acs_credential": { - "description": "Means by which an [ACS user](/low-level-apis/access-systems/user-management) gains access at an [entrance](/low-level-apis/access-systems/retrieving-entrance-details). The `unmanaged_acs_credential` object, which is not managed by Seam, represents a [credential](/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](/low-level-apis/access-systems).", + "description": "Means by which an [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `unmanaged_acs_credential` object, which is not managed by Seam, represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).", "properties": { "access_method": { - "description": "Access method for the [credential](/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.", + "description": "Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.", "enum": [ "code", "card", @@ -21251,7 +21251,7 @@ "type": "string" }, "acs_credential_id": { - "description": "ID of the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, @@ -21261,17 +21261,17 @@ "type": "string" }, "acs_system_id": { - "description": "ID of the [access control system](/low-level-apis/access-systems) that contains the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, "acs_user_id": { - "description": "ID of the [ACS user](/low-level-apis/access-systems/user-management) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "assa_abloy_vostio_metadata": { - "description": "Vostio-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Vostio-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "properties": { "auto_join": { "description": "Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.", @@ -21307,36 +21307,36 @@ "type": "object" }, "card_number": { - "description": "Number of the card associated with the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Number of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "nullable": true, "type": "string" }, "code": { - "description": "Access (PIN) code for the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Access (PIN) code for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "nullable": true, "type": "string" }, "connected_account_id": { - "description": "ID of the [connected account](/low-level-apis/access-systems/managing-credentials) to which the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/managing-credentials#connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was created.", + "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name that corresponds to the [credential](/low-level-apis/access-systems/managing-credentials) type.", + "description": "Display name that corresponds to the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.", "minLength": 1, "type": "string" }, "ends_at": { - "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.", + "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.", "type": "string" }, "errors": { - "description": "Errors associated with the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Errors associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "items": { "properties": { "error_code": { @@ -21355,7 +21355,7 @@ "type": "array" }, "external_type": { - "description": "Brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.", + "description": "Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.", "enum": [ "pti_card", "brivo_credential", @@ -21373,15 +21373,15 @@ "type": "string" }, "external_type_display_name": { - "description": "Display name that corresponds to the brand-specific terminology for the [credential](/low-level-apis/access-systems/managing-credentials) type.", + "description": "Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.", "type": "string" }, "is_issued": { - "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.", + "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.", "type": "boolean" }, "is_latest_desired_state_synced_with_provider": { - "description": "Indicates whether the latest state of the [credential](/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.", + "description": "Indicates whether the latest state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.", "nullable": true, "type": "boolean" }, @@ -21392,41 +21392,41 @@ "type": "boolean" }, "is_multi_phone_sync_credential": { - "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", + "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [credential](/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.", + "description": "Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.", "type": "boolean" }, "issued_at": { - "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) was encoded onto a card.", + "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was encoded onto a card.", "format": "date-time", "nullable": true, "type": "string" }, "latest_desired_state_synced_with_provider_at": { - "description": "Date and time at which the state of the [credential](/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.", + "description": "Date and time at which the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.", "format": "date-time", "nullable": true, "type": "string" }, "parent_acs_credential_id": { - "description": "ID of the parent [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" }, "starts_at": { - "description": "Date and time at which the [credential](/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", + "description": "Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](/api/user_identities/object) to whom the [credential](/low-level-apis/access-systems/managing-credentials) belongs.", + "description": "ID of the [user identity](https://docs.seam.co/api/user_identities/object) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.", "format": "uuid", "type": "string" }, "visionline_metadata": { - "description": "Visionline-specific metadata for the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "properties": { "auto_join": { "description": "Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.", @@ -21484,7 +21484,7 @@ }, "warnings": { "type": "array", - "description": "Warnings associated with the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Warnings associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "items": { "type": "object", "properties": { @@ -21505,7 +21505,7 @@ } }, "workspace_id": { - "description": "ID of the workspace that contains the [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "ID of the workspace that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "format": "uuid", "type": "string" } @@ -21527,10 +21527,10 @@ "x-undocumented": "Unreleased." }, "unmanaged_acs_user": { - "description": "Represents an unmanaged [user](/low-level-apis/access-systems/user-management) in an [access system](/low-level-apis/access-systems).", + "description": "Represents an unmanaged [user](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access system](https://docs.seam.co/low-level-apis/access-systems).", "properties": { "access_schedule": { - "description": "`starts_at` and `ends_at` timestamps for the [access system user's](/low-level-apis/access-systems/user-management) access.", + "description": "`starts_at` and `ends_at` timestamps for the [access system user's](https://docs.seam.co/low-level-apis/access-systems/user-management) access.", "properties": { "ends_at": { "description": "Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.", @@ -21551,27 +21551,27 @@ "type": "object" }, "acs_system_id": { - "description": "ID of the [access system](/low-level-apis/access-systems) that contains the [access system user](/low-level-apis/access-systems/user-management).", + "description": "ID of the [access system](https://docs.seam.co/low-level-apis/access-systems) that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "format": "uuid", "type": "string" }, "acs_user_id": { - "description": "ID of the [access system user](/low-level-apis/access-systems/user-management).", + "description": "ID of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "format": "uuid", "type": "string" }, "connected_account_id": { - "description": "\n The ID of the connected account that is associated with the [access system user](/low-level-apis/access-systems/user-management).\n ", + "description": "\n The ID of the connected account that is associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).\n ", "format": "uuid", "type": "string" }, "created_at": { - "description": "Date and time at which the [access system user](/low-level-apis/access-systems/user-management) was created.", + "description": "Date and time at which the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created.", "format": "date-time", "type": "string" }, "display_name": { - "description": "Display name for the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Display name for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "type": "string" }, "email": { @@ -21581,13 +21581,13 @@ "x-deprecated": "use email_address." }, "email_address": { - "description": "Email address of the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "format": "email", "type": "string" }, "errors": { "type": "array", - "description": "Errors associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Errors associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "items": { "type": "object", "properties": { @@ -21608,7 +21608,7 @@ } }, "external_type": { - "description": "Brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type.", + "description": "Brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type.", "enum": [ "pti_user", "brivo_user", @@ -21622,11 +21622,11 @@ "type": "string" }, "external_type_display_name": { - "description": "Display name that corresponds to the brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type.", + "description": "Display name that corresponds to the brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type.", "type": "string" }, "full_name": { - "description": "Full name of the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "minLength": 1, "type": "string" }, @@ -21642,7 +21642,7 @@ "type": "boolean" }, "is_suspended": { - "description": "Indicates whether the [access system user](/low-level-apis/access-systems/user-management) is currently [suspended](/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users).", + "description": "Indicates whether the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is currently [suspended](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users).", "type": "boolean" }, "last_successful_sync_at": { @@ -21653,7 +21653,7 @@ "x-undocumented": "Only used internally." }, "pending_mutations": { - "description": "Pending mutations associated with the [access system user](/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.", + "description": "Pending mutations associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -22109,11 +22109,11 @@ "type": "array" }, "phone_number": { - "description": "Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "type": "string" }, "salto_space_metadata": { - "description": "Salto Space-specific metadata associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Salto Space-specific metadata associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "properties": { "audit_openings": { "description": "Indicates whether AuditOpenings is enabled for the user in the Salto Space access system.", @@ -22127,34 +22127,34 @@ "type": "object" }, "user_identity_email_address": { - "description": "Email address of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Email address of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "nullable": true, "type": "string" }, "user_identity_full_name": { - "description": "Full name of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Full name of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "nullable": true, "type": "string" }, "user_identity_id": { - "description": "ID of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "ID of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "type": "string" }, "user_identity_phone_number": { - "description": "Phone number of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "nullable": true, "type": "string" }, "warnings": { - "description": "Warnings associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Warnings associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "items": { - "description": "Warnings associated with the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Warnings associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access system user](/low-level-apis/access-systems/user-management) is being deleted from the [access system](/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly.", + "description": "Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is being deleted from the [access system](https://docs.seam.co/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -22180,7 +22180,7 @@ "type": "object" }, { - "description": "Indicates that the [access system user](/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.", + "description": "Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -22206,7 +22206,7 @@ "type": "object" }, { - "description": "An unknown issue occurred while syncing the state of this [access system user](/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user.", + "description": "An unknown issue occurred while syncing the state of this [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -22232,7 +22232,7 @@ "type": "object" }, { - "description": "Indicates that the [access system user](/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user.", + "description": "Indicates that the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -22262,7 +22262,7 @@ "type": "array" }, "workspace_id": { - "description": "ID of the workspace that contains the [access system user](/low-level-apis/access-systems/user-management).", + "description": "ID of the workspace that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "format": "uuid", "type": "string" } @@ -22284,7 +22284,7 @@ "x-undocumented": "Unreleased." }, "unmanaged_device": { - "description": "Represents an [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged.", + "description": "Represents an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged.", "properties": { "can_configure_auto_lock": { "description": "Indicates whether the lock supports configuring automatic locking.", @@ -22367,9 +22367,9 @@ "type": "boolean" }, "capabilities_supported": { - "description": "\n Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags).\n ", + "description": "\n Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags).\n ", "items": { - "description": "\n Collection of capabilities that the device supports when connected to Seam. **Important:** Superseded by [capability flags](/capability-guides/device-and-system-capabilities#capability-flags).\n ", + "description": "\n Collection of capabilities that the device supports when connected to Seam. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags).\n ", "enum": [ "access_code", "lock", @@ -22403,7 +22403,7 @@ } ] }, - "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", + "description": "Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.", "type": "object" }, "device_id": { @@ -22790,7 +22790,7 @@ "x-route-path": "/devices/unmanaged" }, "user_identity": { - "description": "Represents a [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with an application user account.", + "description": "Represents a [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with an application user account.", "properties": { "acs_user_ids": { "description": "Array of access system user IDs associated with the user identity.", @@ -22979,21 +22979,21 @@ "x-route-path": "/user_identities" }, "webhook": { - "description": "Represents a [webhook](/developer-tools/webhooks) that enables you to receive notifications of events. When you create a webhook, specify the endpoint URL at which you want to receive events and the set of event types that you want to receive.", + "description": "Represents a [webhook](https://docs.seam.co/developer-tools/webhooks) that enables you to receive notifications of events. When you create a webhook, specify the endpoint URL at which you want to receive events and the set of event types that you want to receive.", "properties": { "event_types": { - "description": "Types of events that the [webhook](/developer-tools/webhooks) should receive.", + "description": "Types of events that the [webhook](https://docs.seam.co/developer-tools/webhooks) should receive.", "items": { "type": "string" }, "type": "array" }, "secret": { - "description": "Secret associated with the [webhook](/developer-tools/webhooks).", + "description": "Secret associated with the [webhook](https://docs.seam.co/developer-tools/webhooks).", "type": "string" }, "url": { - "description": "URL for the [webhook](/developer-tools/webhooks).", + "description": "URL for the [webhook](https://docs.seam.co/developer-tools/webhooks).", "type": "string" }, "webhook_id": { @@ -23009,10 +23009,10 @@ "x-route-path": "/webhooks" }, "workspace": { - "description": "Represents a Seam [workspace](/core-concepts/workspaces). A workspace is a top-level entity that encompasses all other resources below it, such as devices, connected accounts, and Connect Webviews. Seam provides two types of workspaces. A [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces) is a special type of workspace designed for testing code.", + "description": "Represents a Seam [workspace](https://docs.seam.co/core-concepts/workspaces). A workspace is a top-level entity that encompasses all other resources below it, such as devices, connected accounts, and Connect Webviews. Seam provides two types of workspaces. A [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) is a special type of workspace designed for testing code.", "properties": { "company_name": { - "description": "Company name associated with the [workspace](/core-concepts/workspaces).", + "description": "Company name associated with the [workspace](https://docs.seam.co/core-concepts/workspaces).", "type": "string" }, "connect_partner_name": { @@ -23024,11 +23024,11 @@ "connect_webview_customization": { "properties": { "inviter_logo_url": { - "description": "URL of the inviter logo for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "URL of the inviter logo for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "type": "string" }, "logo_shape": { - "description": "Logo shape for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Logo shape for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "enum": [ "circle", "square" @@ -23036,15 +23036,15 @@ "type": "string" }, "primary_button_color": { - "description": "Primary button color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "type": "string" }, "primary_button_text_color": { - "description": "Primary button text color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button text color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "type": "string" }, "success_message": { - "description": "Success message for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Success message for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "type": "string" } }, @@ -23055,15 +23055,15 @@ "type": "boolean" }, "is_sandbox": { - "description": "Indicates whether the workspace is a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", + "description": "Indicates whether the workspace is a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", "type": "boolean" }, "is_suspended": { - "description": "Indicates whether the [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces) is suspended. Seam suspends sandbox workspaces that have not been accessed in 14 days.", + "description": "Indicates whether the [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) is suspended. Seam suspends sandbox workspaces that have not been accessed in 14 days.", "type": "boolean" }, "name": { - "description": "Name of the [workspace](/core-concepts/workspaces).", + "description": "Name of the [workspace](https://docs.seam.co/core-concepts/workspaces).", "type": "string" }, "organization_id": { @@ -23073,7 +23073,7 @@ "type": "string" }, "publishable_key": { - "description": "Publishable key for the [workspace](/core-concepts/workspaces). This key is used to identify the workspace in client-side applications.", + "description": "Publishable key for the [workspace](https://docs.seam.co/core-concepts/workspaces). This key is used to identify the workspace in client-side applications.", "type": "string" }, "workspace_id": { @@ -23238,7 +23238,7 @@ "paths": { "/access_codes/create": { "post": { - "description": "Creates a new [access code](/low-level-apis/smart-locks/access-codes). For granting access, we recommend [Access Grants](/use-cases/granting-access) instead: they work across both standalone smart locks and access control systems and manage the underlying codes for you. Use this low-level endpoint only when you need direct control over a code on a single device, such as setting a custom PIN value.", + "description": "Creates a new [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). For granting access, we recommend [Access Grants](https://docs.seam.co/use-cases/granting-access) instead: they work across both standalone smart locks and access control systems and manage the underlying codes for you. Use this low-level endpoint only when you need direct control over a code on a single device, such as setting a custom PIN value.", "operationId": "accessCodesCreatePost", "requestBody": { "content": { @@ -23246,7 +23246,7 @@ "schema": { "properties": { "allow_external_modification": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "attempt_for_offline_device": { @@ -23261,7 +23261,7 @@ "type": "string" }, "common_code_key": { - "description": "Key to identify access codes that should have the same code. Any two access codes with the same `common_code_key` are guaranteed to have the same `code`. See also [Creating and Updating Multiple Linked Access Codes](/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).", + "description": "Key to identify access codes that should have the same code. Any two access codes with the same `common_code_key` are guaranteed to have the same `code`. See also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).", "type": "string" }, "device_id": { @@ -23274,19 +23274,19 @@ "type": "string" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "is_offline_access_code": { - "description": "Indicates whether the access code is an [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes).", + "description": "Indicates whether the access code is an [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", + "description": "Indicates whether the [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", "type": "boolean" }, "max_time_rounding": { - "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", + "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", "enum": [ "1hour", "1day", @@ -23300,7 +23300,7 @@ "type": "string" }, "prefer_native_scheduling": { - "description": "Indicates whether [native scheduling](/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", + "description": "Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", "type": "boolean" }, "preferred_code_length": { @@ -23318,7 +23318,7 @@ "x-undocumented": "Only used internally." }, "use_backup_access_code_pool": { - "description": "Indicates whether to use a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](/api/access_codes/pull_backup_access_code).", + "description": "Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes#backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code).", "type": "boolean" }, "use_offline_access_code": { @@ -23479,7 +23479,7 @@ }, "/access_codes/create_multiple": { "post": { - "description": "Creates new [access codes](/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nUsers with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.\n\nIf you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a `common_code_key`. That is, `common_code_key` remains null for these access codes.\n\nIf you want to change these access codes that are not linked by a `common_code_key`, you cannot use `/access_codes/update_multiple`. However, you can update each of these access codes individually, using `/access_codes/update`.\n\nSee also [Creating and Updating Multiple Linked Access Codes](/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).\n\nFor granting a person access to a space, [Access Grants](/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.", + "description": "Creates new [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nUsers with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.\n\nIf you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a `common_code_key`. That is, `common_code_key` remains null for these access codes.\n\nIf you want to change these access codes that are not linked by a `common_code_key`, you cannot use `/access_codes/update_multiple`. However, you can update each of these access codes individually, using `/access_codes/update`.\n\nSee also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.", "operationId": "accessCodesCreateMultiplePost", "requestBody": { "content": { @@ -23487,7 +23487,7 @@ "schema": { "properties": { "allow_external_modification": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "attempt_for_offline_device": { @@ -23523,7 +23523,7 @@ "type": "string" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "name": { @@ -23531,7 +23531,7 @@ "type": "string" }, "prefer_native_scheduling": { - "description": "Indicates whether [native scheduling](/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", + "description": "Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", "type": "boolean" }, "preferred_code_length": { @@ -23544,7 +23544,7 @@ "type": "string" }, "use_backup_access_code_pool": { - "description": "Indicates whether to use a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](/api/access_codes/pull_backup_access_code).", + "description": "Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes#backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code).", "type": "boolean" } }, @@ -23649,7 +23649,7 @@ ] }, "put": { - "description": "Creates new [access codes](/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nUsers with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.\n\nIf you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a `common_code_key`. That is, `common_code_key` remains null for these access codes.\n\nIf you want to change these access codes that are not linked by a `common_code_key`, you cannot use `/access_codes/update_multiple`. However, you can update each of these access codes individually, using `/access_codes/update`.\n\nSee also [Creating and Updating Multiple Linked Access Codes](/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).\n\nFor granting a person access to a space, [Access Grants](/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.", + "description": "Creates new [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nUsers with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.\n\nIf you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a `common_code_key`. That is, `common_code_key` remains null for these access codes.\n\nIf you want to change these access codes that are not linked by a `common_code_key`, you cannot use `/access_codes/update_multiple`. However, you can update each of these access codes individually, using `/access_codes/update`.\n\nSee also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.", "operationId": "accessCodesCreateMultiplePut", "requestBody": { "content": { @@ -23657,7 +23657,7 @@ "schema": { "properties": { "allow_external_modification": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "attempt_for_offline_device": { @@ -23693,7 +23693,7 @@ "type": "string" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "name": { @@ -23701,7 +23701,7 @@ "type": "string" }, "prefer_native_scheduling": { - "description": "Indicates whether [native scheduling](/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", + "description": "Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", "type": "boolean" }, "preferred_code_length": { @@ -23714,7 +23714,7 @@ "type": "string" }, "use_backup_access_code_pool": { - "description": "Indicates whether to use a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](/api/access_codes/pull_backup_access_code).", + "description": "Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes#backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code).", "type": "boolean" } }, @@ -23791,7 +23791,7 @@ }, "/access_codes/delete": { "delete": { - "description": "Deletes an [access code](/low-level-apis/smart-locks/access-codes).", + "description": "Deletes an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", "operationId": "accessCodesDeleteDelete", "parameters": [ { @@ -23885,7 +23885,7 @@ "x-title": "Delete an Access Code" }, "post": { - "description": "Deletes an [access code](/low-level-apis/smart-locks/access-codes).", + "description": "Deletes an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).", "operationId": "accessCodesDeletePost", "requestBody": { "content": { @@ -24056,7 +24056,7 @@ }, "/access_codes/generate_code": { "get": { - "description": "Generates a code for an [access code](/low-level-apis/smart-locks/access-codes), given a device ID.", + "description": "Generates a code for an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes), given a device ID.", "operationId": "accessCodesGenerateCodeGet", "parameters": [ { @@ -24127,7 +24127,7 @@ "x-title": "Generate a Code" }, "post": { - "description": "Generates a code for an [access code](/low-level-apis/smart-locks/access-codes), given a device ID.", + "description": "Generates a code for an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes), given a device ID.", "operationId": "accessCodesGenerateCodePost", "requestBody": { "content": { @@ -24237,7 +24237,7 @@ }, "/access_codes/get": { "get": { - "description": "Returns a specified [access code](/low-level-apis/smart-locks/access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", + "description": "Returns a specified [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", "operationId": "accessCodesGetGet", "parameters": [ { @@ -24327,7 +24327,7 @@ "x-title": "Get an Access Code" }, "post": { - "description": "Returns a specified [access code](/low-level-apis/smart-locks/access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", + "description": "Returns a specified [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", "operationId": "accessCodesGetPost", "requestBody": { "content": { @@ -24446,7 +24446,7 @@ }, "/access_codes/list": { "get": { - "description": "Returns a list of all [access codes](/low-level-apis/smart-locks/access-codes).\n\nSpecify `device_id`, `access_code_ids`, `access_method_id`, or `access_grant_id`.", + "description": "Returns a list of all [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nSpecify `device_id`, `access_code_ids`, `access_method_id`, or `access_grant_id`.", "operationId": "accessCodesListGet", "parameters": [ { @@ -24600,7 +24600,7 @@ "x-title": "List Access Codes" }, "post": { - "description": "Returns a list of all [access codes](/low-level-apis/smart-locks/access-codes).\n\nSpecify `device_id`, `access_code_ids`, `access_method_id`, or `access_grant_id`.", + "description": "Returns a list of all [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nSpecify `device_id`, `access_code_ids`, `access_method_id`, or `access_grant_id`.", "operationId": "accessCodesListPost", "requestBody": { "content": { @@ -24759,7 +24759,7 @@ }, "/access_codes/pull_backup_access_code": { "post": { - "description": "Retrieves a backup access code for an [access code](/low-level-apis/smart-locks/access-codes). See also [Managing Backup Access Codes](/low-level-apis/smart-locks/access-codes/backup-access-codes).\n\nA backup access code pool is a collection of pre-programmed access codes stored on a device, ready for use. These codes are programmed in addition to the regular access codes on Seam, serving as a safety net for any issues with the primary codes. If there's ever a complication with a primary access code—be it due to intermittent connectivity, manual removal from a device, or provider outages—a backup code can be retrieved. Its end time can then be adjusted to align with the original code, facilitating seamless and uninterrupted access.\n\nYou can pull a backup access code from the pool at any time. These backup codes are guaranteed to work immediately and automatically programmed to be removed from the device after the access code ends.\n\nYou can only pull backup access codes for time-bound access codes.\n\nBefore pulling a backup access code, make sure that the device's `properties.supports_backup_access_code_pool` is `true`. Then, to activate the backup pool, set `use_backup_access_code_pool` to `true` when creating an access code.", + "description": "Retrieves a backup access code for an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). See also [Managing Backup Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes).\n\nA backup access code pool is a collection of pre-programmed access codes stored on a device, ready for use. These codes are programmed in addition to the regular access codes on Seam, serving as a safety net for any issues with the primary codes. If there's ever a complication with a primary access code—be it due to intermittent connectivity, manual removal from a device, or provider outages—a backup code can be retrieved. Its end time can then be adjusted to align with the original code, facilitating seamless and uninterrupted access.\n\nYou can pull a backup access code from the pool at any time. These backup codes are guaranteed to work immediately and automatically programmed to be removed from the device after the access code ends.\n\nYou can only pull backup access codes for time-bound access codes.\n\nBefore pulling a backup access code, make sure that the device's `properties.supports_backup_access_code_pool` is `true`. Then, to activate the backup pool, set `use_backup_access_code_pool` to `true` when creating an access code.", "operationId": "accessCodesPullBackupAccessCodePost", "requestBody": { "content": { @@ -25004,7 +25004,7 @@ }, "/access_codes/simulate/create_unmanaged_access_code": { "post": { - "description": "Simulates the creation of an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates the creation of an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", "operationId": "accessCodesSimulateCreateUnmanagedAccessCodePost", "requestBody": { "content": { @@ -25127,7 +25127,7 @@ }, "/access_codes/unmanaged/convert_to_managed": { "patch": { - "description": "Converts an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) to an [access code managed through Seam](/low-level-apis/smart-locks/access-codes).\n\nAn unmanaged access code has a limited set of operations that you can perform on it. Once you convert an unmanaged access code to a managed access code, the full set of access code operations and lifecycle events becomes available for it.\n\nNote that not all device providers support converting an unmanaged access code to a managed access code.", + "description": "Converts an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) to an [access code managed through Seam](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nAn unmanaged access code has a limited set of operations that you can perform on it. Once you convert an unmanaged access code to a managed access code, the full set of access code operations and lifecycle events becomes available for it.\n\nNote that not all device providers support converting an unmanaged access code to a managed access code.", "operationId": "accessCodesUnmanagedConvertToManagedPatch", "requestBody": { "content": { @@ -25140,7 +25140,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", "type": "boolean" }, "force": { @@ -25148,7 +25148,7 @@ "type": "boolean" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", "type": "boolean" }, "sync": { @@ -25222,7 +25222,7 @@ "x-title": "Convert an Unmanaged Access Code" }, "post": { - "description": "Converts an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) to an [access code managed through Seam](/low-level-apis/smart-locks/access-codes).\n\nAn unmanaged access code has a limited set of operations that you can perform on it. Once you convert an unmanaged access code to a managed access code, the full set of access code operations and lifecycle events becomes available for it.\n\nNote that not all device providers support converting an unmanaged access code to a managed access code.", + "description": "Converts an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) to an [access code managed through Seam](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nAn unmanaged access code has a limited set of operations that you can perform on it. Once you convert an unmanaged access code to a managed access code, the full set of access code operations and lifecycle events becomes available for it.\n\nNote that not all device providers support converting an unmanaged access code to a managed access code.", "operationId": "accessCodesUnmanagedConvertToManagedPost", "requestBody": { "content": { @@ -25235,7 +25235,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", "type": "boolean" }, "force": { @@ -25243,7 +25243,7 @@ "type": "boolean" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed.", "type": "boolean" }, "sync": { @@ -25349,7 +25349,7 @@ }, "/access_codes/unmanaged/delete": { "delete": { - "description": "Deletes an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Deletes an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "operationId": "accessCodesUnmanagedDeleteDelete", "parameters": [ { @@ -25434,7 +25434,7 @@ "x-title": "Delete an Unmanaged Access Code" }, "post": { - "description": "Deletes an [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Deletes an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "operationId": "accessCodesUnmanagedDeletePost", "requestBody": { "content": { @@ -25600,7 +25600,7 @@ }, "/access_codes/unmanaged/get": { "get": { - "description": "Returns a specified [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", + "description": "Returns a specified [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", "operationId": "accessCodesUnmanagedGetGet", "parameters": [ { @@ -25691,7 +25691,7 @@ "x-title": "Get an Unmanaged Access Code" }, "post": { - "description": "Returns a specified [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", + "description": "Returns a specified [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).\n\nYou must specify either `access_code_id` or both `device_id` and `code`.", "operationId": "accessCodesUnmanagedGetPost", "requestBody": { "content": { @@ -25810,7 +25810,7 @@ }, "/access_codes/unmanaged/list": { "get": { - "description": "Returns a list of all [unmanaged access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Returns a list of all [unmanaged access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "operationId": "accessCodesUnmanagedListGet", "parameters": [ { @@ -25932,7 +25932,7 @@ "x-title": "List Unmanaged Access Codes" }, "post": { - "description": "Returns a list of all [unmanaged access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Returns a list of all [unmanaged access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "operationId": "accessCodesUnmanagedListPost", "requestBody": { "content": { @@ -26072,7 +26072,7 @@ }, "/access_codes/unmanaged/update": { "patch": { - "description": "Updates a specified [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Updates a specified [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "operationId": "accessCodesUnmanagedUpdatePatch", "requestBody": { "content": { @@ -26085,7 +26085,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", "type": "boolean" }, "force": { @@ -26093,7 +26093,7 @@ "type": "boolean" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", "type": "boolean" }, "is_managed": { @@ -26165,7 +26165,7 @@ "x-title": "Update an Unmanaged Access Code" }, "post": { - "description": "Updates a specified [unmanaged access code](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", + "description": "Updates a specified [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).", "operationId": "accessCodesUnmanagedUpdatePost", "requestBody": { "content": { @@ -26178,7 +26178,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", "type": "boolean" }, "force": { @@ -26186,7 +26186,7 @@ "type": "boolean" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed.", "type": "boolean" }, "is_managed": { @@ -26290,7 +26290,7 @@ }, "/access_codes/update": { "patch": { - "description": "Updates a specified active or upcoming [access code](/low-level-apis/smart-locks/access-codes).\n\nSee also [Modifying Access Codes](/low-level-apis/smart-locks/access-codes/modifying-access-codes).", + "description": "Updates a specified active or upcoming [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nSee also [Modifying Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes).", "operationId": "accessCodesUpdatePatch", "requestBody": { "content": { @@ -26303,7 +26303,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "attempt_for_offline_device": { @@ -26327,7 +26327,7 @@ "type": "string" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "is_managed": { @@ -26335,15 +26335,15 @@ "type": "boolean" }, "is_offline_access_code": { - "description": "Indicates whether the access code is an [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes).", + "description": "Indicates whether the access code is an [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", + "description": "Indicates whether the [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", "type": "boolean" }, "max_time_rounding": { - "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", + "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", "enum": [ "1hour", "1day", @@ -26357,7 +26357,7 @@ "type": "string" }, "prefer_native_scheduling": { - "description": "Indicates whether [native scheduling](/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", + "description": "Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", "type": "boolean" }, "preferred_code_length": { @@ -26375,7 +26375,7 @@ "x-undocumented": "Only used internally." }, "type": { - "description": "Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).", + "description": "Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).", "enum": [ "ongoing", "time_bound" @@ -26383,7 +26383,7 @@ "type": "string" }, "use_backup_access_code_pool": { - "description": "Indicates whether to use a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](/api/access_codes/pull_backup_access_code).", + "description": "Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes#backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code).", "type": "boolean" }, "use_offline_access_code": { @@ -26460,7 +26460,7 @@ "x-title": "Update an Access Code" }, "post": { - "description": "Updates a specified active or upcoming [access code](/low-level-apis/smart-locks/access-codes).\n\nSee also [Modifying Access Codes](/low-level-apis/smart-locks/access-codes/modifying-access-codes).", + "description": "Updates a specified active or upcoming [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nSee also [Modifying Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes).", "operationId": "accessCodesUpdatePost", "requestBody": { "content": { @@ -26473,7 +26473,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "attempt_for_offline_device": { @@ -26497,7 +26497,7 @@ "type": "string" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "is_managed": { @@ -26505,15 +26505,15 @@ "type": "boolean" }, "is_offline_access_code": { - "description": "Indicates whether the access code is an [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes).", + "description": "Indicates whether the access code is an [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", + "description": "Indicates whether the [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", "type": "boolean" }, "max_time_rounding": { - "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", + "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", "enum": [ "1hour", "1day", @@ -26527,7 +26527,7 @@ "type": "string" }, "prefer_native_scheduling": { - "description": "Indicates whether [native scheduling](/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", + "description": "Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", "type": "boolean" }, "preferred_code_length": { @@ -26545,7 +26545,7 @@ "x-undocumented": "Only used internally." }, "type": { - "description": "Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).", + "description": "Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).", "enum": [ "ongoing", "time_bound" @@ -26553,7 +26553,7 @@ "type": "string" }, "use_backup_access_code_pool": { - "description": "Indicates whether to use a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](/api/access_codes/pull_backup_access_code).", + "description": "Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes#backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code).", "type": "boolean" }, "use_offline_access_code": { @@ -26708,7 +26708,7 @@ ] }, "put": { - "description": "Updates a specified active or upcoming [access code](/low-level-apis/smart-locks/access-codes).\n\nSee also [Modifying Access Codes](/low-level-apis/smart-locks/access-codes/modifying-access-codes).", + "description": "Updates a specified active or upcoming [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nSee also [Modifying Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes).", "operationId": "accessCodesUpdatePut", "requestBody": { "content": { @@ -26721,7 +26721,7 @@ "type": "string" }, "allow_external_modification": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "attempt_for_offline_device": { @@ -26745,7 +26745,7 @@ "type": "string" }, "is_external_modification_allowed": { - "description": "Indicates whether [external modification](/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", + "description": "Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`.", "type": "boolean" }, "is_managed": { @@ -26753,15 +26753,15 @@ "type": "boolean" }, "is_offline_access_code": { - "description": "Indicates whether the access code is an [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes).", + "description": "Indicates whether the access code is an [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes).", "type": "boolean" }, "is_one_time_use": { - "description": "Indicates whether the [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", + "description": "Indicates whether the [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code.", "type": "boolean" }, "max_time_rounding": { - "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", + "description": "Maximum rounding adjustment. To create a daily-bound [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`.", "enum": [ "1hour", "1day", @@ -26775,7 +26775,7 @@ "type": "string" }, "prefer_native_scheduling": { - "description": "Indicates whether [native scheduling](/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", + "description": "Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`.", "type": "boolean" }, "preferred_code_length": { @@ -26793,7 +26793,7 @@ "x-undocumented": "Only used internally." }, "type": { - "description": "Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).", + "description": "Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).", "enum": [ "ongoing", "time_bound" @@ -26801,7 +26801,7 @@ "type": "string" }, "use_backup_access_code_pool": { - "description": "Indicates whether to use a [backup access code pool](/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](/api/access_codes/pull_backup_access_code).", + "description": "Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes#backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code).", "type": "boolean" }, "use_offline_access_code": { @@ -26880,7 +26880,7 @@ }, "/access_codes/update_multiple": { "patch": { - "description": "Updates [access codes](/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nSpecify the `common_code_key` to identify the set of access codes that you want to update.\n\nSee also [Update Linked Access Codes](/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes#update-linked-access-codes).", + "description": "Updates [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nSpecify the `common_code_key` to identify the set of access codes that you want to update.\n\nSee also [Update Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes#update-linked-access-codes).", "operationId": "accessCodesUpdateMultiplePatch", "requestBody": { "content": { @@ -26967,7 +26967,7 @@ "x-title": "Update Multiple Linked Access Codes" }, "post": { - "description": "Updates [access codes](/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nSpecify the `common_code_key` to identify the set of access codes that you want to update.\n\nSee also [Update Linked Access Codes](/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes#update-linked-access-codes).", + "description": "Updates [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nSpecify the `common_code_key` to identify the set of access codes that you want to update.\n\nSee also [Update Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes#update-linked-access-codes).", "operationId": "accessCodesUpdateMultiplePost", "requestBody": { "content": { @@ -27087,7 +27087,7 @@ }, "/access_grants/create": { "post": { - "description": "Creates a new [Access Grant](/use-cases/granting-access). Access Grants are the default and recommended way to grant a user access to any physical space, irrespective of the locking hardware. They work with both standalone smart locks (using `device_ids`) and access control systems (using `acs_entrance_ids` or `space_ids`), and can issue PIN codes, key cards, and mobile keys through a single request.", + "description": "Creates a new [Access Grant](https://docs.seam.co/use-cases/granting-access). Access Grants are the default and recommended way to grant a user access to any physical space, irrespective of the locking hardware. They work with both standalone smart locks (using `device_ids`) and access control systems (using `acs_entrance_ids` or `space_ids`), and can issue PIN codes, key cards, and mobile keys through a single request.", "operationId": "accessGrantsCreatePost", "requestBody": { "content": { @@ -27157,7 +27157,7 @@ }, "acs_entrance_ids": { "default": [], - "description": "Set of IDs of the [entrances](/api/acs/systems/list) to which access is being granted.", + "description": "Set of IDs of the [entrances](https://docs.seam.co/api/acs/systems/list) to which access is being granted.", "items": { "format": "uuid", "type": "string" @@ -27171,7 +27171,7 @@ }, "device_ids": { "default": [], - "description": "Set of IDs of the [devices](/api/devices/list) to which access is being granted.", + "description": "Set of IDs of the [devices](https://docs.seam.co/api/devices/list) to which access is being granted.", "items": { "format": "uuid", "type": "string" @@ -28603,7 +28603,7 @@ "type": "string" }, "errors": { - "description": "Errors associated with the [access grant](/use-cases/granting-access).", + "description": "Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "items": { "discriminator": { "propertyName": "error_code" @@ -28901,15 +28901,15 @@ "type": "string" }, "warnings": { - "description": "Warnings associated with the [access grant](/use-cases/granting-access).", + "description": "Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "items": { - "description": "Warning associated with the [access grant](/use-cases/granting-access).", + "description": "Warning associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access grant](/use-cases/granting-access) is being deleted.", + "description": "Indicates that the [access grant](https://docs.seam.co/use-cases/granting-access) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -29017,7 +29017,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access grant](/use-cases/granting-access) are being updated.", + "description": "Indicates that the access times for this [access grant](https://docs.seam.co/use-cases/granting-access) are being updated.", "properties": { "access_method_ids": { "description": "IDs of the access methods being updated.", @@ -29307,7 +29307,7 @@ "type": "string" }, "errors": { - "description": "Errors associated with the [access grant](/use-cases/granting-access).", + "description": "Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "items": { "discriminator": { "propertyName": "error_code" @@ -29605,15 +29605,15 @@ "type": "string" }, "warnings": { - "description": "Warnings associated with the [access grant](/use-cases/granting-access).", + "description": "Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "items": { - "description": "Warning associated with the [access grant](/use-cases/granting-access).", + "description": "Warning associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access grant](/use-cases/granting-access) is being deleted.", + "description": "Indicates that the [access grant](https://docs.seam.co/use-cases/granting-access) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -29721,7 +29721,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access grant](/use-cases/granting-access) are being updated.", + "description": "Indicates that the access times for this [access grant](https://docs.seam.co/use-cases/granting-access) are being updated.", "properties": { "access_method_ids": { "description": "IDs of the access methods being updated.", @@ -30048,7 +30048,7 @@ "type": "string" }, "errors": { - "description": "Errors associated with the [access grant](/use-cases/granting-access).", + "description": "Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "items": { "discriminator": { "propertyName": "error_code" @@ -30346,15 +30346,15 @@ "type": "string" }, "warnings": { - "description": "Warnings associated with the [access grant](/use-cases/granting-access).", + "description": "Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "items": { - "description": "Warning associated with the [access grant](/use-cases/granting-access).", + "description": "Warning associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access grant](/use-cases/granting-access) is being deleted.", + "description": "Indicates that the [access grant](https://docs.seam.co/use-cases/granting-access) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -30462,7 +30462,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access grant](/use-cases/granting-access) are being updated.", + "description": "Indicates that the access times for this [access grant](https://docs.seam.co/use-cases/granting-access) are being updated.", "properties": { "access_method_ids": { "description": "IDs of the access methods being updated.", @@ -30781,7 +30781,7 @@ "type": "string" }, "errors": { - "description": "Errors associated with the [access grant](/use-cases/granting-access).", + "description": "Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "items": { "discriminator": { "propertyName": "error_code" @@ -31079,15 +31079,15 @@ "type": "string" }, "warnings": { - "description": "Warnings associated with the [access grant](/use-cases/granting-access).", + "description": "Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "items": { - "description": "Warning associated with the [access grant](/use-cases/granting-access).", + "description": "Warning associated with the [access grant](https://docs.seam.co/use-cases/granting-access).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access grant](/use-cases/granting-access) is being deleted.", + "description": "Indicates that the [access grant](https://docs.seam.co/use-cases/granting-access) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -31195,7 +31195,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access grant](/use-cases/granting-access) are being updated.", + "description": "Indicates that the access times for this [access grant](https://docs.seam.co/use-cases/granting-access) are being updated.", "properties": { "access_method_ids": { "description": "IDs of the access methods being updated.", @@ -32121,7 +32121,7 @@ }, "/access_methods/encode": { "post": { - "description": "Encodes an existing access method onto a plastic card placed on the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Encodes an existing access method onto a plastic card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "operationId": "accessMethodsEncodePost", "requestBody": { "content": { @@ -33007,7 +33007,7 @@ }, "/access_methods/unlock_door": { "post": { - "description": "Remotely unlocks a specified [entrance](/low-level-apis/access-systems/retrieving-entrance-details) using the cloud key credential associated with an access method. Returns an action attempt that tracks the progress of the unlock operation.", + "description": "Remotely unlocks a specified [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) using the cloud key credential associated with an access method. Returns an action attempt that tracks the progress of the unlock operation.", "operationId": "accessMethodsUnlockDoorPost", "requestBody": { "content": { @@ -33213,7 +33213,7 @@ "type": "string" }, "pending_mutations": { - "description": "Pending mutations for the [access method](/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", + "description": "Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -33423,15 +33423,15 @@ "type": "array" }, "warnings": { - "description": "Warnings associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", + "description": "Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", "items": { - "description": "Warning associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", + "description": "Warning associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access method](/use-cases/granting-access/creating-an-access-grant) is being deleted.", + "description": "Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -33458,7 +33458,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access method](/use-cases/granting-access/creating-an-access-grant) are being updated.", + "description": "Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -33671,7 +33671,7 @@ "type": "string" }, "pending_mutations": { - "description": "Pending mutations for the [access method](/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", + "description": "Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -33881,15 +33881,15 @@ "type": "array" }, "warnings": { - "description": "Warnings associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", + "description": "Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", "items": { - "description": "Warning associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", + "description": "Warning associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access method](/use-cases/granting-access/creating-an-access-grant) is being deleted.", + "description": "Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -33916,7 +33916,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access method](/use-cases/granting-access/creating-an-access-grant) are being updated.", + "description": "Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -34152,7 +34152,7 @@ "type": "string" }, "pending_mutations": { - "description": "Pending mutations for the [access method](/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", + "description": "Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -34362,15 +34362,15 @@ "type": "array" }, "warnings": { - "description": "Warnings associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", + "description": "Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", "items": { - "description": "Warning associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", + "description": "Warning associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access method](/use-cases/granting-access/creating-an-access-grant) is being deleted.", + "description": "Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -34397,7 +34397,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access method](/use-cases/granting-access/creating-an-access-grant) are being updated.", + "description": "Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -34631,7 +34631,7 @@ "type": "string" }, "pending_mutations": { - "description": "Pending mutations for the [access method](/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", + "description": "Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.", "items": { "discriminator": { "propertyName": "mutation_code" @@ -34841,15 +34841,15 @@ "type": "array" }, "warnings": { - "description": "Warnings associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", + "description": "Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", "items": { - "description": "Warning associated with the [access method](/use-cases/granting-access/creating-an-access-grant).", + "description": "Warning associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).", "discriminator": { "propertyName": "warning_code" }, "oneOf": [ { - "description": "Indicates that the [access method](/use-cases/granting-access/creating-an-access-grant) is being deleted.", + "description": "Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -34876,7 +34876,7 @@ "type": "object" }, { - "description": "Indicates that the access times for this [access method](/use-cases/granting-access/creating-an-access-grant) are being updated.", + "description": "Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated.", "properties": { "created_at": { "description": "Date and time at which Seam created the warning.", @@ -35007,7 +35007,7 @@ }, "/acs/access_groups/add_user": { "post": { - "description": "Adds a specified [access system user](/low-level-apis/access-systems/user-management) to a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsAddUserPost", "requestBody": { "content": { @@ -35118,7 +35118,7 @@ ] }, "put": { - "description": "Adds a specified [access system user](/low-level-apis/access-systems/user-management) to a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsAddUserPut", "requestBody": { "content": { @@ -35201,7 +35201,7 @@ }, "/acs/access_groups/delete": { "delete": { - "description": "Deletes a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Deletes a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsDeleteDelete", "parameters": [ { @@ -35268,7 +35268,7 @@ "x-title": "Delete an Access Group" }, "post": { - "description": "Deletes a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Deletes a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsDeletePost", "requestBody": { "content": { @@ -35342,7 +35342,7 @@ }, "/acs/access_groups/get": { "get": { - "description": "Returns a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsGetGet", "parameters": [ { @@ -35411,7 +35411,7 @@ "x-title": "Get an Access Group" }, "post": { - "description": "Returns a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsGetPost", "requestBody": { "content": { @@ -35518,7 +35518,7 @@ }, "/acs/access_groups/list": { "get": { - "description": "Returns a list of all [access groups](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a list of all [access groups](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsListGet", "parameters": [ { @@ -35616,7 +35616,7 @@ "x-title": "List Access Groups" }, "post": { - "description": "Returns a list of all [access groups](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a list of all [access groups](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsListPost", "requestBody": { "content": { @@ -35738,7 +35738,7 @@ }, "/acs/access_groups/list_accessible_entrances": { "get": { - "description": "Returns a list of all accessible entrances for a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a list of all accessible entrances for a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsListAccessibleEntrancesGet", "parameters": [ { @@ -35810,7 +35810,7 @@ "x-title": "List Entrances Accessible to an Access Group" }, "post": { - "description": "Returns a list of all accessible entrances for a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a list of all accessible entrances for a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsListAccessibleEntrancesPost", "requestBody": { "content": { @@ -35920,7 +35920,7 @@ }, "/acs/access_groups/list_users": { "get": { - "description": "Returns a list of all [access system users](/low-level-apis/access-systems/user-management) in an [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsListUsersGet", "parameters": [ { @@ -35992,7 +35992,7 @@ "x-title": "List ACS Users in an Access Group" }, "post": { - "description": "Returns a list of all [access system users](/low-level-apis/access-systems/user-management) in an [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsListUsersPost", "requestBody": { "content": { @@ -36102,7 +36102,7 @@ }, "/acs/access_groups/remove_user": { "delete": { - "description": "Removes a specified [access system user](/low-level-apis/access-systems/user-management) from a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsRemoveUserDelete", "parameters": [ { @@ -36186,7 +36186,7 @@ "x-title": "Remove an ACS User from an Access Group" }, "post": { - "description": "Removes a specified [access system user](/low-level-apis/access-systems/user-management) from a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsAccessGroupsRemoveUserPost", "requestBody": { "content": { @@ -36299,7 +36299,7 @@ }, "/acs/credentials/assign": { "patch": { - "description": "Assigns a specified [credential](/low-level-apis/access-systems/managing-credentials) to a specified [access system user](/low-level-apis/access-systems/user-management).", + "description": "Assigns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) to a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "operationId": "acsCredentialsAssignPatch", "requestBody": { "content": { @@ -36384,7 +36384,7 @@ "x-title": "Assign a Credential to an ACS User" }, "post": { - "description": "Assigns a specified [credential](/low-level-apis/access-systems/managing-credentials) to a specified [access system user](/low-level-apis/access-systems/user-management).", + "description": "Assigns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) to a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "operationId": "acsCredentialsAssignPost", "requestBody": { "content": { @@ -36501,7 +36501,7 @@ }, "/acs/credentials/create": { "post": { - "description": "Creates a new [credential](/low-level-apis/access-systems/managing-credentials) for a specified [ACS user](/low-level-apis/access-systems/user-management). For granting access, we recommend [Access Grants](/use-cases/granting-access) instead: they create and manage the underlying credentials for you, across access systems and standalone smart locks alike. Use this low-level endpoint only when you need direct control over an individual ACS credential.", + "description": "Creates a new [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) for a specified [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management). For granting access, we recommend [Access Grants](https://docs.seam.co/use-cases/granting-access) instead: they create and manage the underlying credentials for you, across access systems and standalone smart locks alike. Use this low-level endpoint only when you need direct control over an individual ACS credential.", "operationId": "acsCredentialsCreatePost", "requestBody": { "content": { @@ -36530,7 +36530,7 @@ }, "allowed_acs_entrance_ids": { "default": [], - "description": "Set of IDs of the [entrances](/low-level-apis/access-systems/retrieving-entrance-details) for which the new credential grants access.", + "description": "Set of IDs of the [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) for which the new credential grants access.", "items": { "format": "uuid", "type": "string" @@ -36560,7 +36560,7 @@ "type": "object" }, "code": { - "description": "Access (PIN) code for the new credential. There may be manufacturer-specific code restrictions. For details, see the applicable [device or system integration guide](/device-and-system-integration-guides).", + "description": "Access (PIN) code for the new credential. There may be manufacturer-specific code restrictions. For details, see the applicable [device or system integration guide](https://docs.seam.co/device-and-system-integration-guides).", "pattern": "^\\d+$", "type": "string" }, @@ -36588,18 +36588,18 @@ }, "is_multi_phone_sync_credential": { "default": false, - "description": "Indicates whether the new credential is a [multi-phone sync credential](/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", + "description": "Indicates whether the new credential is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).", "type": "boolean" }, "salto_space_metadata": { "description": "Salto Space-specific metadata for the new credential.", "properties": { "assign_new_key": { - "description": "Indicates whether to assign a first, new card to a user. See also [Programming Salto Space Card-based Credentials](/device-and-system-integration-guides/salto-proaccess-space-access-system/programming-salto-space-card-based-credentials).", + "description": "Indicates whether to assign a first, new card to a user. See also [Programming Salto Space Card-based Credentials](https://docs.seam.co/device-and-system-integration-guides/salto-proaccess-space-access-system/programming-salto-space-card-based-credentials).", "type": "boolean" }, "update_current_key": { - "description": "Indicates whether to update the user's existing card. See also [Programming Salto Space Card-based Credentials](/device-and-system-integration-guides/salto-proaccess-space-access-system/programming-salto-space-card-based-credentials).", + "description": "Indicates whether to update the user's existing card. See also [Programming Salto Space Card-based Credentials](https://docs.seam.co/device-and-system-integration-guides/salto-proaccess-space-access-system/programming-salto-space-card-based-credentials).", "type": "boolean", "x-undocumented": "Not used. Will be deprecated." } @@ -36758,7 +36758,7 @@ }, "/acs/credentials/delete": { "delete": { - "description": "Deletes a specified [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Deletes a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsDeleteDelete", "parameters": [ { @@ -36822,7 +36822,7 @@ "x-title": "Delete a Credential" }, "post": { - "description": "Deletes a specified [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Deletes a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsDeletePost", "requestBody": { "content": { @@ -36925,7 +36925,7 @@ }, "/acs/credentials/get": { "get": { - "description": "Returns a specified [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Returns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsGetGet", "parameters": [ { @@ -36994,7 +36994,7 @@ "x-title": "Get a Credential" }, "post": { - "description": "Returns a specified [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Returns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsGetPost", "requestBody": { "content": { @@ -37101,7 +37101,7 @@ }, "/acs/credentials/list": { "get": { - "description": "Returns a list of all [credentials](/low-level-apis/access-systems/managing-credentials).", + "description": "Returns a list of all [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsListGet", "responses": { "200": { @@ -37168,7 +37168,7 @@ "x-title": "List Credentials" }, "post": { - "description": "Returns a list of all [credentials](/low-level-apis/access-systems/managing-credentials).", + "description": "Returns a list of all [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsListPost", "requestBody": { "content": { @@ -37372,7 +37372,7 @@ }, "/acs/credentials/list_accessible_entrances": { "get": { - "description": "Returns a list of all [entrances](/api/acs/entrances/object) to which a [credential](/api/acs/credentials/object) grants access.", + "description": "Returns a list of all [entrances](https://docs.seam.co/api/acs/entrances/object) to which a [credential](https://docs.seam.co/api/acs/credentials/object) grants access.", "operationId": "acsCredentialsListAccessibleEntrancesGet", "parameters": [ { @@ -37444,7 +37444,7 @@ "x-title": "List Accessible Entrances" }, "post": { - "description": "Returns a list of all [entrances](/api/acs/entrances/object) to which a [credential](/api/acs/credentials/object) grants access.", + "description": "Returns a list of all [entrances](https://docs.seam.co/api/acs/entrances/object) to which a [credential](https://docs.seam.co/api/acs/credentials/object) grants access.", "operationId": "acsCredentialsListAccessibleEntrancesPost", "requestBody": { "content": { @@ -37554,7 +37554,7 @@ }, "/acs/credentials/unassign": { "patch": { - "description": "Unassigns a specified [credential](/low-level-apis/access-systems/managing-credentials) from a specified [access system user](/low-level-apis/access-systems/user-management).", + "description": "Unassigns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) from a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "operationId": "acsCredentialsUnassignPatch", "requestBody": { "content": { @@ -37639,7 +37639,7 @@ "x-title": "Unassign a Credential from an ACS User" }, "post": { - "description": "Unassigns a specified [credential](/low-level-apis/access-systems/managing-credentials) from a specified [access system user](/low-level-apis/access-systems/user-management).", + "description": "Unassigns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) from a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "operationId": "acsCredentialsUnassignPost", "requestBody": { "content": { @@ -37756,7 +37756,7 @@ }, "/acs/credentials/update": { "patch": { - "description": "Updates the code and ends at date and time for a specified [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Updates the code and ends at date and time for a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsUpdatePatch", "requestBody": { "content": { @@ -37840,7 +37840,7 @@ "x-title": "Update a Credential" }, "post": { - "description": "Updates the code and ends at date and time for a specified [credential](/low-level-apis/access-systems/managing-credentials).", + "description": "Updates the code and ends at date and time for a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "operationId": "acsCredentialsUpdatePost", "requestBody": { "content": { @@ -37956,7 +37956,7 @@ }, "/acs/encoders/encode_credential": { "post": { - "description": "Encodes an existing [credential](/low-level-apis/access-systems/managing-credentials) onto a plastic card placed on the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners). Either provide an `acs_credential_id` or an `access_method_id`", + "description": "Encodes an existing [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) onto a plastic card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). Either provide an `acs_credential_id` or an `access_method_id`", "operationId": "acsEncodersEncodeCredentialPost", "requestBody": { "content": { @@ -38124,7 +38124,7 @@ }, "/acs/encoders/get": { "get": { - "description": "Returns a specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Returns a specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "operationId": "acsEncodersGetGet", "parameters": [ { @@ -38193,7 +38193,7 @@ "x-title": "Get an Encoder" }, "post": { - "description": "Returns a specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Returns a specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "operationId": "acsEncodersGetPost", "requestBody": { "content": { @@ -38300,7 +38300,7 @@ }, "/acs/encoders/list": { "get": { - "description": "Returns a list of all [encoders](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Returns a list of all [encoders](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "operationId": "acsEncodersListGet", "responses": { "200": { @@ -38367,7 +38367,7 @@ "x-title": "List Encoders" }, "post": { - "description": "Returns a list of all [encoders](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Returns a list of all [encoders](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "operationId": "acsEncodersListPost", "requestBody": { "content": { @@ -38540,7 +38540,7 @@ }, "/acs/encoders/scan_credential": { "post": { - "description": "Scans an encoded [acs_credential](/low-level-apis/access-systems/managing-credentials) from a plastic card placed on the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", + "description": "Scans an encoded [acs_credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) from a plastic card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).", "operationId": "acsEncodersScanCredentialPost", "requestBody": { "content": { @@ -38706,7 +38706,7 @@ }, "/acs/encoders/scan_to_assign_credential": { "post": { - "description": "Scans a physical card placed on the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) and assigns the scanned credential to an ACS user. Provide either an `acs_user_id` or a `user_identity_id`.", + "description": "Scans a physical card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) and assigns the scanned credential to an ACS user. Provide either an `acs_user_id` or a `user_identity_id`.", "operationId": "acsEncodersScanToAssignCredentialPost", "requestBody": { "content": { @@ -38853,7 +38853,7 @@ }, "/acs/encoders/simulate/next_credential_encode_will_fail": { "post": { - "description": "Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", "operationId": "acsEncodersSimulateNextCredentialEncodeWillFailPost", "requestBody": { "content": { @@ -38998,7 +38998,7 @@ }, "/acs/encoders/simulate/next_credential_encode_will_succeed": { "post": { - "description": "Simulates that the next attempt to encode a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", "operationId": "acsEncodersSimulateNextCredentialEncodeWillSucceedPost", "requestBody": { "content": { @@ -39113,7 +39113,7 @@ }, "/acs/encoders/simulate/next_credential_scan_will_fail": { "post": { - "description": "Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", "operationId": "acsEncodersSimulateNextCredentialScanWillFailPost", "requestBody": { "content": { @@ -39254,7 +39254,7 @@ }, "/acs/encoders/simulate/next_credential_scan_will_succeed": { "post": { - "description": "Simulates that the next attempt to scan a [credential](/low-level-apis/access-systems/managing-credentials) using the specified [encoder](/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", "operationId": "acsEncodersSimulateNextCredentialScanWillSucceedPost", "requestBody": { "content": { @@ -39420,7 +39420,7 @@ }, "/acs/entrances/get": { "get": { - "description": "Returns a specified [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Returns a specified [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesGetGet", "parameters": [ { @@ -39495,7 +39495,7 @@ "x-title": "Get an Entrance" }, "post": { - "description": "Returns a specified [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Returns a specified [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesGetPost", "requestBody": { "content": { @@ -39608,7 +39608,7 @@ }, "/acs/entrances/grant_access": { "post": { - "description": "Grants a specified [access system user](/low-level-apis/access-systems/user-management) access to a specified [access system entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Grants a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) access to a specified [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesGrantAccessPost", "requestBody": { "content": { @@ -39721,7 +39721,7 @@ }, "/acs/entrances/list": { "get": { - "description": "Returns a list of all [access system entrances](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Returns a list of all [access system entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesListGet", "parameters": [ { @@ -39889,7 +39889,7 @@ "x-title": "List Entrances" }, "post": { - "description": "Returns a list of all [access system entrances](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Returns a list of all [access system entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesListPost", "requestBody": { "content": { @@ -40057,7 +40057,7 @@ }, "/acs/entrances/list_credentials_with_access": { "get": { - "description": "Returns a list of all [credentials](/low-level-apis/access-systems/managing-credentials) with access to a specified [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Returns a list of all [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) with access to a specified [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesListCredentialsWithAccessGet", "parameters": [ { @@ -40147,7 +40147,7 @@ "x-title": "List Credentials with Access to an Entrance" }, "post": { - "description": "Returns a list of all [credentials](/low-level-apis/access-systems/managing-credentials) with access to a specified [entrance](/low-level-apis/access-systems/retrieving-entrance-details).", + "description": "Returns a list of all [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) with access to a specified [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).", "operationId": "acsEntrancesListCredentialsWithAccessPost", "requestBody": { "content": { @@ -40270,7 +40270,7 @@ }, "/acs/entrances/unlock": { "post": { - "description": "Remotely unlocks a specified [entrance](/low-level-apis/access-systems/retrieving-entrance-details) using a cloud_key credential. Returns an action attempt that tracks the progress of the unlock operation.", + "description": "Remotely unlocks a specified [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) using a cloud_key credential. Returns an action attempt that tracks the progress of the unlock operation.", "operationId": "acsEntrancesUnlockPost", "requestBody": { "content": { @@ -40399,7 +40399,7 @@ }, "/acs/systems/get": { "get": { - "description": "Returns a specified [access system](/low-level-apis/access-systems).", + "description": "Returns a specified [access system](https://docs.seam.co/low-level-apis/access-systems).", "operationId": "acsSystemsGetGet", "parameters": [ { @@ -40468,7 +40468,7 @@ "x-title": "Get an ACS System" }, "post": { - "description": "Returns a specified [access system](/low-level-apis/access-systems).", + "description": "Returns a specified [access system](https://docs.seam.co/low-level-apis/access-systems).", "operationId": "acsSystemsGetPost", "requestBody": { "content": { @@ -40575,7 +40575,7 @@ }, "/acs/systems/list": { "get": { - "description": "Returns a list of all [access systems](/low-level-apis/access-systems).\n\nTo filter the list of returned access systems by a specific connected account ID, include the `connected_account_id` in the request body. If you omit the `connected_account_id` parameter, the response includes all access systems connected to your workspace.", + "description": "Returns a list of all [access systems](https://docs.seam.co/low-level-apis/access-systems).\n\nTo filter the list of returned access systems by a specific connected account ID, include the `connected_account_id` in the request body. If you omit the `connected_account_id` parameter, the response includes all access systems connected to your workspace.", "operationId": "acsSystemsListGet", "parameters": [ { @@ -40669,7 +40669,7 @@ "x-title": "List ACS Systems" }, "post": { - "description": "Returns a list of all [access systems](/low-level-apis/access-systems).\n\nTo filter the list of returned access systems by a specific connected account ID, include the `connected_account_id` in the request body. If you omit the `connected_account_id` parameter, the response includes all access systems connected to your workspace.", + "description": "Returns a list of all [access systems](https://docs.seam.co/low-level-apis/access-systems).\n\nTo filter the list of returned access systems by a specific connected account ID, include the `connected_account_id` in the request body. If you omit the `connected_account_id` parameter, the response includes all access systems connected to your workspace.", "operationId": "acsSystemsListPost", "requestBody": { "content": { @@ -40791,7 +40791,7 @@ }, "/acs/systems/list_compatible_credential_manager_acs_systems": { "get": { - "description": "Returns a list of all credential manager systems that are compatible with a specified [access system](/low-level-apis/access-systems).\n\nSpecify the access system for which you want to retrieve all compatible credential manager systems by including the corresponding `acs_system_id` in the request body.", + "description": "Returns a list of all credential manager systems that are compatible with a specified [access system](https://docs.seam.co/low-level-apis/access-systems).\n\nSpecify the access system for which you want to retrieve all compatible credential manager systems by including the corresponding `acs_system_id` in the request body.", "operationId": "acsSystemsListCompatibleCredentialManagerAcsSystemsGet", "parameters": [ { @@ -40863,7 +40863,7 @@ "x-title": "List Compatible Credential Manager ACS Systems" }, "post": { - "description": "Returns a list of all credential manager systems that are compatible with a specified [access system](/low-level-apis/access-systems).\n\nSpecify the access system for which you want to retrieve all compatible credential manager systems by including the corresponding `acs_system_id` in the request body.", + "description": "Returns a list of all credential manager systems that are compatible with a specified [access system](https://docs.seam.co/low-level-apis/access-systems).\n\nSpecify the access system for which you want to retrieve all compatible credential manager systems by including the corresponding `acs_system_id` in the request body.", "operationId": "acsSystemsListCompatibleCredentialManagerAcsSystemsPost", "requestBody": { "content": { @@ -41143,7 +41143,7 @@ }, "/acs/users/add_to_access_group": { "post": { - "description": "Adds a specified [access system user](/low-level-apis/access-systems/user-management) to a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsUsersAddToAccessGroupPost", "requestBody": { "content": { @@ -41250,7 +41250,7 @@ ] }, "put": { - "description": "Adds a specified [access system user](/low-level-apis/access-systems/user-management) to a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsUsersAddToAccessGroupPut", "requestBody": { "content": { @@ -41329,7 +41329,7 @@ }, "/acs/users/create": { "post": { - "description": "Creates a new [access system user](/low-level-apis/access-systems/user-management).", + "description": "Creates a new [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "operationId": "acsUsersCreatePost", "requestBody": { "content": { @@ -41374,7 +41374,7 @@ "x-deprecated": "use email_address." }, "email_address": { - "description": "Email address of the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "format": "email", "type": "string" }, @@ -41383,7 +41383,7 @@ "type": "string" }, "phone_number": { - "description": "Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "type": "string" }, "user_identity_id": { @@ -41487,7 +41487,7 @@ }, "/acs/users/delete": { "delete": { - "description": "Deletes a specified [access system user](/low-level-apis/access-systems/user-management) and invalidates the access system user's [credentials](/low-level-apis/access-systems/managing-credentials).", + "description": "Deletes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) and invalidates the access system user's [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "operationId": "acsUsersDeleteDelete", "parameters": [ { @@ -41568,7 +41568,7 @@ "x-title": "Delete an ACS User" }, "post": { - "description": "Deletes a specified [access system user](/low-level-apis/access-systems/user-management) and invalidates the access system user's [credentials](/low-level-apis/access-systems/managing-credentials).", + "description": "Deletes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) and invalidates the access system user's [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).", "operationId": "acsUsersDeletePost", "requestBody": { "content": { @@ -41678,7 +41678,7 @@ }, "/acs/users/get": { "get": { - "description": "Returns a specified [access system user](/low-level-apis/access-systems/user-management).", + "description": "Returns a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "operationId": "acsUsersGetGet", "parameters": [ { @@ -41764,7 +41764,7 @@ "x-title": "Get an ACS User" }, "post": { - "description": "Returns a specified [access system user](/low-level-apis/access-systems/user-management).", + "description": "Returns a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "operationId": "acsUsersGetPost", "requestBody": { "content": { @@ -41878,7 +41878,7 @@ }, "/acs/users/list": { "get": { - "description": "Returns a list of all [access system users](/low-level-apis/access-systems/user-management).", + "description": "Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management).", "operationId": "acsUsersListGet", "parameters": [ { @@ -42019,7 +42019,7 @@ "x-title": "List ACS Users" }, "post": { - "description": "Returns a list of all [access system users](/low-level-apis/access-systems/user-management).", + "description": "Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management).", "operationId": "acsUsersListPost", "requestBody": { "content": { @@ -42168,7 +42168,7 @@ }, "/acs/users/list_accessible_entrances": { "get": { - "description": "Lists the [entrances](/api/acs/entrances/object) to which a specified [access system user](/low-level-apis/access-systems/user-management) has access.", + "description": "Lists the [entrances](https://docs.seam.co/api/acs/entrances/object) to which a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) has access.", "operationId": "acsUsersListAccessibleEntrancesGet", "parameters": [ { @@ -42260,7 +42260,7 @@ "x-title": "List ACS User-Accessible Entrances" }, "post": { - "description": "Lists the [entrances](/api/acs/entrances/object) to which a specified [access system user](/low-level-apis/access-systems/user-management) has access.", + "description": "Lists the [entrances](https://docs.seam.co/api/acs/entrances/object) to which a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) has access.", "operationId": "acsUsersListAccessibleEntrancesPost", "requestBody": { "content": { @@ -42380,7 +42380,7 @@ }, "/acs/users/remove_from_access_group": { "delete": { - "description": "Removes a specified [access system user](/low-level-apis/access-systems/user-management) from a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsUsersRemoveFromAccessGroupDelete", "parameters": [ { @@ -42464,7 +42464,7 @@ "x-title": "Remove an ACS User from an Access Group" }, "post": { - "description": "Removes a specified [access system user](/low-level-apis/access-systems/user-management) from a specified [access group](/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", + "description": "Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups).", "operationId": "acsUsersRemoveFromAccessGroupPost", "requestBody": { "content": { @@ -42577,7 +42577,7 @@ }, "/acs/users/revoke_access_to_all_entrances": { "post": { - "description": "Revokes access to all [entrances](/api/acs/entrances/object) for a specified [access system user](/low-level-apis/access-systems/user-management).", + "description": "Revokes access to all [entrances](https://docs.seam.co/api/acs/entrances/object) for a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "operationId": "acsUsersRevokeAccessToAllEntrancesPost", "requestBody": { "content": { @@ -42687,7 +42687,7 @@ }, "/acs/users/suspend": { "post": { - "description": "[Suspends](/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users#suspend-an-acs-user) a specified [access system user](/low-level-apis/access-systems/user-management). Suspending an access system user revokes their access temporarily. To restore an access system user's access, you can [unsuspend](/api/acs/users/unsuspend) them.", + "description": "[Suspends](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users#suspend-an-acs-user) a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). Suspending an access system user revokes their access temporarily. To restore an access system user's access, you can [unsuspend](https://docs.seam.co/api/acs/users/unsuspend) them.", "operationId": "acsUsersSuspendPost", "requestBody": { "content": { @@ -42797,7 +42797,7 @@ }, "/acs/users/unsuspend": { "post": { - "description": "[Unsuspends](/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users#unsuspend-an-acs-user) a specified suspended [access system user](/low-level-apis/access-systems/user-management). While [suspending an access system user](/api/acs/users/suspend) revokes their access temporarily, unsuspending the access system user restores their access.", + "description": "[Unsuspends](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users#unsuspend-an-acs-user) a specified suspended [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). While [suspending an access system user](https://docs.seam.co/api/acs/users/suspend) revokes their access temporarily, unsuspending the access system user restores their access.", "operationId": "acsUsersUnsuspendPost", "requestBody": { "content": { @@ -42907,7 +42907,7 @@ }, "/acs/users/update": { "patch": { - "description": "Updates the properties of a specified [access system user](/low-level-apis/access-systems/user-management).", + "description": "Updates the properties of a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "operationId": "acsUsersUpdatePatch", "requestBody": { "content": { @@ -42952,12 +42952,12 @@ "x-deprecated": "use email_address." }, "email_address": { - "description": "Email address of the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "format": "email", "type": "string" }, "full_name": { - "description": "Full name of the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "minLength": 1, "type": "string" }, @@ -42967,7 +42967,7 @@ "type": "string" }, "phone_number": { - "description": "Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "type": "string" }, "user_identity_id": { @@ -43031,7 +43031,7 @@ "x-title": "Update an ACS User" }, "post": { - "description": "Updates the properties of a specified [access system user](/low-level-apis/access-systems/user-management).", + "description": "Updates the properties of a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "operationId": "acsUsersUpdatePost", "requestBody": { "content": { @@ -43076,12 +43076,12 @@ "x-deprecated": "use email_address." }, "email_address": { - "description": "Email address of the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "format": "email", "type": "string" }, "full_name": { - "description": "Full name of the [access system user](/low-level-apis/access-systems/user-management).", + "description": "Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).", "minLength": 1, "type": "string" }, @@ -43091,7 +43091,7 @@ "type": "string" }, "phone_number": { - "description": "Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", + "description": "Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).", "type": "string" }, "user_identity_id": { @@ -43187,7 +43187,7 @@ }, "/action_attempts/get": { "get": { - "description": "Returns a specified [action attempt](/core-concepts/action-attempts).", + "description": "Returns a specified [action attempt](https://docs.seam.co/core-concepts/action-attempts).", "operationId": "actionAttemptsGetGet", "parameters": [ { @@ -43261,7 +43261,7 @@ "x-title": "Get an Action Attempt" }, "post": { - "description": "Returns a specified [action attempt](/core-concepts/action-attempts).", + "description": "Returns a specified [action attempt](https://docs.seam.co/core-concepts/action-attempts).", "operationId": "actionAttemptsGetPost", "requestBody": { "content": { @@ -43374,7 +43374,7 @@ }, "/action_attempts/list": { "get": { - "description": "Returns a list of the [action attempts](/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s.", + "description": "Returns a list of the [action attempts](https://docs.seam.co/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s.", "operationId": "actionAttemptsListGet", "parameters": [ { @@ -43480,7 +43480,7 @@ "x-title": "List Action Attempts" }, "post": { - "description": "Returns a list of the [action attempts](/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s.", + "description": "Returns a list of the [action attempts](https://docs.seam.co/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s.", "operationId": "actionAttemptsListPost", "requestBody": { "content": { @@ -43611,7 +43611,7 @@ }, "/client_sessions/create": { "post": { - "description": "Creates a new [client session](/core-concepts/authentication/client-session-tokens).", + "description": "Creates a new [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsCreatePost", "requestBody": { "content": { @@ -43619,14 +43619,14 @@ "schema": { "properties": { "connect_webview_ids": { - "description": "IDs of the [Connect Webviews](/core-concepts/connect-webviews) for which you want to create a client session.", + "description": "IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) for which you want to create a client session.", "items": { "type": "string" }, "type": "array" }, "connected_account_ids": { - "description": "IDs of the [connected accounts](/core-concepts/connected-accounts) for which you want to create a client session.", + "description": "IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) for which you want to create a client session.", "items": { "type": "string" }, @@ -43652,13 +43652,13 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to create a client session.", + "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to create a client session.", "format": "uuid", "type": "string" }, "user_identity_ids": { "deprecated": true, - "description": "IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "items": { "format": "uuid", "type": "string" @@ -43761,7 +43761,7 @@ ] }, "put": { - "description": "Creates a new [client session](/core-concepts/authentication/client-session-tokens).", + "description": "Creates a new [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsCreatePut", "requestBody": { "content": { @@ -43769,14 +43769,14 @@ "schema": { "properties": { "connect_webview_ids": { - "description": "IDs of the [Connect Webviews](/core-concepts/connect-webviews) for which you want to create a client session.", + "description": "IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) for which you want to create a client session.", "items": { "type": "string" }, "type": "array" }, "connected_account_ids": { - "description": "IDs of the [connected accounts](/core-concepts/connected-accounts) for which you want to create a client session.", + "description": "IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) for which you want to create a client session.", "items": { "type": "string" }, @@ -43802,13 +43802,13 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to create a client session.", + "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to create a client session.", "format": "uuid", "type": "string" }, "user_identity_ids": { "deprecated": true, - "description": "IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "items": { "format": "uuid", "type": "string" @@ -43883,7 +43883,7 @@ }, "/client_sessions/delete": { "delete": { - "description": "Deletes a [client session](/core-concepts/authentication/client-session-tokens).", + "description": "Deletes a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsDeleteDelete", "parameters": [ { @@ -43946,7 +43946,7 @@ "x-title": "Delete a Client Session" }, "post": { - "description": "Deletes a [client session](/core-concepts/authentication/client-session-tokens).", + "description": "Deletes a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsDeletePost", "requestBody": { "content": { @@ -44049,7 +44049,7 @@ }, "/client_sessions/get": { "get": { - "description": "Returns a specified [client session](/core-concepts/authentication/client-session-tokens).", + "description": "Returns a specified [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsGetGet", "parameters": [ { @@ -44127,7 +44127,7 @@ "x-title": "Get a Client Session" }, "post": { - "description": "Returns a specified [client session](/core-concepts/authentication/client-session-tokens).", + "description": "Returns a specified [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsGetPost", "requestBody": { "content": { @@ -44238,7 +44238,7 @@ }, "/client_sessions/get_or_create": { "post": { - "description": "Returns a [client session](/core-concepts/authentication/client-session-tokens) with specific characteristics or creates a new client session with these characteristics if it does not yet exist.", + "description": "Returns a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) with specific characteristics or creates a new client session with these characteristics if it does not yet exist.", "operationId": "clientSessionsGetOrCreatePost", "requestBody": { "content": { @@ -44246,14 +44246,14 @@ "schema": { "properties": { "connect_webview_ids": { - "description": "IDs of the [Connect Webviews](/core-concepts/connect-webviews) that you want to associate with the client session (or that are already associated with the existing client session).", + "description": "IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) that you want to associate with the client session (or that are already associated with the existing client session).", "items": { "type": "string" }, "type": "array" }, "connected_account_ids": { - "description": "IDs of the [connected accounts](/api/connected_accounts/object) that you want to associate with the client session (or that are already associated with the existing client session).", + "description": "IDs of the [connected accounts](https://docs.seam.co/api/connected_accounts/object) that you want to associate with the client session (or that are already associated with the existing client session).", "items": { "type": "string" }, @@ -44270,13 +44270,13 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session (or that are already associated with the existing client session).", + "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session (or that are already associated with the existing client session).", "format": "uuid", "type": "string" }, "user_identity_ids": { "deprecated": true, - "description": "IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "items": { "format": "uuid", "type": "string" @@ -44381,7 +44381,7 @@ }, "/client_sessions/grant_access": { "patch": { - "description": "Grants a [client session](/core-concepts/authentication/client-session-tokens) access to one or more resources, such as [Connect Webviews](/core-concepts/connect-webviews), [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity), and so on.", + "description": "Grants a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) access to one or more resources, such as [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews), [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity), and so on.", "operationId": "clientSessionsGrantAccessPatch", "requestBody": { "content": { @@ -44393,14 +44393,14 @@ "type": "string" }, "connect_webview_ids": { - "description": "IDs of the [Connect Webviews](/core-concepts/connect-webviews) that you want to associate with the client session.", + "description": "IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) that you want to associate with the client session.", "items": { "type": "string" }, "type": "array" }, "connected_account_ids": { - "description": "IDs of the [connected accounts](/core-concepts/connected-accounts) that you want to associate with the client session.", + "description": "IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) that you want to associate with the client session.", "items": { "type": "string" }, @@ -44411,12 +44411,12 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "type": "string" }, "user_identity_ids": { "deprecated": true, - "description": "IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "items": { "type": "string" }, @@ -44484,7 +44484,7 @@ "x-title": "Grant Access to a Client Session" }, "post": { - "description": "Grants a [client session](/core-concepts/authentication/client-session-tokens) access to one or more resources, such as [Connect Webviews](/core-concepts/connect-webviews), [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity), and so on.", + "description": "Grants a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) access to one or more resources, such as [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews), [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity), and so on.", "operationId": "clientSessionsGrantAccessPost", "requestBody": { "content": { @@ -44496,14 +44496,14 @@ "type": "string" }, "connect_webview_ids": { - "description": "IDs of the [Connect Webviews](/core-concepts/connect-webviews) that you want to associate with the client session.", + "description": "IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) that you want to associate with the client session.", "items": { "type": "string" }, "type": "array" }, "connected_account_ids": { - "description": "IDs of the [connected accounts](/core-concepts/connected-accounts) that you want to associate with the client session.", + "description": "IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) that you want to associate with the client session.", "items": { "type": "string" }, @@ -44514,12 +44514,12 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "type": "string" }, "user_identity_ids": { "deprecated": true, - "description": "IDs of the [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", + "description": "IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session.", "items": { "type": "string" }, @@ -44620,7 +44620,7 @@ }, "/client_sessions/list": { "get": { - "description": "Returns a list of all [client sessions](/core-concepts/authentication/client-session-tokens).", + "description": "Returns a list of all [client sessions](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsListGet", "parameters": [ { @@ -44643,7 +44643,7 @@ "in": "query", "name": "connect_webview_id", "schema": { - "description": "ID of the [Connect Webview](/core-concepts/connect-webviews) for which you want to retrieve client sessions.", + "description": "ID of the [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) for which you want to retrieve client sessions.", "type": "string" } }, @@ -44659,7 +44659,7 @@ "in": "query", "name": "user_identity_id", "schema": { - "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to retrieve client sessions.", + "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to retrieve client sessions.", "type": "string" } } @@ -44721,7 +44721,7 @@ "x-title": "List Client Sessions" }, "post": { - "description": "Returns a list of all [client sessions](/core-concepts/authentication/client-session-tokens).", + "description": "Returns a list of all [client sessions](https://docs.seam.co/core-concepts/authentication/client-session-tokens).", "operationId": "clientSessionsListPost", "requestBody": { "content": { @@ -44733,7 +44733,7 @@ "type": "string" }, "connect_webview_id": { - "description": "ID of the [Connect Webview](/core-concepts/connect-webviews) for which you want to retrieve client sessions.", + "description": "ID of the [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) for which you want to retrieve client sessions.", "type": "string" }, "user_identifier_key": { @@ -44741,7 +44741,7 @@ "type": "string" }, "user_identity_id": { - "description": "ID of the [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to retrieve client sessions.", + "description": "ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to retrieve client sessions.", "type": "string" }, "without_user_identifier_key": { @@ -44843,7 +44843,7 @@ }, "/client_sessions/revoke": { "post": { - "description": "Revokes a [client session](/core-concepts/authentication/client-session-tokens).\n\nNote that [deleting a client session](/api/client_sessions/delete) is a separate action.", + "description": "Revokes a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens).\n\nNote that [deleting a client session](https://docs.seam.co/api/client_sessions/delete) is a separate action.", "operationId": "clientSessionsRevokePost", "requestBody": { "content": { @@ -44946,7 +44946,7 @@ }, "/connect_webviews/create": { "post": { - "description": "Creates a new [Connect Webview](/core-concepts/connect-webviews).\n\nTo enable a user to connect their devices or systems to Seam, they must sign in to their device or system account. To enable a user to sign in, you create a `connect_webview`. After creating the Connect Webview, you receive a URL that you can use to display the visual component of this Connect Webview for your user. You can open an iframe or new window to display the Connect Webview.\n\nYou should make a new `connect_webview` for each unique login request. Each `connect_webview` tracks the user that signed in with it. You receive an error if you reuse a Connect Webview for the same user twice or if you use the same Connect Webview for multiple users.\n\nSee also: [Connect Webview Process](/core-concepts/connect-webviews/connect-webview-process).", + "description": "Creates a new [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews).\n\nTo enable a user to connect their devices or systems to Seam, they must sign in to their device or system account. To enable a user to sign in, you create a `connect_webview`. After creating the Connect Webview, you receive a URL that you can use to display the visual component of this Connect Webview for your user. You can open an iframe or new window to display the Connect Webview.\n\nYou should make a new `connect_webview` for each unique login request. Each `connect_webview` tracks the user that signed in with it. You receive an error if you reuse a Connect Webview for the same user twice or if you use the same Connect Webview for multiple users.\n\nSee also: [Connect Webview Process](https://docs.seam.co/core-concepts/connect-webviews/connect-webview-process).", "operationId": "connectWebviewsCreatePost", "requestBody": { "content": { @@ -44969,7 +44969,7 @@ "type": "array" }, "accepted_providers": { - "description": "Accepted device provider keys as an alternative to `provider_category`. Use this parameter to specify accepted providers explicitly. See [Customize the Brands to Display in Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). To list all provider keys, use [`/devices/list_device_providers`](/api/devices/list_device_providers) with no filters.", + "description": "Accepted device provider keys as an alternative to `provider_category`. Use this parameter to specify accepted providers explicitly. See [Customize the Brands to Display in Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). To list all provider keys, use [`/devices/list_device_providers`](https://docs.seam.co/api/devices/list_device_providers) with no filters.", "items": { "enum": [ "hotek", @@ -45042,7 +45042,7 @@ "type": "array" }, "automatically_manage_new_devices": { - "description": "Indicates whether newly-added devices should appear as [managed devices](/core-concepts/devices/managed-and-unmanaged-devices). See also: [Customize the Behavior Settings of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews).", + "description": "Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). See also: [Customize the Behavior Settings of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews).", "type": "boolean" }, "custom_metadata": { @@ -45058,7 +45058,7 @@ } ] }, - "description": "Custom metadata that you want to associate with the Connect Webview. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a Connect Webview](/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview) enables you to store custom information, like customer details or internal IDs from your application. The custom metadata is then transferred to any [connected accounts](/core-concepts/connected-accounts) that were connected using the Connect Webview, making it easy to find and filter these resources in your [workspace](/core-concepts/workspaces). You can also [filter Connect Webviews by custom metadata](/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata).", + "description": "Custom metadata that you want to associate with the Connect Webview. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview) enables you to store custom information, like customer details or internal IDs from your application. The custom metadata is then transferred to any [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) that were connected using the Connect Webview, making it easy to find and filter these resources in your [workspace](https://docs.seam.co/core-concepts/workspaces). You can also [filter Connect Webviews by custom metadata](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata).", "type": "object" }, "custom_redirect_failure_url": { @@ -45091,7 +45091,7 @@ "type": "array" }, "provider_category": { - "description": "Specifies the category of providers that you want to include. To list all providers within a category, use [`/devices/list_device_providers`](/api/devices/list_device_providers) with the desired `provider_category` filter.", + "description": "Specifies the category of providers that you want to include. To list all providers within a category, use [`/devices/list_device_providers`](https://docs.seam.co/api/devices/list_device_providers) with the desired `provider_category` filter.", "enum": [ "stable", "consumer_smartlocks", @@ -45107,7 +45107,7 @@ }, "wait_for_device_creation": { "default": false, - "description": "Indicates whether Seam should finish syncing all devices in a newly-connected account before completing the associated Connect Webview. See also: [Customize the Behavior Settings of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews).", + "description": "Indicates whether Seam should finish syncing all devices in a newly-connected account before completing the associated Connect Webview. See also: [Customize the Behavior Settings of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews).", "type": "boolean" } }, @@ -45208,7 +45208,7 @@ }, "/connect_webviews/delete": { "delete": { - "description": "Deletes a [Connect Webview](/core-concepts/connect-webviews).\n\nYou do not need to delete a Connect Webview once a user completes it. Instead, you can simply ignore completed Connect Webviews.", + "description": "Deletes a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews).\n\nYou do not need to delete a Connect Webview once a user completes it. Instead, you can simply ignore completed Connect Webviews.", "operationId": "connectWebviewsDeleteDelete", "requestBody": { "content": { @@ -45278,7 +45278,7 @@ "x-title": "Delete a Connect Webview" }, "post": { - "description": "Deletes a [Connect Webview](/core-concepts/connect-webviews).\n\nYou do not need to delete a Connect Webview once a user completes it. Instead, you can simply ignore completed Connect Webviews.", + "description": "Deletes a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews).\n\nYou do not need to delete a Connect Webview once a user completes it. Instead, you can simply ignore completed Connect Webviews.", "operationId": "connectWebviewsDeletePost", "requestBody": { "content": { @@ -45381,7 +45381,7 @@ }, "/connect_webviews/get": { "get": { - "description": "Returns a specified [Connect Webview](/core-concepts/connect-webviews).\n\nUnless you're using a `custom_redirect_url`, you should poll a newly-created `connect_webview` to find out if the user has signed in or to get details about what devices they've connected.", + "description": "Returns a specified [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews).\n\nUnless you're using a `custom_redirect_url`, you should poll a newly-created `connect_webview` to find out if the user has signed in or to get details about what devices they've connected.", "operationId": "connectWebviewsGetGet", "parameters": [ { @@ -45455,7 +45455,7 @@ "x-title": "Get a Connect Webview" }, "post": { - "description": "Returns a specified [Connect Webview](/core-concepts/connect-webviews).\n\nUnless you're using a `custom_redirect_url`, you should poll a newly-created `connect_webview` to find out if the user has signed in or to get details about what devices they've connected.", + "description": "Returns a specified [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews).\n\nUnless you're using a `custom_redirect_url`, you should poll a newly-created `connect_webview` to find out if the user has signed in or to get details about what devices they've connected.", "operationId": "connectWebviewsGetPost", "requestBody": { "content": { @@ -45568,7 +45568,7 @@ }, "/connect_webviews/list": { "get": { - "description": "Returns a list of all [Connect Webviews](/core-concepts/connect-webviews).", + "description": "Returns a list of all [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews).", "operationId": "connectWebviewsListGet", "parameters": [ { @@ -45601,7 +45601,7 @@ } ] }, - "description": "Custom metadata pairs by which you want to [filter Connect Webviews](/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Returns Connect Webviews with `custom_metadata` that contains all of the provided key:value pairs.", + "description": "Custom metadata pairs by which you want to [filter Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Returns Connect Webviews with `custom_metadata` that contains all of the provided key:value pairs.", "type": "object" } }, @@ -45701,7 +45701,7 @@ "x-title": "List Connect Webviews" }, "post": { - "description": "Returns a list of all [Connect Webviews](/core-concepts/connect-webviews).", + "description": "Returns a list of all [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews).", "operationId": "connectWebviewsListPost", "requestBody": { "content": { @@ -45719,7 +45719,7 @@ } ] }, - "description": "Custom metadata pairs by which you want to [filter Connect Webviews](/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Returns Connect Webviews with `custom_metadata` that contains all of the provided key:value pairs.", + "description": "Custom metadata pairs by which you want to [filter Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Returns Connect Webviews with `custom_metadata` that contains all of the provided key:value pairs.", "type": "object" }, "customer_key": { @@ -45851,7 +45851,7 @@ }, "/connected_accounts/delete": { "delete": { - "description": "Deletes a specified [connected account](/core-concepts/connected-accounts).\n\nDeleting a connected account triggers a `connected_account.deleted` event and removes the connected account and all data associated with the connected account from Seam, including devices, events, access codes, and so on. For every deleted resource, Seam sends a corresponding deleted event, but the resource is not deleted from the provider.\n\nFor example, if you delete a connected account with a device that has an access code, Seam sends a `connected_account.deleted` event, a `device.deleted` event, and an `access_code.deleted` event, but Seam does not remove the access code from the device.", + "description": "Deletes a specified [connected account](https://docs.seam.co/core-concepts/connected-accounts).\n\nDeleting a connected account triggers a `connected_account.deleted` event and removes the connected account and all data associated with the connected account from Seam, including devices, events, access codes, and so on. For every deleted resource, Seam sends a corresponding deleted event, but the resource is not deleted from the provider.\n\nFor example, if you delete a connected account with a device that has an access code, Seam sends a `connected_account.deleted` event, a `device.deleted` event, and an `access_code.deleted` event, but Seam does not remove the access code from the device.", "operationId": "connectedAccountsDeleteDelete", "requestBody": { "content": { @@ -45929,7 +45929,7 @@ "x-title": "Delete a Connected Account" }, "post": { - "description": "Deletes a specified [connected account](/core-concepts/connected-accounts).\n\nDeleting a connected account triggers a `connected_account.deleted` event and removes the connected account and all data associated with the connected account from Seam, including devices, events, access codes, and so on. For every deleted resource, Seam sends a corresponding deleted event, but the resource is not deleted from the provider.\n\nFor example, if you delete a connected account with a device that has an access code, Seam sends a `connected_account.deleted` event, a `device.deleted` event, and an `access_code.deleted` event, but Seam does not remove the access code from the device.", + "description": "Deletes a specified [connected account](https://docs.seam.co/core-concepts/connected-accounts).\n\nDeleting a connected account triggers a `connected_account.deleted` event and removes the connected account and all data associated with the connected account from Seam, including devices, events, access codes, and so on. For every deleted resource, Seam sends a corresponding deleted event, but the resource is not deleted from the provider.\n\nFor example, if you delete a connected account with a device that has an access code, Seam sends a `connected_account.deleted` event, a `device.deleted` event, and an `access_code.deleted` event, but Seam does not remove the access code from the device.", "operationId": "connectedAccountsDeletePost", "requestBody": { "content": { @@ -46040,7 +46040,7 @@ }, "/connected_accounts/get": { "get": { - "description": "Returns a specified [connected account](/core-concepts/connected-accounts).", + "description": "Returns a specified [connected account](https://docs.seam.co/core-concepts/connected-accounts).", "operationId": "connectedAccountsGetGet", "responses": { "200": { @@ -46102,7 +46102,7 @@ "x-title": "Get a Connected Account" }, "post": { - "description": "Returns a specified [connected account](/core-concepts/connected-accounts).", + "description": "Returns a specified [connected account](https://docs.seam.co/core-concepts/connected-accounts).", "operationId": "connectedAccountsGetPost", "requestBody": { "content": { @@ -46232,7 +46232,7 @@ }, "/connected_accounts/list": { "get": { - "description": "Returns a list of all [connected accounts](/core-concepts/connected-accounts).", + "description": "Returns a list of all [connected accounts](https://docs.seam.co/core-concepts/connected-accounts).", "operationId": "connectedAccountsListGet", "parameters": [ { @@ -46372,7 +46372,7 @@ "x-title": "List Connected Accounts" }, "post": { - "description": "Returns a list of all [connected accounts](/core-concepts/connected-accounts).", + "description": "Returns a list of all [connected accounts](https://docs.seam.co/core-concepts/connected-accounts).", "operationId": "connectedAccountsListPost", "requestBody": { "content": { @@ -46525,7 +46525,7 @@ }, "/connected_accounts/simulate/disconnect": { "post": { - "description": "Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", "operationId": "connectedAccountsSimulateDisconnectPost", "requestBody": { "content": { @@ -46599,7 +46599,7 @@ }, "/connected_accounts/sync": { "post": { - "description": "Request a [connected account](/core-concepts/connected-accounts) sync attempt for the specified `connected_account_id`.", + "description": "Request a [connected account](https://docs.seam.co/core-concepts/connected-accounts) sync attempt for the specified `connected_account_id`.", "operationId": "connectedAccountsSyncPost", "requestBody": { "content": { @@ -46702,7 +46702,7 @@ }, "/connected_accounts/update": { "patch": { - "description": "Updates a [connected account](/core-concepts/connected-accounts).", + "description": "Updates a [connected account](https://docs.seam.co/core-concepts/connected-accounts).", "operationId": "connectedAccountsUpdatePatch", "requestBody": { "content": { @@ -46725,7 +46725,7 @@ "type": "array" }, "automatically_manage_new_devices": { - "description": "Indicates whether newly-added devices should appear as [managed devices](/core-concepts/devices/managed-and-unmanaged-devices).", + "description": "Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).", "type": "boolean" }, "connected_account_id": { @@ -46746,7 +46746,7 @@ } ] }, - "description": "Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata).", + "description": "Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](https://docs.seam.co/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata).", "type": "object" }, "customer_key": { @@ -46822,7 +46822,7 @@ "x-title": "Update a Connected Account" }, "post": { - "description": "Updates a [connected account](/core-concepts/connected-accounts).", + "description": "Updates a [connected account](https://docs.seam.co/core-concepts/connected-accounts).", "operationId": "connectedAccountsUpdatePost", "requestBody": { "content": { @@ -46845,7 +46845,7 @@ "type": "array" }, "automatically_manage_new_devices": { - "description": "Indicates whether newly-added devices should appear as [managed devices](/core-concepts/devices/managed-and-unmanaged-devices).", + "description": "Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).", "type": "boolean" }, "connected_account_id": { @@ -46866,7 +46866,7 @@ } ] }, - "description": "Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata).", + "description": "Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](https://docs.seam.co/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata).", "type": "object" }, "customer_key": { @@ -49856,7 +49856,7 @@ }, "/devices/get": { "get": { - "description": "Returns a specified [device](/core-concepts/devices).\n\nYou must specify either `device_id` or `name`.", + "description": "Returns a specified [device](https://docs.seam.co/core-concepts/devices).\n\nYou must specify either `device_id` or `name`.", "operationId": "devicesGetGet", "parameters": [ { @@ -49937,7 +49937,7 @@ "x-title": "Get a Device" }, "post": { - "description": "Returns a specified [device](/core-concepts/devices).\n\nYou must specify either `device_id` or `name`.", + "description": "Returns a specified [device](https://docs.seam.co/core-concepts/devices).\n\nYou must specify either `device_id` or `name`.", "operationId": "devicesGetPost", "requestBody": { "content": { @@ -50051,7 +50051,7 @@ }, "/devices/list": { "get": { - "description": "Returns a list of all [devices](/core-concepts/devices).", + "description": "Returns a list of all [devices](https://docs.seam.co/core-concepts/devices).", "operationId": "devicesListGet", "parameters": [ { @@ -50377,7 +50377,7 @@ } ] }, - "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" } }, @@ -50553,7 +50553,7 @@ "x-title": "List Devices" }, "post": { - "description": "Returns a list of all [devices](/core-concepts/devices).", + "description": "Returns a list of all [devices](https://docs.seam.co/core-concepts/devices).", "operationId": "devicesListPost", "requestBody": { "content": { @@ -50594,7 +50594,7 @@ } ] }, - "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" }, "customer_key": { @@ -51024,7 +51024,7 @@ }, "/devices/list_device_providers": { "get": { - "description": "Returns a list of all device providers.\n\nThe information that this endpoint returns for each provider includes a set of [capability flags](/capability-guides/device-and-system-capabilities#capability-flags), such as `device_provider.can_remotely_unlock`. If at least one supported device from a provider has a specific capability, the corresponding capability flag is `true`.\n\nWhen you create a [Connect Webview](/core-concepts/connect-webviews), you can customize the providers—that is, the brands—that it displays. In the `/connect_webviews/create` request, include the desired set of device provider keys in the `accepted_providers` parameter. See also [Customize the Brands to Display in Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", + "description": "Returns a list of all device providers.\n\nThe information that this endpoint returns for each provider includes a set of [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags), such as `device_provider.can_remotely_unlock`. If at least one supported device from a provider has a specific capability, the corresponding capability flag is `true`.\n\nWhen you create a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews), you can customize the providers—that is, the brands—that it displays. In the `/connect_webviews/create` request, include the desired set of device provider keys in the `accepted_providers` parameter. See also [Customize the Brands to Display in Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", "operationId": "devicesListDeviceProvidersGet", "parameters": [ { @@ -51106,7 +51106,7 @@ "x-title": "List Device Providers" }, "post": { - "description": "Returns a list of all device providers.\n\nThe information that this endpoint returns for each provider includes a set of [capability flags](/capability-guides/device-and-system-capabilities#capability-flags), such as `device_provider.can_remotely_unlock`. If at least one supported device from a provider has a specific capability, the corresponding capability flag is `true`.\n\nWhen you create a [Connect Webview](/core-concepts/connect-webviews), you can customize the providers—that is, the brands—that it displays. In the `/connect_webviews/create` request, include the desired set of device provider keys in the `accepted_providers` parameter. See also [Customize the Brands to Display in Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", + "description": "Returns a list of all device providers.\n\nThe information that this endpoint returns for each provider includes a set of [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags), such as `device_provider.can_remotely_unlock`. If at least one supported device from a provider has a specific capability, the corresponding capability flag is `true`.\n\nWhen you create a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews), you can customize the providers—that is, the brands—that it displays. In the `/connect_webviews/create` request, include the desired set of device provider keys in the `accepted_providers` parameter. See also [Customize the Brands to Display in Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews).", "operationId": "devicesListDeviceProvidersPost", "requestBody": { "content": { @@ -52641,7 +52641,7 @@ }, "/devices/simulate/connect": { "post": { - "description": "Simulates connecting a device to Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal).", + "description": "Simulates connecting a device to Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal).", "operationId": "devicesSimulateConnectPost", "requestBody": { "content": { @@ -52853,7 +52853,7 @@ }, "/devices/simulate/disconnect": { "post": { - "description": "Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal).", + "description": "Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal).", "operationId": "devicesSimulateDisconnectPost", "requestBody": { "content": { @@ -53142,7 +53142,7 @@ }, "/devices/simulate/remove": { "post": { - "description": "Simulates removing a device from Seam. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal).", + "description": "Simulates removing a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal).", "operationId": "devicesSimulateRemovePost", "requestBody": { "content": { @@ -53248,7 +53248,7 @@ }, "/devices/unmanaged/get": { "get": { - "description": "Returns a specified [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).\n\nYou must specify either `device_id` or `name`.", + "description": "Returns a specified [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).\n\nYou must specify either `device_id` or `name`.", "operationId": "devicesUnmanagedGetGet", "parameters": [ { @@ -53327,7 +53327,7 @@ "x-title": "Get an Unmanaged Device" }, "post": { - "description": "Returns a specified [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).\n\nYou must specify either `device_id` or `name`.", + "description": "Returns a specified [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).\n\nYou must specify either `device_id` or `name`.", "operationId": "devicesUnmanagedGetPost", "requestBody": { "content": { @@ -53438,7 +53438,7 @@ }, "/devices/unmanaged/list": { "get": { - "description": "Returns a list of all [unmanaged devices](/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", + "description": "Returns a list of all [unmanaged devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", "operationId": "devicesUnmanagedListGet", "parameters": [ { @@ -53754,7 +53754,7 @@ } ] }, - "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" } }, @@ -53938,7 +53938,7 @@ "x-title": "List Unmanaged Devices" }, "post": { - "description": "Returns a list of all [unmanaged devices](/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", + "description": "Returns a list of all [unmanaged devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", "operationId": "devicesUnmanagedListPost", "requestBody": { "content": { @@ -53979,7 +53979,7 @@ } ] }, - "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" }, "customer_key": { @@ -54406,7 +54406,7 @@ }, "/devices/unmanaged/update": { "patch": { - "description": "Updates a specified [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices). To convert an unmanaged device to managed, set `is_managed` to `true`.\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", + "description": "Updates a specified [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). To convert an unmanaged device to managed, set `is_managed` to `true`.\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", "operationId": "devicesUnmanagedUpdatePatch", "requestBody": { "content": { @@ -54500,7 +54500,7 @@ "x-title": "Update an Unmanaged Device" }, "post": { - "description": "Updates a specified [unmanaged device](/core-concepts/devices/managed-and-unmanaged-devices). To convert an unmanaged device to managed, set `is_managed` to `true`.\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", + "description": "Updates a specified [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). To convert an unmanaged device to managed, set `is_managed` to `true`.\n\nAn unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).", "operationId": "devicesUnmanagedUpdatePost", "requestBody": { "content": { @@ -54626,7 +54626,7 @@ }, "/devices/update": { "patch": { - "description": "Updates a specified [device](/core-concepts/devices).\n\nYou can add or change [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) for a device, change the device's name, or [convert a managed device to unmanaged](/core-concepts/devices/managed-and-unmanaged-devices).", + "description": "Updates a specified [device](https://docs.seam.co/core-concepts/devices).\n\nYou can add or change [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) for a device, change the device's name, or [convert a managed device to unmanaged](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).", "operationId": "devicesUpdatePatch", "requestBody": { "content": { @@ -54646,7 +54646,7 @@ } ] }, - "description": "Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a device](/core-concepts/devices/adding-custom-metadata-to-a-device) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter devices by the desired metadata](/core-concepts/devices/filtering-devices-by-custom-metadata).", + "description": "Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter devices by the desired metadata](https://docs.seam.co/core-concepts/devices/filtering-devices-by-custom-metadata).", "type": "object" }, "device_id": { @@ -54738,7 +54738,7 @@ "x-title": "Update a Device" }, "post": { - "description": "Updates a specified [device](/core-concepts/devices).\n\nYou can add or change [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) for a device, change the device's name, or [convert a managed device to unmanaged](/core-concepts/devices/managed-and-unmanaged-devices).", + "description": "Updates a specified [device](https://docs.seam.co/core-concepts/devices).\n\nYou can add or change [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) for a device, change the device's name, or [convert a managed device to unmanaged](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).", "operationId": "devicesUpdatePost", "requestBody": { "content": { @@ -54758,7 +54758,7 @@ } ] }, - "description": "Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a device](/core-concepts/devices/adding-custom-metadata-to-a-device) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter devices by the desired metadata](/core-concepts/devices/filtering-devices-by-custom-metadata).", + "description": "Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter devices by the desired metadata](https://docs.seam.co/core-concepts/devices/filtering-devices-by-custom-metadata).", "type": "object" }, "device_id": { @@ -54883,7 +54883,7 @@ }, "/events/get": { "get": { - "description": "Returns a specified event. This endpoint returns the same event that would be sent to a [webhook](/developer-tools/webhooks), but it enables you to retrieve an event that already took place.", + "description": "Returns a specified event. This endpoint returns the same event that would be sent to a [webhook](https://docs.seam.co/developer-tools/webhooks), but it enables you to retrieve an event that already took place.", "operationId": "eventsGetGet", "parameters": [ { @@ -54975,7 +54975,7 @@ "x-title": "Get an Event" }, "post": { - "description": "Returns a specified event. This endpoint returns the same event that would be sent to a [webhook](/developer-tools/webhooks), but it enables you to retrieve an event that already took place.", + "description": "Returns a specified event. This endpoint returns the same event that would be sent to a [webhook](https://docs.seam.co/developer-tools/webhooks), but it enables you to retrieve an event that already took place.", "operationId": "eventsGetPost", "requestBody": { "content": { @@ -55096,7 +55096,7 @@ }, "/events/list": { "get": { - "description": "Returns a list of all events. This endpoint returns the same events that would be sent to a [webhook](/developer-tools/webhooks), but it enables you to filter or see events that already took place.", + "description": "Returns a list of all events. This endpoint returns the same events that would be sent to a [webhook](https://docs.seam.co/developer-tools/webhooks), but it enables you to filter or see events that already took place.", "operationId": "eventsListGet", "parameters": [ { @@ -55669,7 +55669,7 @@ "x-title": "List Events" }, "post": { - "description": "Returns a list of all events. This endpoint returns the same events that would be sent to a [webhook](/developer-tools/webhooks), but it enables you to filter or see events that already took place.", + "description": "Returns a list of all events. This endpoint returns the same events that would be sent to a [webhook](https://docs.seam.co/developer-tools/webhooks), but it enables you to filter or see events that already took place.", "operationId": "eventsListPost", "requestBody": { "content": { @@ -56171,7 +56171,7 @@ }, "/instant_keys/delete": { "delete": { - "description": "Deletes a specified [Instant Key](/capability-guides/instant-keys).", + "description": "Deletes a specified [Instant Key](https://docs.seam.co/capability-guides/instant-keys).", "operationId": "instantKeysDeleteDelete", "parameters": [ { @@ -56232,7 +56232,7 @@ "x-title": "Delete an Instant Key" }, "post": { - "description": "Deletes a specified [Instant Key](/capability-guides/instant-keys).", + "description": "Deletes a specified [Instant Key](https://docs.seam.co/capability-guides/instant-keys).", "operationId": "instantKeysDeletePost", "requestBody": { "content": { @@ -56301,7 +56301,7 @@ }, "/instant_keys/get": { "get": { - "description": "Gets an [instant key](/capability-guides/instant-keys).", + "description": "Gets an [instant key](https://docs.seam.co/capability-guides/instant-keys).", "operationId": "instantKeysGetGet", "parameters": [ { @@ -56375,7 +56375,7 @@ "x-title": "Get an Instant Key" }, "post": { - "description": "Gets an [instant key](/capability-guides/instant-keys).", + "description": "Gets an [instant key](https://docs.seam.co/capability-guides/instant-keys).", "operationId": "instantKeysGetPost", "requestBody": { "content": { @@ -56450,7 +56450,7 @@ }, "/instant_keys/list": { "get": { - "description": "Returns a list of all [instant keys](/capability-guides/instant-keys).", + "description": "Returns a list of all [instant keys](https://docs.seam.co/capability-guides/instant-keys).", "operationId": "instantKeysListGet", "parameters": [ { @@ -56518,7 +56518,7 @@ "x-title": "List Instant Keys" }, "post": { - "description": "Returns a list of all [instant keys](/capability-guides/instant-keys).", + "description": "Returns a list of all [instant keys](https://docs.seam.co/capability-guides/instant-keys).", "operationId": "instantKeysListPost", "requestBody": { "content": { @@ -56591,7 +56591,7 @@ }, "/locks/configure_auto_lock": { "post": { - "description": "Configures the auto-lock setting for a specified [lock](/low-level-apis/smart-locks).", + "description": "Configures the auto-lock setting for a specified [lock](https://docs.seam.co/low-level-apis/smart-locks).", "operationId": "locksConfigureAutoLockPost", "requestBody": { "content": { @@ -56729,7 +56729,7 @@ }, "/locks/get": { "get": { - "description": "Returns a specified [lock](/low-level-apis/smart-locks).", + "description": "Returns a specified [lock](https://docs.seam.co/low-level-apis/smart-locks).", "operationId": "locksGetGet", "parameters": [ { @@ -56812,7 +56812,7 @@ "x-title": "Get a Lock" }, "post": { - "description": "Returns a specified [lock](/low-level-apis/smart-locks).", + "description": "Returns a specified [lock](https://docs.seam.co/low-level-apis/smart-locks).", "operationId": "locksGetPost", "requestBody": { "content": { @@ -56895,7 +56895,7 @@ }, "/locks/list": { "get": { - "description": "Returns a list of all [locks](/low-level-apis/smart-locks).", + "description": "Returns a list of all [locks](https://docs.seam.co/low-level-apis/smart-locks).", "operationId": "locksListGet", "parameters": [ { @@ -57109,7 +57109,7 @@ } ] }, - "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" } }, @@ -57285,7 +57285,7 @@ "x-title": "List Locks" }, "post": { - "description": "Returns a list of all [locks](/low-level-apis/smart-locks).", + "description": "Returns a list of all [locks](https://docs.seam.co/low-level-apis/smart-locks).", "operationId": "locksListPost", "requestBody": { "content": { @@ -57326,7 +57326,7 @@ } ] }, - "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" }, "customer_key": { @@ -57644,7 +57644,7 @@ }, "/locks/lock_door": { "post": { - "description": "Locks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock).", + "description": "Locks a [lock](https://docs.seam.co/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](https://docs.seam.co/low-level-apis/smart-locks/lock-and-unlock).", "operationId": "locksLockDoorPost", "requestBody": { "content": { @@ -57810,7 +57810,7 @@ }, "/locks/simulate/keypad_code_entry": { "post": { - "description": "Simulates the entry of a code on a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates the entry of a code on a keypad. You can only perform this action for [August](https://docs.seam.co/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", "operationId": "locksSimulateKeypadCodeEntryPost", "requestBody": { "content": { @@ -57970,7 +57970,7 @@ }, "/locks/simulate/manual_lock_via_keypad": { "post": { - "description": "Simulates a manual lock action using a keypad. You can only perform this action for [August](/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates a manual lock action using a keypad. You can only perform this action for [August](https://docs.seam.co/device-and-system-integration-guides/august-locks) devices within [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", "operationId": "locksSimulateManualLockViaKeypadPost", "requestBody": { "content": { @@ -58125,7 +58125,7 @@ }, "/locks/unlock_door": { "post": { - "description": "Unlocks a [lock](/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](/low-level-apis/smart-locks/lock-and-unlock).", + "description": "Unlocks a [lock](https://docs.seam.co/low-level-apis/smart-locks). See also [Locking and Unlocking Smart Locks](https://docs.seam.co/low-level-apis/smart-locks/lock-and-unlock).", "operationId": "locksUnlockDoorPost", "requestBody": { "content": { @@ -58291,7 +58291,7 @@ }, "/noise_sensors/list": { "get": { - "description": "Returns a list of all [noise sensors](/capability-guides/noise-sensors).", + "description": "Returns a list of all [noise sensors](https://docs.seam.co/capability-guides/noise-sensors).", "operationId": "noiseSensorsListGet", "parameters": [ { @@ -58425,7 +58425,7 @@ } ] }, - "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" } }, @@ -58601,7 +58601,7 @@ "x-title": "List Noise Sensors" }, "post": { - "description": "Returns a list of all [noise sensors](/capability-guides/noise-sensors).", + "description": "Returns a list of all [noise sensors](https://docs.seam.co/capability-guides/noise-sensors).", "operationId": "noiseSensorsListPost", "requestBody": { "content": { @@ -58642,7 +58642,7 @@ } ] }, - "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" }, "customer_key": { @@ -58880,7 +58880,7 @@ }, "/noise_sensors/noise_thresholds/create": { "post": { - "description": "Creates a new [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them.", + "description": "Creates a new [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them.", "operationId": "noiseSensorsNoiseThresholdsCreatePost", "requestBody": { "content": { @@ -58906,7 +58906,7 @@ "type": "number" }, "noise_threshold_nrs": { - "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the new noise threshold. This parameter is only relevant for [Noiseaware sensors](/device-and-system-integration-guides/noiseaware-sensors).", + "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the new noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors).", "format": "float", "type": "number" }, @@ -59068,7 +59068,7 @@ }, "/noise_sensors/noise_thresholds/delete": { "delete": { - "description": "Deletes a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) from a [noise sensor](/capability-guides/noise-sensors).", + "description": "Deletes a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) from a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsDeleteDelete", "requestBody": { "content": { @@ -59155,7 +59155,7 @@ "x-title": "Delete a Noise Threshold" }, "post": { - "description": "Deletes a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) from a [noise sensor](/capability-guides/noise-sensors).", + "description": "Deletes a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) from a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsDeletePost", "requestBody": { "content": { @@ -59321,7 +59321,7 @@ }, "/noise_sensors/noise_thresholds/get": { "get": { - "description": "Returns a specified [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", + "description": "Returns a specified [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsGetGet", "parameters": [ { @@ -59390,7 +59390,7 @@ "x-title": "Get a Noise Threshold" }, "post": { - "description": "Returns a specified [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", + "description": "Returns a specified [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsGetPost", "requestBody": { "content": { @@ -59497,7 +59497,7 @@ }, "/noise_sensors/noise_thresholds/list": { "get": { - "description": "Returns a list of all [noise thresholds](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", + "description": "Returns a list of all [noise thresholds](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsListGet", "parameters": [ { @@ -59582,7 +59582,7 @@ "x-title": "List Noise Thresholds" }, "post": { - "description": "Returns a list of all [noise thresholds](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", + "description": "Returns a list of all [noise thresholds](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsListPost", "requestBody": { "content": { @@ -59700,7 +59700,7 @@ }, "/noise_sensors/noise_thresholds/update": { "patch": { - "description": "Updates a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", + "description": "Updates a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsUpdatePatch", "requestBody": { "content": { @@ -59731,7 +59731,7 @@ "type": "string" }, "noise_threshold_nrs": { - "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](/device-and-system-integration-guides/noiseaware-sensors).", + "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors).", "format": "float", "type": "number" }, @@ -59809,7 +59809,7 @@ "x-title": "Update a Noise Threshold" }, "post": { - "description": "Updates a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", + "description": "Updates a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsUpdatePost", "requestBody": { "content": { @@ -59840,7 +59840,7 @@ "type": "string" }, "noise_threshold_nrs": { - "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](/device-and-system-integration-guides/noiseaware-sensors).", + "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors).", "format": "float", "type": "number" }, @@ -59995,7 +59995,7 @@ ] }, "put": { - "description": "Updates a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors).", + "description": "Updates a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors).", "operationId": "noiseSensorsNoiseThresholdsUpdatePut", "requestBody": { "content": { @@ -60026,7 +60026,7 @@ "type": "string" }, "noise_threshold_nrs": { - "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](/device-and-system-integration-guides/noiseaware-sensors).", + "description": "Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors).", "format": "float", "type": "number" }, @@ -60106,7 +60106,7 @@ }, "/noise_sensors/simulate/trigger_noise_threshold": { "post": { - "description": "Simulates the triggering of a [noise threshold](/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](/capability-guides/noise-sensors) in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", + "description": "Simulates the triggering of a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", "operationId": "noiseSensorsSimulateTriggerNoiseThresholdPost", "requestBody": { "content": { @@ -60209,7 +60209,7 @@ }, "/phones/deactivate": { "delete": { - "description": "Deactivates a phone, which is useful, for example, if a user has lost their phone. For more information, see [App User Lost Phone Process](/capability-guides/mobile-access/managing-phones-for-a-user-identity#app-user-lost-phone-process).", + "description": "Deactivates a phone, which is useful, for example, if a user has lost their phone. For more information, see [App User Lost Phone Process](https://docs.seam.co/capability-guides/mobile-access/managing-phones-for-a-user-identity#app-user-lost-phone-process).", "operationId": "phonesDeactivateDelete", "requestBody": { "content": { @@ -60281,7 +60281,7 @@ "x-title": "Deactivate a Phone" }, "post": { - "description": "Deactivates a phone, which is useful, for example, if a user has lost their phone. For more information, see [App User Lost Phone Process](/capability-guides/mobile-access/managing-phones-for-a-user-identity#app-user-lost-phone-process).", + "description": "Deactivates a phone, which is useful, for example, if a user has lost their phone. For more information, see [App User Lost Phone Process](https://docs.seam.co/capability-guides/mobile-access/managing-phones-for-a-user-identity#app-user-lost-phone-process).", "operationId": "phonesDeactivatePost", "requestBody": { "content": { @@ -60386,7 +60386,7 @@ }, "/phones/get": { "get": { - "description": "Returns a specified [phone](/capability-guides/mobile-access/managing-phones-for-a-user-identity).", + "description": "Returns a specified [phone](https://docs.seam.co/capability-guides/mobile-access/managing-phones-for-a-user-identity).", "operationId": "phonesGetGet", "parameters": [ { @@ -60454,7 +60454,7 @@ "x-title": "Get a Phone" }, "post": { - "description": "Returns a specified [phone](/capability-guides/mobile-access/managing-phones-for-a-user-identity).", + "description": "Returns a specified [phone](https://docs.seam.co/capability-guides/mobile-access/managing-phones-for-a-user-identity).", "operationId": "phonesGetPost", "requestBody": { "content": { @@ -60561,7 +60561,7 @@ }, "/phones/list": { "get": { - "description": "Returns a list of all [phones](/capability-guides/mobile-access/managing-phones-for-a-user-identity). To filter the list of returned phones by a specific owner user identity or credential, include the `owner_user_identity_id` or `acs_credential_id`, respectively, in the request body.", + "description": "Returns a list of all [phones](https://docs.seam.co/capability-guides/mobile-access/managing-phones-for-a-user-identity). To filter the list of returned phones by a specific owner user identity or credential, include the `owner_user_identity_id` or `acs_credential_id`, respectively, in the request body.", "operationId": "phonesListGet", "parameters": [ { @@ -60577,7 +60577,7 @@ "in": "query", "name": "acs_credential_id", "schema": { - "description": "ID of the [credential](/low-level-apis/access-systems/managing-credentials) by which you want to filter the list of returned phones.", + "description": "ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) by which you want to filter the list of returned phones.", "format": "uuid", "type": "string" } @@ -60640,7 +60640,7 @@ "x-title": "List Phones" }, "post": { - "description": "Returns a list of all [phones](/capability-guides/mobile-access/managing-phones-for-a-user-identity). To filter the list of returned phones by a specific owner user identity or credential, include the `owner_user_identity_id` or `acs_credential_id`, respectively, in the request body.", + "description": "Returns a list of all [phones](https://docs.seam.co/capability-guides/mobile-access/managing-phones-for-a-user-identity). To filter the list of returned phones by a specific owner user identity or credential, include the `owner_user_identity_id` or `acs_credential_id`, respectively, in the request body.", "operationId": "phonesListPost", "requestBody": { "content": { @@ -60648,7 +60648,7 @@ "schema": { "properties": { "acs_credential_id": { - "description": "ID of the [credential](/low-level-apis/access-systems/managing-credentials) by which you want to filter the list of returned phones.", + "description": "ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) by which you want to filter the list of returned phones.", "format": "uuid", "type": "string" }, @@ -60752,7 +60752,7 @@ }, "/phones/simulate/create_sandbox_phone": { "post": { - "description": "Creates a new simulated phone in a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity).", + "description": "Creates a new simulated phone in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Creating a Simulated Phone for a User Identity](https://docs.seam.co/capability-guides/mobile-access/developing-in-a-sandbox-workspace#creating-a-simulated-phone-for-a-user-identity).", "operationId": "phonesSimulateCreateSandboxPhonePost", "requestBody": { "content": { @@ -60932,7 +60932,7 @@ }, "/spaces/add_acs_entrances": { "post": { - "description": "Adds [entrances](/low-level-apis/access-systems/retrieving-entrance-details) to a specific space.", + "description": "Adds [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) to a specific space.", "operationId": "spacesAddAcsEntrancesPost", "requestBody": { "content": { @@ -61044,7 +61044,7 @@ ] }, "put": { - "description": "Adds [entrances](/low-level-apis/access-systems/retrieving-entrance-details) to a specific space.", + "description": "Adds [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) to a specific space.", "operationId": "spacesAddAcsEntrancesPut", "requestBody": { "content": { @@ -61127,7 +61127,7 @@ }, "/spaces/add_connected_account": { "post": { - "description": "Adds a [connected account](/core-concepts/connected-accounts) to a specific space.", + "description": "Adds a [connected account](https://docs.seam.co/core-concepts/connected-accounts) to a specific space.", "operationId": "spacesAddConnectedAccountPost", "requestBody": { "content": { @@ -61203,7 +61203,7 @@ } }, "put": { - "description": "Adds a [connected account](/core-concepts/connected-accounts) to a specific space.", + "description": "Adds a [connected account](https://docs.seam.co/core-concepts/connected-accounts) to a specific space.", "operationId": "spacesAddConnectedAccountPut", "requestBody": { "content": { @@ -62607,7 +62607,7 @@ }, "/spaces/remove_acs_entrances": { "delete": { - "description": "Removes [entrances](/low-level-apis/access-systems/retrieving-entrance-details) from a specific space.", + "description": "Removes [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) from a specific space.", "operationId": "spacesRemoveAcsEntrancesDelete", "parameters": [ { @@ -62684,7 +62684,7 @@ "x-title": "Remove Entrances from a Space" }, "post": { - "description": "Removes [entrances](/low-level-apis/access-systems/retrieving-entrance-details) from a specific space.", + "description": "Removes [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) from a specific space.", "operationId": "spacesRemoveAcsEntrancesPost", "requestBody": { "content": { @@ -62797,7 +62797,7 @@ }, "/spaces/remove_connected_account": { "delete": { - "description": "Removes a [connected account](/core-concepts/connected-accounts) from a specific space.", + "description": "Removes a [connected account](https://docs.seam.co/core-concepts/connected-accounts) from a specific space.", "operationId": "spacesRemoveConnectedAccountDelete", "parameters": [ { @@ -62871,7 +62871,7 @@ "x-title": "Remove a Connected Account from a Space" }, "post": { - "description": "Removes a [connected account](/core-concepts/connected-accounts) from a specific space.", + "description": "Removes a [connected account](https://docs.seam.co/core-concepts/connected-accounts) from a specific space.", "operationId": "spacesRemoveConnectedAccountPost", "requestBody": { "content": { @@ -63443,7 +63443,7 @@ }, "/thermostats/activate_climate_preset": { "post": { - "description": "Activates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Activates a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsActivateClimatePresetPost", "requestBody": { "content": { @@ -63603,7 +63603,7 @@ }, "/thermostats/cool": { "post": { - "description": "Sets a specified [thermostat](/capability-guides/thermostats) to [cool mode](/capability-guides/thermostats/configure-current-climate-settings).", + "description": "Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [cool mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings).", "operationId": "thermostatsCoolPost", "requestBody": { "content": { @@ -63611,12 +63611,12 @@ "schema": { "properties": { "cooling_set_point_celsius": { - "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, @@ -63776,7 +63776,7 @@ }, "/thermostats/create_climate_preset": { "post": { - "description": "Creates a [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Creates a [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsCreateClimatePresetPost", "requestBody": { "content": { @@ -63784,7 +63784,7 @@ "schema": { "properties": { "climate_preset_key": { - "description": "Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "climate_preset_mode": { @@ -63800,12 +63800,12 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, @@ -63842,7 +63842,7 @@ "type": "object" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -63851,17 +63851,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -63880,7 +63880,7 @@ }, "name": { "default": null, - "description": "User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "nullable": true, "type": "string" } @@ -64004,7 +64004,7 @@ "description": "Period for a thermostat daily program. Consists of a starts at time and the key that identifies the configured climate preset to apply at the starting time.", "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", + "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", "type": "string" }, "starts_at_time": { @@ -64311,7 +64311,7 @@ "description": "Period for a thermostat daily program. Consists of a starts at time and the key that identifies the configured climate preset to apply at the starting time.", "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", + "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", "type": "string" }, "starts_at_time": { @@ -64420,7 +64420,7 @@ "description": "Period for a thermostat daily program. Consists of a starts at time and the key that identifies the configured climate preset to apply at the starting time.", "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", + "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.", "type": "string" }, "starts_at_time": { @@ -64590,7 +64590,7 @@ }, "/thermostats/delete_climate_preset": { "delete": { - "description": "Deletes a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Deletes a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsDeleteClimatePresetDelete", "requestBody": { "content": { @@ -64668,7 +64668,7 @@ "x-title": "Delete a Climate Preset" }, "post": { - "description": "Deletes a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Deletes a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsDeleteClimatePresetPost", "requestBody": { "content": { @@ -64779,7 +64779,7 @@ }, "/thermostats/heat": { "post": { - "description": "Sets a specified [thermostat](/capability-guides/thermostats) to [heat mode](/capability-guides/thermostats/configure-current-climate-settings).", + "description": "Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [heat mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings).", "operationId": "thermostatsHeatPost", "requestBody": { "content": { @@ -64792,12 +64792,12 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, @@ -64952,7 +64952,7 @@ }, "/thermostats/heat_cool": { "post": { - "description": "Sets a specified [thermostat](/capability-guides/thermostats) to [heat-cool (\"auto\") mode](/capability-guides/thermostats/configure-current-climate-settings).", + "description": "Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [heat-cool (\"auto\") mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings).", "operationId": "thermostatsHeatCoolPost", "requestBody": { "content": { @@ -64960,12 +64960,12 @@ "schema": { "properties": { "cooling_set_point_celsius": { - "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, @@ -64975,12 +64975,12 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, @@ -65135,7 +65135,7 @@ }, "/thermostats/list": { "get": { - "description": "Returns a list of all [thermostats](/capability-guides/thermostats).", + "description": "Returns a list of all [thermostats](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsListGet", "parameters": [ { @@ -65281,7 +65281,7 @@ } ] }, - "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" } }, @@ -65457,7 +65457,7 @@ "x-title": "List Thermostats" }, "post": { - "description": "Returns a list of all [thermostats](/capability-guides/thermostats).", + "description": "Returns a list of all [thermostats](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsListPost", "requestBody": { "content": { @@ -65498,7 +65498,7 @@ } ] }, - "description": "Set of key:value [custom metadata](/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", + "description": "Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.", "type": "object" }, "customer_key": { @@ -65748,7 +65748,7 @@ }, "/thermostats/off": { "post": { - "description": "Sets a specified [thermostat](/capability-guides/thermostats) to [\"off\" mode](/capability-guides/thermostats/configure-current-climate-settings).", + "description": "Sets a specified [thermostat](https://docs.seam.co/capability-guides/thermostats) to [\"off\" mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings).", "operationId": "thermostatsOffPost", "requestBody": { "content": { @@ -65911,7 +65911,7 @@ }, "/thermostats/schedules/create": { "post": { - "description": "Creates a new [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Creates a new [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsSchedulesCreatePost", "requestBody": { "content": { @@ -65919,7 +65919,7 @@ "schema": { "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the new thermostat schedule.", + "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the new thermostat schedule.", "type": "string" }, "device_id": { @@ -65931,11 +65931,11 @@ "type": "string" }, "is_override_allowed": { - "description": "Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the new schedule is active. See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the new schedule is active. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean" }, "max_override_period_minutes": { - "description": "Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "exclusiveMinimum": true, "minimum": 0, "nullable": true, @@ -66053,7 +66053,7 @@ }, "/thermostats/schedules/delete": { "delete": { - "description": "Deletes a [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Deletes a [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsSchedulesDeleteDelete", "parameters": [ { @@ -66120,7 +66120,7 @@ "x-title": "Delete a Thermostat Schedule" }, "post": { - "description": "Deletes a [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Deletes a [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsSchedulesDeletePost", "requestBody": { "content": { @@ -66226,7 +66226,7 @@ }, "/thermostats/schedules/get": { "get": { - "description": "Returns a specified [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Returns a specified [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "operationId": "thermostatsSchedulesGetGet", "parameters": [ { @@ -66298,7 +66298,7 @@ "x-title": "Get a Thermostat Schedule" }, "post": { - "description": "Returns a specified [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Returns a specified [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "operationId": "thermostatsSchedulesGetPost", "requestBody": { "content": { @@ -66408,7 +66408,7 @@ }, "/thermostats/schedules/list": { "get": { - "description": "Returns a list of all [thermostat schedules](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Returns a list of all [thermostat schedules](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsSchedulesListGet", "parameters": [ { @@ -66495,7 +66495,7 @@ "x-title": "List Thermostat Schedules" }, "post": { - "description": "Returns a list of all [thermostat schedules](/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Returns a list of all [thermostat schedules](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsSchedulesListPost", "requestBody": { "content": { @@ -66615,7 +66615,7 @@ }, "/thermostats/schedules/update": { "patch": { - "description": "Updates a specified [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Updates a specified [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "operationId": "thermostatsSchedulesUpdatePatch", "requestBody": { "content": { @@ -66623,7 +66623,7 @@ "schema": { "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the thermostat schedule.", + "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the thermostat schedule.", "type": "string" }, "ends_at": { @@ -66631,11 +66631,11 @@ "type": "string" }, "is_override_allowed": { - "description": "Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the schedule is active. See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the schedule is active. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean" }, "max_override_period_minutes": { - "description": "Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "exclusiveMinimum": true, "minimum": 0, "nullable": true, @@ -66716,7 +66716,7 @@ "x-title": "Update a Thermostat Schedule" }, "post": { - "description": "Updates a specified [thermostat schedule](/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", + "description": "Updates a specified [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).", "operationId": "thermostatsSchedulesUpdatePost", "requestBody": { "content": { @@ -66724,7 +66724,7 @@ "schema": { "properties": { "climate_preset_key": { - "description": "Key of the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the thermostat schedule.", + "description": "Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the thermostat schedule.", "type": "string" }, "ends_at": { @@ -66732,11 +66732,11 @@ "type": "string" }, "is_override_allowed": { - "description": "Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the schedule is active. See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the schedule is active. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean" }, "max_override_period_minutes": { - "description": "Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "exclusiveMinimum": true, "minimum": 0, "nullable": true, @@ -66849,7 +66849,7 @@ }, "/thermostats/set_fallback_climate_preset": { "post": { - "description": "Sets a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) as the [\"fallback\"](/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) preset for a specified [thermostat](/capability-guides/thermostats).", + "description": "Sets a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) as the [\"fallback\"](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) preset for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsSetFallbackClimatePresetPost", "requestBody": { "content": { @@ -66957,7 +66957,7 @@ }, "/thermostats/set_fan_mode": { "post": { - "description": "Sets the [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Sets the [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsSetFanModePost", "requestBody": { "content": { @@ -66981,7 +66981,7 @@ "x-deprecated": "Use `fan_mode_setting` instead." }, "fan_mode_setting": { - "description": "[Fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) that you want to set for the thermostat.", + "description": "[Fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings) that you want to set for the thermostat.", "enum": [ "auto", "on", @@ -67140,7 +67140,7 @@ }, "/thermostats/set_hvac_mode": { "post": { - "description": "Sets the [HVAC mode](/capability-guides/thermostats/configure-current-climate-settings) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Sets the [HVAC mode](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsSetHvacModePost", "requestBody": { "content": { @@ -67173,12 +67173,12 @@ { "properties": { "cooling_set_point_celsius": { - "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, @@ -67208,12 +67208,12 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, @@ -67233,12 +67233,12 @@ { "properties": { "cooling_set_point_celsius": { - "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "[Cooling set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", + "description": "[Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters.", "format": "float", "type": "number" }, @@ -67248,12 +67248,12 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "[Heating set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", + "description": "[Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters.", "format": "float", "type": "number" }, @@ -67432,7 +67432,7 @@ }, "/thermostats/set_temperature_threshold": { "patch": { - "description": "Sets a [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range.", + "description": "Sets a [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range.", "operationId": "thermostatsSetTemperatureThresholdPatch", "requestBody": { "content": { @@ -67530,7 +67530,7 @@ "x-title": "Set a Temperature Threshold" }, "post": { - "description": "Sets a [temperature threshold](/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range.", + "description": "Sets a [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) for a specified thermostat. Seam emits a `thermostat.temperature_threshold_exceeded` event and adds a warning on a thermostat if it reports a temperature outside the threshold range.", "operationId": "thermostatsSetTemperatureThresholdPost", "requestBody": { "content": { @@ -67661,7 +67661,7 @@ }, "/thermostats/simulate/hvac_mode_adjusted": { "post": { - "description": "Simulates having adjusted the [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](/capability-guides/thermostats). Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints).", + "description": "Simulates having adjusted the [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](https://docs.seam.co/capability-guides/thermostats). Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints).", "operationId": "thermostatsSimulateHvacModeAdjustedPost", "requestBody": { "content": { @@ -67695,12 +67695,12 @@ { "properties": { "cooling_set_point_celsius": { - "description": "Cooling [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `cooling_set_point_celsius` or `cooling_set_point_fahrenheit`.", + "description": "Cooling [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `cooling_set_point_celsius` or `cooling_set_point_fahrenheit`.", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Cooling [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `cooling_set_point_fahrenheit` or `cooling_set_point_celsius`.", + "description": "Cooling [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `cooling_set_point_fahrenheit` or `cooling_set_point_celsius`.", "format": "float", "type": "number" }, @@ -67731,12 +67731,12 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Heating [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `heating_set_point_celsius` or `heating_set_point_fahrenheit`.", + "description": "Heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `heating_set_point_celsius` or `heating_set_point_fahrenheit`.", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Heating [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `heating_set_point_fahrenheit` or `heating_set_point_celsius`.", + "description": "Heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `heating_set_point_fahrenheit` or `heating_set_point_celsius`.", "format": "float", "type": "number" }, @@ -67757,12 +67757,12 @@ { "properties": { "cooling_set_point_celsius": { - "description": "Cooling [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `cooling_set_point_celsius` or `cooling_set_point_fahrenheit`.", + "description": "Cooling [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `cooling_set_point_celsius` or `cooling_set_point_fahrenheit`.", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Cooling [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `cooling_set_point_fahrenheit` or `cooling_set_point_celsius`.", + "description": "Cooling [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `cooling_set_point_fahrenheit` or `cooling_set_point_celsius`.", "format": "float", "type": "number" }, @@ -67772,12 +67772,12 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Heating [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `heating_set_point_celsius` or `heating_set_point_fahrenheit`.", + "description": "Heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `heating_set_point_celsius` or `heating_set_point_fahrenheit`.", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Heating [set point](/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `heating_set_point_fahrenheit` or `heating_set_point_celsius`.", + "description": "Heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `heating_set_point_fahrenheit` or `heating_set_point_celsius`.", "format": "float", "type": "number" }, @@ -67882,7 +67882,7 @@ }, "/thermostats/simulate/temperature_reached": { "post": { - "description": "Simulates a [thermostat](/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints).", + "description": "Simulates a [thermostat](https://docs.seam.co/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints).", "operationId": "thermostatsSimulateTemperatureReachedPost", "requestBody": { "content": { @@ -67995,7 +67995,7 @@ }, "/thermostats/update_climate_preset": { "patch": { - "description": "Updates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Updates a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsUpdateClimatePresetPatch", "requestBody": { "content": { @@ -68003,7 +68003,7 @@ "schema": { "properties": { "climate_preset_key": { - "description": "Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "climate_preset_mode": { @@ -68019,12 +68019,12 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, @@ -68061,7 +68061,7 @@ "type": "object" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -68070,17 +68070,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -68092,13 +68092,13 @@ }, "manual_override_allowed": { "deprecated": true, - "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean", "x-deprecated": "Use 'thermostat_schedule.is_override_allowed'" }, "name": { "default": null, - "description": "User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "nullable": true, "type": "string" } @@ -68164,7 +68164,7 @@ "x-title": "Update a Climate Preset" }, "post": { - "description": "Updates a specified [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](/capability-guides/thermostats).", + "description": "Updates a specified [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).", "operationId": "thermostatsUpdateClimatePresetPost", "requestBody": { "content": { @@ -68172,7 +68172,7 @@ "schema": { "properties": { "climate_preset_key": { - "description": "Unique key to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "type": "string" }, "climate_preset_mode": { @@ -68188,12 +68188,12 @@ "type": "string" }, "cooling_set_point_celsius": { - "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "cooling_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, @@ -68230,7 +68230,7 @@ "type": "object" }, "fan_mode_setting": { - "description": "Desired [fan mode setting](/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", + "description": "Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.", "enum": [ "auto", "on", @@ -68239,17 +68239,17 @@ "type": "string" }, "heating_set_point_celsius": { - "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "heating_set_point_fahrenheit": { - "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + "description": "Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", "format": "float", "type": "number" }, "hvac_mode_setting": { - "description": "Desired [HVAC mode](/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", + "description": "Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.", "enum": [ "off", "heat", @@ -68261,13 +68261,13 @@ }, "manual_override_allowed": { "deprecated": true, - "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + "description": "Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", "type": "boolean", "x-deprecated": "Use 'thermostat_schedule.is_override_allowed'" }, "name": { "default": null, - "description": "User-friendly name to identify the [climate preset](/capability-guides/thermostats/creating-and-managing-climate-presets).", + "description": "User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).", "nullable": true, "type": "string" } @@ -68566,7 +68566,7 @@ }, "/user_identities/add_acs_user": { "post": { - "description": "Adds a specified [access system user](/low-level-apis/access-systems/user-management) to a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).\n\nYou must specify either `user_identity_id` or `user_identity_key` to identify the user identity.\n\nIf `user_identity_key` is provided, but the user identity doesn't exist, a new user identity will be created automatically using information from the ACS user.", + "description": "Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).\n\nYou must specify either `user_identity_id` or `user_identity_key` to identify the user identity.\n\nIf `user_identity_key` is provided, but the user identity doesn't exist, a new user identity will be created automatically using information from the ACS user.", "operationId": "userIdentitiesAddAcsUserPost", "requestBody": { "content": { @@ -68676,7 +68676,7 @@ ] }, "put": { - "description": "Adds a specified [access system user](/low-level-apis/access-systems/user-management) to a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).\n\nYou must specify either `user_identity_id` or `user_identity_key` to identify the user identity.\n\nIf `user_identity_key` is provided, but the user identity doesn't exist, a new user identity will be created automatically using information from the ACS user.", + "description": "Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).\n\nYou must specify either `user_identity_id` or `user_identity_key` to identify the user identity.\n\nIf `user_identity_key` is provided, but the user identity doesn't exist, a new user identity will be created automatically using information from the ACS user.", "operationId": "userIdentitiesAddAcsUserPut", "requestBody": { "content": { @@ -68757,7 +68757,7 @@ }, "/user_identities/create": { "post": { - "description": "Creates a new [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Creates a new [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesCreatePost", "requestBody": { "content": { @@ -68887,7 +68887,7 @@ }, "/user_identities/delete": { "delete": { - "description": "Deletes a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This deletes the user identity and all associated resources, including any [credentials](/api/acs/credentials/object), [acs users](/api/acs/users/object) and [client sessions](/api/client_sessions/object).", + "description": "Deletes a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This deletes the user identity and all associated resources, including any [credentials](https://docs.seam.co/api/acs/credentials/object), [acs users](https://docs.seam.co/api/acs/users/object) and [client sessions](https://docs.seam.co/api/client_sessions/object).", "operationId": "userIdentitiesDeleteDelete", "parameters": [ { @@ -68950,7 +68950,7 @@ "x-title": "Delete a User Identity" }, "post": { - "description": "Deletes a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This deletes the user identity and all associated resources, including any [credentials](/api/acs/credentials/object), [acs users](/api/acs/users/object) and [client sessions](/api/client_sessions/object).", + "description": "Deletes a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This deletes the user identity and all associated resources, including any [credentials](https://docs.seam.co/api/acs/credentials/object), [acs users](https://docs.seam.co/api/acs/users/object) and [client sessions](https://docs.seam.co/api/client_sessions/object).", "operationId": "userIdentitiesDeletePost", "requestBody": { "content": { @@ -69053,7 +69053,7 @@ }, "/user_identities/generate_instant_key": { "post": { - "description": "Generates a new [instant key](/capability-guides/instant-keys) for a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Generates a new [instant key](https://docs.seam.co/capability-guides/instant-keys) for a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesGenerateInstantKeyPost", "requestBody": { "content": { @@ -69170,7 +69170,7 @@ }, "/user_identities/get": { "get": { - "description": "Returns a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesGetGet", "responses": { "200": { @@ -69229,7 +69229,7 @@ "x-title": "Get a User Identity" }, "post": { - "description": "Returns a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesGetPost", "requestBody": { "content": { @@ -69354,7 +69354,7 @@ }, "/user_identities/grant_access_to_device": { "post": { - "description": "Grants a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) access to a specified [device](/core-concepts/devices).", + "description": "Grants a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) access to a specified [device](https://docs.seam.co/core-concepts/devices).", "operationId": "userIdentitiesGrantAccessToDevicePost", "requestBody": { "content": { @@ -69461,7 +69461,7 @@ ] }, "put": { - "description": "Grants a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) access to a specified [device](/core-concepts/devices).", + "description": "Grants a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) access to a specified [device](https://docs.seam.co/core-concepts/devices).", "operationId": "userIdentitiesGrantAccessToDevicePut", "requestBody": { "content": { @@ -69539,7 +69539,7 @@ }, "/user_identities/list": { "get": { - "description": "Returns a list of all [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a list of all [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesListGet", "parameters": [ { @@ -69665,7 +69665,7 @@ "x-title": "List User Identities" }, "post": { - "description": "Returns a list of all [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a list of all [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesListPost", "requestBody": { "content": { @@ -69808,7 +69808,7 @@ }, "/user_identities/list_accessible_devices": { "get": { - "description": "Returns a list of all [devices](/core-concepts/devices) associated with a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes devices derived from the access grants assigned to the user identity and devices directly linked to the user identity.", + "description": "Returns a list of all [devices](https://docs.seam.co/core-concepts/devices) associated with a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes devices derived from the access grants assigned to the user identity and devices directly linked to the user identity.", "operationId": "userIdentitiesListAccessibleDevicesGet", "parameters": [ { @@ -69888,7 +69888,7 @@ "x-title": "List Accessible Devices for a User Identity" }, "post": { - "description": "Returns a list of all [devices](/core-concepts/devices) associated with a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes devices derived from the access grants assigned to the user identity and devices directly linked to the user identity.", + "description": "Returns a list of all [devices](https://docs.seam.co/core-concepts/devices) associated with a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes devices derived from the access grants assigned to the user identity and devices directly linked to the user identity.", "operationId": "userIdentitiesListAccessibleDevicesPost", "requestBody": { "content": { @@ -70007,7 +70007,7 @@ }, "/user_identities/list_accessible_entrances": { "get": { - "description": "Returns a list of all [ACS entrances](/api/acs/entrances/object) accessible to a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes entrances derived from the access grants assigned to the user identity and entrances accessible through ACS users linked to the user identity.", + "description": "Returns a list of all [ACS entrances](https://docs.seam.co/api/acs/entrances/object) accessible to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes entrances derived from the access grants assigned to the user identity and entrances accessible through ACS users linked to the user identity.", "operationId": "userIdentitiesListAccessibleEntrancesGet", "parameters": [ { @@ -70081,7 +70081,7 @@ "x-title": "List Accessible Entrances for a User Identity" }, "post": { - "description": "Returns a list of all [ACS entrances](/api/acs/entrances/object) accessible to a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes entrances derived from the access grants assigned to the user identity and entrances accessible through ACS users linked to the user identity.", + "description": "Returns a list of all [ACS entrances](https://docs.seam.co/api/acs/entrances/object) accessible to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes entrances derived from the access grants assigned to the user identity and entrances accessible through ACS users linked to the user identity.", "operationId": "userIdentitiesListAccessibleEntrancesPost", "requestBody": { "content": { @@ -70162,7 +70162,7 @@ }, "/user_identities/list_acs_systems": { "get": { - "description": "Returns a list of all [access systems](/low-level-apis/access-systems) associated with a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a list of all [access systems](https://docs.seam.co/low-level-apis/access-systems) associated with a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesListAcsSystemsGet", "parameters": [ { @@ -70236,7 +70236,7 @@ "x-title": "List ACS Systems Associated with a User Identity" }, "post": { - "description": "Returns a list of all [access systems](/low-level-apis/access-systems) associated with a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a list of all [access systems](https://docs.seam.co/low-level-apis/access-systems) associated with a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesListAcsSystemsPost", "requestBody": { "content": { @@ -70349,7 +70349,7 @@ }, "/user_identities/list_acs_users": { "get": { - "description": "Returns a list of all [access system users](/low-level-apis/access-systems/user-management) assigned to a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management) assigned to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesListAcsUsersGet", "parameters": [ { @@ -70420,7 +70420,7 @@ "x-title": "List ACS Users Associated with a User Identity" }, "post": { - "description": "Returns a list of all [access system users](/low-level-apis/access-systems/user-management) assigned to a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management) assigned to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesListAcsUsersPost", "requestBody": { "content": { @@ -70530,7 +70530,7 @@ }, "/user_identities/remove_acs_user": { "delete": { - "description": "Removes a specified [access system user](/low-level-apis/access-systems/user-management) from a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesRemoveAcsUserDelete", "parameters": [ { @@ -70603,7 +70603,7 @@ "x-title": "Remove an ACS User from a User Identity" }, "post": { - "description": "Removes a specified [access system user](/low-level-apis/access-systems/user-management) from a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesRemoveAcsUserPost", "requestBody": { "content": { @@ -70712,7 +70712,7 @@ }, "/user_identities/revoke_access_to_device": { "delete": { - "description": "Revokes access to a specified [device](/core-concepts/devices) from a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Revokes access to a specified [device](https://docs.seam.co/core-concepts/devices) from a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesRevokeAccessToDeviceDelete", "parameters": [ { @@ -70785,7 +70785,7 @@ "x-title": "Revoke Access to a Device from a User Identity" }, "post": { - "description": "Revokes access to a specified [device](/core-concepts/devices) from a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Revokes access to a specified [device](https://docs.seam.co/core-concepts/devices) from a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesRevokeAccessToDevicePost", "requestBody": { "content": { @@ -70894,7 +70894,7 @@ }, "/user_identities/unmanaged/get": { "get": { - "description": "Returns a specified unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", + "description": "Returns a specified unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", "operationId": "userIdentitiesUnmanagedGetGet", "parameters": [ { @@ -71143,7 +71143,7 @@ "x-title": "Get an Unmanaged User Identity" }, "post": { - "description": "Returns a specified unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", + "description": "Returns a specified unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", "operationId": "userIdentitiesUnmanagedGetPost", "requestBody": { "content": { @@ -71398,7 +71398,7 @@ }, "/user_identities/unmanaged/list": { "get": { - "description": "Returns a list of all unmanaged [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", + "description": "Returns a list of all unmanaged [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", "operationId": "userIdentitiesUnmanagedListGet", "parameters": [ { @@ -71684,7 +71684,7 @@ "x-title": "List Unmanaged User Identities" }, "post": { - "description": "Returns a list of all unmanaged [user identities](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", + "description": "Returns a list of all unmanaged [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).", "operationId": "userIdentitiesUnmanagedListPost", "requestBody": { "content": { @@ -71962,7 +71962,7 @@ }, "/user_identities/unmanaged/update": { "patch": { - "description": "Updates an unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed.\n\nThis endpoint can only be used to convert unmanaged user identities to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed user identities back to unmanaged.", + "description": "Updates an unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed.\n\nThis endpoint can only be used to convert unmanaged user identities to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed user identities back to unmanaged.", "operationId": "userIdentitiesUnmanagedUpdatePatch", "requestBody": { "content": { @@ -72048,7 +72048,7 @@ "x-title": "Update an Unmanaged User Identity" }, "post": { - "description": "Updates an unmanaged [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed.\n\nThis endpoint can only be used to convert unmanaged user identities to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed user identities back to unmanaged.", + "description": "Updates an unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed.\n\nThis endpoint can only be used to convert unmanaged user identities to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed user identities back to unmanaged.", "operationId": "userIdentitiesUnmanagedUpdatePost", "requestBody": { "content": { @@ -72134,7 +72134,7 @@ }, "/user_identities/update": { "patch": { - "description": "Updates a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Updates a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesUpdatePatch", "requestBody": { "content": { @@ -72227,7 +72227,7 @@ "x-title": "Update a User Identity" }, "post": { - "description": "Updates a specified [user identity](/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", + "description": "Updates a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).", "operationId": "userIdentitiesUpdatePost", "requestBody": { "content": { @@ -72353,7 +72353,7 @@ }, "/webhooks/create": { "post": { - "description": "Creates a new [webhook](/developer-tools/webhooks).", + "description": "Creates a new [webhook](https://docs.seam.co/developer-tools/webhooks).", "operationId": "webhooksCreatePost", "requestBody": { "content": { @@ -72470,7 +72470,7 @@ }, "/webhooks/delete": { "delete": { - "description": "Deletes a specified [webhook](/developer-tools/webhooks).", + "description": "Deletes a specified [webhook](https://docs.seam.co/developer-tools/webhooks).", "operationId": "webhooksDeleteDelete", "parameters": [ { @@ -72532,7 +72532,7 @@ "x-title": "Delete a Webhook" }, "post": { - "description": "Deletes a specified [webhook](/developer-tools/webhooks).", + "description": "Deletes a specified [webhook](https://docs.seam.co/developer-tools/webhooks).", "operationId": "webhooksDeletePost", "requestBody": { "content": { @@ -72634,7 +72634,7 @@ }, "/webhooks/get": { "get": { - "description": "Gets a specified [webhook](/developer-tools/webhooks).", + "description": "Gets a specified [webhook](https://docs.seam.co/developer-tools/webhooks).", "operationId": "webhooksGetGet", "parameters": [ { @@ -72701,7 +72701,7 @@ "x-title": "Get a Webhook" }, "post": { - "description": "Gets a specified [webhook](/developer-tools/webhooks).", + "description": "Gets a specified [webhook](https://docs.seam.co/developer-tools/webhooks).", "operationId": "webhooksGetPost", "requestBody": { "content": { @@ -72807,7 +72807,7 @@ }, "/webhooks/list": { "get": { - "description": "Returns a list of all [webhooks](/developer-tools/webhooks).", + "description": "Returns a list of all [webhooks](https://docs.seam.co/developer-tools/webhooks).", "operationId": "webhooksListGet", "responses": { "200": { @@ -72866,7 +72866,7 @@ "x-title": "List Webhooks" }, "post": { - "description": "Returns a list of all [webhooks](/developer-tools/webhooks).", + "description": "Returns a list of all [webhooks](https://docs.seam.co/developer-tools/webhooks).", "operationId": "webhooksListPost", "responses": { "200": { @@ -72957,7 +72957,7 @@ }, "/webhooks/update": { "post": { - "description": "Updates a specified [webhook](/developer-tools/webhooks).", + "description": "Updates a specified [webhook](https://docs.seam.co/developer-tools/webhooks).", "operationId": "webhooksUpdatePost", "requestBody": { "content": { @@ -73065,7 +73065,7 @@ ] }, "put": { - "description": "Updates a specified [webhook](/developer-tools/webhooks).", + "description": "Updates a specified [webhook](https://docs.seam.co/developer-tools/webhooks).", "operationId": "webhooksUpdatePut", "requestBody": { "content": { @@ -73144,7 +73144,7 @@ }, "/workspaces/create": { "post": { - "description": "Creates a new [workspace](/core-concepts/workspaces).", + "description": "Creates a new [workspace](https://docs.seam.co/core-concepts/workspaces).", "operationId": "workspacesCreatePost", "requestBody": { "content": { @@ -73163,10 +73163,10 @@ "x-deprecated": "Use `company_name` instead." }, "connect_webview_customization": { - "description": "[Connect Webview](/core-concepts/connect-webviews) customizations for the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "[Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) customizations for the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "properties": { "logo_shape": { - "description": "Logo shape for [Connect Webviews](/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Logo shape for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "enum": [ "circle", "square" @@ -73175,17 +73175,17 @@ "type": "string" }, "primary_button_color": { - "description": "Primary button color for [Connect Webviews](/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }, "primary_button_text_color": { - "description": "Primary button text color for [Connect Webviews](/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button text color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }, "success_message": { - "description": "Success message for [Connect Webviews](/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Success message for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" } @@ -73194,7 +73194,7 @@ }, "is_sandbox": { "default": false, - "description": "Indicates whether the new workspace is a [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces).", + "description": "Indicates whether the new workspace is a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).", "type": "boolean" }, "name": { @@ -73325,7 +73325,7 @@ }, "/workspaces/get": { "get": { - "description": "Returns the [workspace](/core-concepts/workspaces) associated with the authentication value.", + "description": "Returns the [workspace](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.", "operationId": "workspacesGetGet", "responses": { "200": { @@ -73387,7 +73387,7 @@ "x-title": "Get a Workspace" }, "post": { - "description": "Returns the [workspace](/core-concepts/workspaces) associated with the authentication value.", + "description": "Returns the [workspace](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.", "operationId": "workspacesGetPost", "responses": { "200": { @@ -73481,7 +73481,7 @@ }, "/workspaces/list": { "get": { - "description": "Returns a list of [workspaces](/core-concepts/workspaces) associated with the authentication value.", + "description": "Returns a list of [workspaces](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.", "operationId": "workspacesListGet", "responses": { "200": { @@ -73549,7 +73549,7 @@ "x-title": "List Workspaces" }, "post": { - "description": "Returns a list of [workspaces](/core-concepts/workspaces) associated with the authentication value.", + "description": "Returns a list of [workspaces](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.", "operationId": "workspacesListPost", "responses": { "200": { @@ -73649,7 +73649,7 @@ }, "/workspaces/reset_sandbox": { "post": { - "description": "Resets the [sandbox workspace](/core-concepts/workspaces#sandbox-workspaces) associated with the authentication value. Note that this endpoint is only available for sandbox workspaces.", + "description": "Resets the [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) associated with the authentication value. Note that this endpoint is only available for sandbox workspaces.", "operationId": "workspacesResetSandboxPost", "responses": { "200": { @@ -73785,7 +73785,7 @@ }, "/workspaces/update": { "patch": { - "description": "Updates the [workspace](/core-concepts/workspaces) associated with the authentication value.", + "description": "Updates the [workspace](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.", "operationId": "workspacesUpdatePatch", "requestBody": { "content": { @@ -73797,10 +73797,10 @@ "type": "string" }, "connect_webview_customization": { - "description": "[Connect Webview](/core-concepts/connect-webviews) customizations for the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "[Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) customizations for the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "properties": { "logo_shape": { - "description": "Logo shape for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Logo shape for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "enum": [ "circle", "square" @@ -73809,17 +73809,17 @@ "type": "string" }, "primary_button_color": { - "description": "Primary button color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }, "primary_button_text_color": { - "description": "Primary button text color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button text color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }, "success_message": { - "description": "Success message for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Success message for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" } @@ -73883,7 +73883,7 @@ "x-title": "Update a Workspace" }, "post": { - "description": "Updates the [workspace](/core-concepts/workspaces) associated with the authentication value.", + "description": "Updates the [workspace](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.", "operationId": "workspacesUpdatePost", "requestBody": { "content": { @@ -73895,10 +73895,10 @@ "type": "string" }, "connect_webview_customization": { - "description": "[Connect Webview](/core-concepts/connect-webviews) customizations for the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "[Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) customizations for the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "properties": { "logo_shape": { - "description": "Logo shape for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Logo shape for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "enum": [ "circle", "square" @@ -73907,17 +73907,17 @@ "type": "string" }, "primary_button_color": { - "description": "Primary button color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }, "primary_button_text_color": { - "description": "Primary button text color for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Primary button text color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }, "success_message": { - "description": "Success message for [Connect Webviews](/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", + "description": "Success message for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).", "nullable": true, "type": "string" }