From e5181d17aa3bbd270f012dd08c3ea9f08c58a124 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Tue, 15 Apr 2025 16:57:03 -0700 Subject: [PATCH 01/52] Update via seamapi/seam-connect@245febb84649c0dda76ab347917141ae011e7d3a (#1676) --- src/lib/seam/connect/openapi.ts | 58 +++++++++++++++++++++++++++++ src/lib/seam/connect/route-types.ts | 26 +++++++++++++ 2 files changed, 84 insertions(+) diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 566d7f26..1b4031de 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -28308,6 +28308,64 @@ export default { 'x-undocumented': 'Seam Bridge Client only.', }, }, + '/seam/instant_key/v1/client_sessions/exchange_short_code': { + post: { + description: + 'Exchanges a short code for a Client Session Token (CST).\nThis endpoint is used by mobile apps to securely retrieve a client session token \nusing a short code obtained from an instant key URL.', + operationId: 'seamInstantKeyV1ClientSessionsExchangeShortCodePost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + short_code: { + description: + 'The short code to exchange for a client session token', + type: 'string', + }, + }, + required: ['short_code'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { + client_session: { + $ref: '#/components/schemas/client_session', + }, + ok: { type: 'boolean' }, + }, + required: ['client_session', 'ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [{ certified_client: [] }], + summary: '/seam/instant_key/v1/client_sessions/exchange_short_code', + tags: ['/client_sessions'], + 'x-fern-sdk-group-name': [ + 'seam', + 'instant_key', + 'v1', + 'client_sessions', + ], + 'x-fern-sdk-method-name': 'exchange_short_code', + 'x-fern-sdk-return-value': 'client_session', + 'x-response-key': 'client_session', + 'x-title': 'Exchange Instant Key Short Code', + }, + }, '/thermostats/activate_climate_preset': { post: { description: diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index a024fc25..c82fc9f0 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -37176,6 +37176,32 @@ export interface Routes { }> } } + '/seam/instant_key/v1/client_sessions/exchange_short_code': { + route: '/seam/instant_key/v1/client_sessions/exchange_short_code' + method: 'POST' + queryParams: {} + jsonBody: { + /** The short code to exchange for a client session token */ + short_code: string + } + commonParams: {} + formData: {} + jsonResponse: { + /** */ + client_session: { + client_session_id: string + workspace_id: string + created_at: string + expires_at: string + token: string + user_identifier_key: string | null + device_count: number + connected_account_ids: string[] + connect_webview_ids: string[] + user_identity_ids: string[] + } + } + } '/thermostats/activate_climate_preset': { route: '/thermostats/activate_climate_preset' method: 'POST' From 69caf2b898d635424b8b3303cff016ea3b88b368 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 16 Apr 2025 11:13:54 -0700 Subject: [PATCH 02/52] Update via seamapi/seam-connect@51eb51ed8b33ed1387d329c98f5ca25fa8eadf86 (#1677) --- .../models/access-grants/access-grant.ts | 5 ++ .../access-grants/requested-access-method.ts | 6 +- src/lib/seam/connect/openapi.ts | 78 ++++++++++++------- src/lib/seam/connect/route-types.ts | 22 ++++-- 4 files changed, 73 insertions(+), 38 deletions(-) diff --git a/src/lib/seam/connect/models/access-grants/access-grant.ts b/src/lib/seam/connect/models/access-grants/access-grant.ts index feb7ab15..0ee9e25c 100644 --- a/src/lib/seam/connect/models/access-grants/access-grant.ts +++ b/src/lib/seam/connect/models/access-grants/access-grant.ts @@ -20,6 +20,11 @@ export const access_grant = z.object({ requested_access_methods: z .array(requested_access_method) .describe('Access methods that the user requested for this access grant.'), + access_method_ids: z + .array(z.string().uuid()) + .describe( + 'IDs of the access methods that were created for this access grant.', + ), display_name: z.string().describe('Display name of the access grant.'), created_at: z .string() diff --git a/src/lib/seam/connect/models/access-grants/requested-access-method.ts b/src/lib/seam/connect/models/access-grants/requested-access-method.ts index 654eb30e..44b0a9ea 100644 --- a/src/lib/seam/connect/models/access-grants/requested-access-method.ts +++ b/src/lib/seam/connect/models/access-grants/requested-access-method.ts @@ -13,9 +13,11 @@ export const requested_access_method = z.object({ .describe( 'Date and time at which the requested access method was added to this access grant.', ), - provisioned_access_method_ids: z + created_access_method_ids: z .array(z.string().uuid()) - .describe('IDs of the locations to which access is being given.'), + .describe( + 'IDs of the access methods that were created for this requested access method.', + ), }).describe(` --- undocumented: Unreleased. diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 1b4031de..51449137 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -30604,6 +30604,12 @@ export default { format: 'uuid', type: 'string', }, + access_method_ids: { + description: + 'IDs of the access methods that were created for this access grant.', + items: { format: 'uuid', type: 'string' }, + type: 'array', + }, created_at: { description: 'Date and time at which the access grant was created.', @@ -30625,6 +30631,12 @@ export default { 'Access methods that the user requested for this access grant.', items: { properties: { + created_access_method_ids: { + description: + 'IDs of the access methods that were created for this requested access method.', + items: { format: 'uuid', type: 'string' }, + type: 'array', + }, created_at: { description: 'Date and time at which the requested access method was added to this access grant.', @@ -30642,18 +30654,12 @@ export default { enum: ['code', 'card', 'mobile_key'], type: 'string', }, - provisioned_access_method_ids: { - description: - 'IDs of the locations to which access is being given.', - items: { format: 'uuid', type: 'string' }, - type: 'array', - }, }, required: [ 'display_name', 'mode', 'created_at', - 'provisioned_access_method_ids', + 'created_access_method_ids', ], type: 'object', 'x-undocumented': 'Unreleased.', @@ -30679,6 +30685,7 @@ export default { 'user_identity_id', 'location_ids', 'requested_access_methods', + 'access_method_ids', 'display_name', 'created_at', ], @@ -30746,6 +30753,12 @@ export default { format: 'uuid', type: 'string', }, + access_method_ids: { + description: + 'IDs of the access methods that were created for this access grant.', + items: { format: 'uuid', type: 'string' }, + type: 'array', + }, created_at: { description: 'Date and time at which the access grant was created.', @@ -30767,6 +30780,12 @@ export default { 'Access methods that the user requested for this access grant.', items: { properties: { + created_access_method_ids: { + description: + 'IDs of the access methods that were created for this requested access method.', + items: { format: 'uuid', type: 'string' }, + type: 'array', + }, created_at: { description: 'Date and time at which the requested access method was added to this access grant.', @@ -30784,18 +30803,12 @@ export default { enum: ['code', 'card', 'mobile_key'], type: 'string', }, - provisioned_access_method_ids: { - description: - 'IDs of the locations to which access is being given.', - items: { format: 'uuid', type: 'string' }, - type: 'array', - }, }, required: [ 'display_name', 'mode', 'created_at', - 'provisioned_access_method_ids', + 'created_access_method_ids', ], type: 'object', 'x-undocumented': 'Unreleased.', @@ -30821,6 +30834,7 @@ export default { 'user_identity_id', 'location_ids', 'requested_access_methods', + 'access_method_ids', 'display_name', 'created_at', ], @@ -30907,6 +30921,12 @@ export default { format: 'uuid', type: 'string', }, + access_method_ids: { + description: + 'IDs of the access methods that were created for this access grant.', + items: { format: 'uuid', type: 'string' }, + type: 'array', + }, created_at: { description: 'Date and time at which the access grant was created.', @@ -30928,6 +30948,12 @@ export default { 'Access methods that the user requested for this access grant.', items: { properties: { + created_access_method_ids: { + description: + 'IDs of the access methods that were created for this requested access method.', + items: { format: 'uuid', type: 'string' }, + type: 'array', + }, created_at: { description: 'Date and time at which the requested access method was added to this access grant.', @@ -30945,18 +30971,12 @@ export default { enum: ['code', 'card', 'mobile_key'], type: 'string', }, - provisioned_access_method_ids: { - description: - 'IDs of the locations to which access is being given.', - items: { format: 'uuid', type: 'string' }, - type: 'array', - }, }, required: [ 'display_name', 'mode', 'created_at', - 'provisioned_access_method_ids', + 'created_access_method_ids', ], type: 'object', 'x-undocumented': 'Unreleased.', @@ -30982,6 +31002,7 @@ export default { 'user_identity_id', 'location_ids', 'requested_access_methods', + 'access_method_ids', 'display_name', 'created_at', ], @@ -31017,10 +31038,11 @@ export default { 'x-undocumented': 'Unreleased.', }, }, - '/unstable_access_grants/list_access_methods': { + '/unstable_access_methods/list': { post: { - description: 'List all access methods for an access grant.', - operationId: 'unstableAccessGrantsListAccessMethodsPost', + description: + 'List all access methods, usually filtered by access grant.', + operationId: 'unstableAccessMethodsListPost', requestBody: { content: { 'application/json': { @@ -31113,13 +31135,13 @@ export default { { console_session_with_workspace: [] }, { api_key: [] }, ], - summary: '/unstable_access_grants/list_access_methods', + summary: '/unstable_access_methods/list', tags: [], - 'x-fern-sdk-group-name': ['unstable_access_grants'], - 'x-fern-sdk-method-name': 'list_access_methods', + 'x-fern-sdk-group-name': ['unstable_access_methods'], + 'x-fern-sdk-method-name': 'list', 'x-fern-sdk-return-value': 'access_methods', 'x-response-key': 'access_methods', - 'x-title': 'Get the Access Methods for an Access Grant', + 'x-title': 'List Access Methods', 'x-undocumented': 'Unreleased.', }, }, diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index c82fc9f0..b03517aa 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -48468,9 +48468,11 @@ export interface Routes { mode: 'code' | 'card' | 'mobile_key' /** Date and time at which the requested access method was added to this access grant. */ created_at: string - /** IDs of the locations to which access is being given. */ - provisioned_access_method_ids: string[] + /** IDs of the access methods that were created for this requested access method. */ + created_access_method_ids: string[] }> + /** IDs of the access methods that were created for this access grant. */ + access_method_ids: string[] /** Display name of the access grant. */ display_name: string /** Date and time at which the access grant was created. */ @@ -48507,9 +48509,11 @@ export interface Routes { mode: 'code' | 'card' | 'mobile_key' /** Date and time at which the requested access method was added to this access grant. */ created_at: string - /** IDs of the locations to which access is being given. */ - provisioned_access_method_ids: string[] + /** IDs of the access methods that were created for this requested access method. */ + created_access_method_ids: string[] }> + /** IDs of the access methods that were created for this access grant. */ + access_method_ids: string[] /** Display name of the access grant. */ display_name: string /** Date and time at which the access grant was created. */ @@ -48551,9 +48555,11 @@ export interface Routes { mode: 'code' | 'card' | 'mobile_key' /** Date and time at which the requested access method was added to this access grant. */ created_at: string - /** IDs of the locations to which access is being given. */ - provisioned_access_method_ids: string[] + /** IDs of the access methods that were created for this requested access method. */ + created_access_method_ids: string[] }> + /** IDs of the access methods that were created for this access grant. */ + access_method_ids: string[] /** Display name of the access grant. */ display_name: string /** Date and time at which the access grant was created. */ @@ -48561,8 +48567,8 @@ export interface Routes { }> } } - '/unstable_access_grants/list_access_methods': { - route: '/unstable_access_grants/list_access_methods' + '/unstable_access_methods/list': { + route: '/unstable_access_methods/list' method: 'GET' | 'POST' queryParams: {} jsonBody: {} From 74c56a1c77d252a0c7232f1ca6fee95b5f72f504 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 17 Apr 2025 12:38:53 -0700 Subject: [PATCH 03/52] Update via seamapi/seam-connect@a33a05684e452e5446125a34d821a9823810fbf3 (#1681) --- src/lib/seam/connect/openapi.ts | 36 ++++++++++++++++------------- src/lib/seam/connect/route-types.ts | 4 +++- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 51449137..7d68250d 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -30528,21 +30528,6 @@ export default { }, { properties: { - desired_access_methods: { - items: { - properties: { - mode: { - description: - 'Access method mode. Supported values: `code`, `card`, `mobile_key`.', - enum: ['code', 'card', 'mobile_key'], - type: 'string', - }, - }, - required: ['mode'], - type: 'object', - }, - type: 'array', - }, ends_at: { description: 'Date and time at which the validity of the new grant 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`.', @@ -30567,6 +30552,10 @@ export default { items: { format: 'uuid', type: 'string' }, type: 'array', }, + name: { + description: 'Name of the location.', + type: 'string', + }, }, type: 'object', }, @@ -30576,6 +30565,21 @@ export default { items: { format: 'uuid', type: 'string' }, type: 'array', }, + requested_access_methods: { + items: { + properties: { + mode: { + description: + 'Access method mode. Supported values: `code`, `card`, `mobile_key`.', + enum: ['code', 'card', 'mobile_key'], + type: 'string', + }, + }, + required: ['mode'], + type: 'object', + }, + type: 'array', + }, starts_at: { description: 'Date and time at which the validity of the new grant starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', @@ -30583,7 +30587,7 @@ export default { type: 'string', }, }, - required: ['desired_access_methods'], + required: ['requested_access_methods'], type: 'object', }, ], diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index b03517aa..69c25f96 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -48433,13 +48433,15 @@ export interface Routes { /** When used, creates a new location with the given entrances and devices, and gives the user access to this location. */ location?: | { + /** Name of the location. */ + name?: string | undefined /** Set of IDs of the [entrances](https://docs.seam.co/latest/api/acs/systems/list) to add to the location to which access is being granted. */ acs_entrance_ids?: string[] /** Set of IDs of the [devices](https://docs.seam.co/latest/api/devices/list) to add to the location to which access is being granted. */ device_ids?: string[] } | undefined - desired_access_methods: Array<{ + requested_access_methods: Array<{ /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ mode: 'code' | 'card' | 'mobile_key' }> From 72ba51427b1ae741a152b9b3a94063259f0d2370 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Fri, 18 Apr 2025 09:10:23 -0700 Subject: [PATCH 04/52] feat: Add lock simulation endpoints (#1685) Update via seamapi/seam-connect@a1f5d5147d8388852b273e30e9e2f19183cf03ce --- .../models/action-attempts/action-attempt.ts | 4 + .../simulate-keypad-code-entry.ts | 39 + .../simulate-manual-lock-via-keypad.ts | 37 + src/lib/seam/connect/openapi.ts | 390 +++-- src/lib/seam/connect/route-types.ts | 1353 ++++++++++++++++- 5 files changed, 1707 insertions(+), 116 deletions(-) create mode 100644 src/lib/seam/connect/models/action-attempts/simulate-keypad-code-entry.ts create mode 100644 src/lib/seam/connect/models/action-attempts/simulate-manual-lock-via-keypad.ts diff --git a/src/lib/seam/connect/models/action-attempts/action-attempt.ts b/src/lib/seam/connect/models/action-attempts/action-attempt.ts index 85fdb07a..223c8bce 100644 --- a/src/lib/seam/connect/models/action-attempts/action-attempt.ts +++ b/src/lib/seam/connect/models/action-attempts/action-attempt.ts @@ -8,6 +8,8 @@ import { reset_sandbox_workspace_action_attempt } from './reset-sandbox-workspac import { scan_credential_action_attempt } from './scan-credential.js' import { set_fan_mode_action_attempt } from './set-fan-mode.js' import { set_hvac_mode_action_attempt } from './set-hvac-mode.js' +import { simulate_keypad_code_entry_action_attempt } from './simulate-keypad-code-entry.js' +import { simulate_manual_lock_via_keypad_action_attempt } from './simulate-manual-lock-via-keypad.js' import { unlock_door_action_attempt } from './unlock-door.js' export const action_attempt = z.union([ @@ -19,6 +21,8 @@ export const action_attempt = z.union([ ...set_fan_mode_action_attempt.options, ...set_hvac_mode_action_attempt.options, ...activate_climate_preset_action_attempt.options, + ...simulate_keypad_code_entry_action_attempt.options, + ...simulate_manual_lock_via_keypad_action_attempt.options, ...deprecated_action_attempts, ]).describe(` --- diff --git a/src/lib/seam/connect/models/action-attempts/simulate-keypad-code-entry.ts b/src/lib/seam/connect/models/action-attempts/simulate-keypad-code-entry.ts new file mode 100644 index 00000000..e9b82d5d --- /dev/null +++ b/src/lib/seam/connect/models/action-attempts/simulate-keypad-code-entry.ts @@ -0,0 +1,39 @@ +import { z } from 'zod' + +import { + common_failed_action_attempt, + common_pending_action_attempt, + common_succeeded_action_attempt, +} from './common.js' + +const action_type = z.literal('SIMULATE_KEYPAD_CODE_ENTRY') + +const error = z.object({ + type: z.string(), + message: z.string(), +}) + +const result = z.object({}) + +export const simulate_keypad_code_entry_action_attempt = z.discriminatedUnion( + 'status', + [ + common_pending_action_attempt + .extend({ + action_type, + }) + .describe('Simulating keypad code entry.'), + common_succeeded_action_attempt + .extend({ + action_type, + result, + }) + .describe('Simulating keypad code entry succeeded.'), + common_failed_action_attempt + .extend({ + action_type, + error, + }) + .describe('Simulating keypad code entry failed.'), + ], +) diff --git a/src/lib/seam/connect/models/action-attempts/simulate-manual-lock-via-keypad.ts b/src/lib/seam/connect/models/action-attempts/simulate-manual-lock-via-keypad.ts new file mode 100644 index 00000000..9e4ca6da --- /dev/null +++ b/src/lib/seam/connect/models/action-attempts/simulate-manual-lock-via-keypad.ts @@ -0,0 +1,37 @@ +import { z } from 'zod' + +import { + common_failed_action_attempt, + common_pending_action_attempt, + common_succeeded_action_attempt, +} from './common.js' + +const action_type = z.literal('SIMULATE_MANUAL_LOCK_VIA_KEYPAD') + +const error = z.object({ + type: z.string(), + message: z.string(), +}) + +const result = z.object({}) + +export const simulate_manual_lock_via_keypad_action_attempt = + z.discriminatedUnion('status', [ + common_pending_action_attempt + .extend({ + action_type, + }) + .describe('Simulating manual lock via keypad.'), + common_succeeded_action_attempt + .extend({ + action_type, + result, + }) + .describe('Simulating manual lock via keypad succeeded.'), + common_failed_action_attempt + .extend({ + action_type, + error, + }) + .describe('Simulating manual lock via keypad failed.'), + ]) diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 7d68250d..89de5dfb 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -5845,6 +5845,202 @@ export default { ], type: 'object', }, + { + description: 'Simulating keypad code entry.', + properties: { + action_attempt_id: { + description: 'ID of the action attempt.', + format: 'uuid', + type: 'string', + }, + action_type: { + enum: ['SIMULATE_KEYPAD_CODE_ENTRY'], + type: 'string', + }, + error: { + description: + 'Errors associated with the action attempt. Null for pending action attempts.', + nullable: true, + }, + result: { + description: + 'Result of the action attempt. Null for pending action attempts.', + nullable: true, + }, + status: { enum: ['pending'], type: 'string' }, + }, + required: [ + 'action_attempt_id', + 'status', + 'result', + 'error', + 'action_type', + ], + type: 'object', + }, + { + description: 'Simulating keypad code entry succeeded.', + properties: { + action_attempt_id: { + description: 'ID of the action attempt.', + format: 'uuid', + type: 'string', + }, + action_type: { + enum: ['SIMULATE_KEYPAD_CODE_ENTRY'], + type: 'string', + }, + error: { + description: + 'Errors associated with the action attempt. Null for successful action attempts.', + nullable: true, + }, + result: { properties: {}, type: 'object' }, + status: { enum: ['success'], type: 'string' }, + }, + required: [ + 'action_attempt_id', + 'status', + 'error', + 'action_type', + 'result', + ], + type: 'object', + }, + { + description: 'Simulating keypad code entry failed.', + properties: { + action_attempt_id: { + description: 'ID of the action attempt.', + format: 'uuid', + type: 'string', + }, + action_type: { + enum: ['SIMULATE_KEYPAD_CODE_ENTRY'], + type: 'string', + }, + error: { + properties: { + message: { type: 'string' }, + type: { type: 'string' }, + }, + required: ['type', 'message'], + type: 'object', + }, + result: { + description: + 'Result of the action attempt. Null for failed action attempts.', + nullable: true, + }, + status: { enum: ['error'], type: 'string' }, + }, + required: [ + 'action_attempt_id', + 'status', + 'result', + 'action_type', + 'error', + ], + type: 'object', + }, + { + description: 'Simulating manual lock via keypad.', + properties: { + action_attempt_id: { + description: 'ID of the action attempt.', + format: 'uuid', + type: 'string', + }, + action_type: { + enum: ['SIMULATE_MANUAL_LOCK_VIA_KEYPAD'], + type: 'string', + }, + error: { + description: + 'Errors associated with the action attempt. Null for pending action attempts.', + nullable: true, + }, + result: { + description: + 'Result of the action attempt. Null for pending action attempts.', + nullable: true, + }, + status: { enum: ['pending'], type: 'string' }, + }, + required: [ + 'action_attempt_id', + 'status', + 'result', + 'error', + 'action_type', + ], + type: 'object', + }, + { + description: 'Simulating manual lock via keypad succeeded.', + properties: { + action_attempt_id: { + description: 'ID of the action attempt.', + format: 'uuid', + type: 'string', + }, + action_type: { + enum: ['SIMULATE_MANUAL_LOCK_VIA_KEYPAD'], + type: 'string', + }, + error: { + description: + 'Errors associated with the action attempt. Null for successful action attempts.', + nullable: true, + }, + result: { properties: {}, type: 'object' }, + status: { enum: ['success'], type: 'string' }, + }, + required: [ + 'action_attempt_id', + 'status', + 'error', + 'action_type', + 'result', + ], + type: 'object', + }, + { + description: 'Simulating manual lock via keypad failed.', + properties: { + action_attempt_id: { + description: 'ID of the action attempt.', + format: 'uuid', + type: 'string', + }, + action_type: { + enum: ['SIMULATE_MANUAL_LOCK_VIA_KEYPAD'], + type: 'string', + }, + error: { + properties: { + message: { type: 'string' }, + type: { type: 'string' }, + }, + required: ['type', 'message'], + type: 'object', + }, + result: { + description: + 'Result of the action attempt. Null for failed action attempts.', + nullable: true, + }, + status: { enum: ['error'], type: 'string' }, + }, + required: [ + 'action_attempt_id', + 'status', + 'result', + 'action_type', + 'error', + ], + type: 'object', + }, { properties: { action_attempt_id: { @@ -24706,98 +24902,6 @@ export default { 'x-response-key': 'device_providers', }, }, - '/devices/simulate/access_code_lock': { - post: { - operationId: 'devicesSimulateAccessCodeLockPost', - requestBody: { - content: { - 'application/json': { - schema: { - properties: { - access_code_id: { format: 'uuid', type: 'string' }, - device_id: { format: 'uuid', type: 'string' }, - }, - required: ['device_id', 'access_code_id'], - type: 'object', - }, - }, - }, - }, - responses: { - 200: { - content: { - 'application/json': { - schema: { - properties: { ok: { type: 'boolean' } }, - required: ['ok'], - type: 'object', - }, - }, - }, - description: 'OK', - }, - 400: { description: 'Bad Request' }, - 401: { description: 'Unauthorized' }, - }, - security: [ - { api_key: [] }, - { pat_with_workspace: [] }, - { console_session_with_workspace: [] }, - ], - summary: '/devices/simulate/access_code_lock', - tags: ['/devices'], - 'x-fern-sdk-group-name': ['devices', 'simulate'], - 'x-fern-sdk-method-name': 'access_code_lock', - 'x-response-key': null, - 'x-undocumented': 'Unreleased.', - }, - }, - '/devices/simulate/access_code_unlock': { - post: { - operationId: 'devicesSimulateAccessCodeUnlockPost', - requestBody: { - content: { - 'application/json': { - schema: { - properties: { - access_code_id: { format: 'uuid', type: 'string' }, - device_id: { format: 'uuid', type: 'string' }, - }, - required: ['device_id', 'access_code_id'], - type: 'object', - }, - }, - }, - }, - responses: { - 200: { - content: { - 'application/json': { - schema: { - properties: { ok: { type: 'boolean' } }, - required: ['ok'], - type: 'object', - }, - }, - }, - description: 'OK', - }, - 400: { description: 'Bad Request' }, - 401: { description: 'Unauthorized' }, - }, - security: [ - { api_key: [] }, - { pat_with_workspace: [] }, - { console_session_with_workspace: [] }, - ], - summary: '/devices/simulate/access_code_unlock', - tags: ['/devices'], - 'x-fern-sdk-group-name': ['devices', 'simulate'], - 'x-fern-sdk-method-name': 'access_code_unlock', - 'x-response-key': null, - 'x-undocumented': 'Unreleased.', - }, - }, '/devices/simulate/connect': { post: { operationId: 'devicesSimulateConnectPost', @@ -26149,6 +26253,108 @@ export default { 'x-response-key': 'action_attempt', }, }, + '/locks/simulate/keypad_code_entry': { + post: { + operationId: 'locksSimulateKeypadCodeEntryPost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + code: { type: 'string' }, + device_id: { format: 'uuid', type: 'string' }, + }, + required: ['device_id', 'code'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { + action_attempt: { + $ref: '#/components/schemas/access_code', + }, + ok: { type: 'boolean' }, + }, + required: ['ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { api_key: [] }, + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + ], + summary: '/locks/simulate/keypad_code_entry', + tags: ['/locks'], + 'x-action-attempt-type': 'SIMULATE_KEYPAD_CODE_ENTRY', + 'x-fern-sdk-group-name': ['locks', 'simulate'], + 'x-fern-sdk-method-name': 'keypad_code_entry', + 'x-fern-sdk-return-value': 'action_attempt', + 'x-response-key': 'action_attempt', + 'x-undocumented': 'Unreleased.', + }, + }, + '/locks/simulate/manual_lock_via_keypad': { + post: { + operationId: 'locksSimulateManualLockViaKeypadPost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { device_id: { format: 'uuid', type: 'string' } }, + required: ['device_id'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { + action_attempt: { + $ref: '#/components/schemas/access_code', + }, + ok: { type: 'boolean' }, + }, + required: ['ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { api_key: [] }, + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + ], + summary: '/locks/simulate/manual_lock_via_keypad', + tags: ['/locks'], + 'x-action-attempt-type': 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD', + 'x-fern-sdk-group-name': ['locks', 'simulate'], + 'x-fern-sdk-method-name': 'manual_lock_via_keypad', + 'x-response-key': null, + 'x-undocumented': 'Unreleased.', + }, + }, '/locks/unlock_door': { post: { operationId: 'locksUnlockDoorPost', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 69c25f96..49bae7bf 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -933,6 +933,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -3102,6 +3164,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -6810,6 +6934,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -8983,6 +9169,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -12343,6 +12591,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -13571,6 +13881,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -16984,6 +17356,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -18113,6 +18547,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -21240,30 +21736,6 @@ export interface Routes { }> } } - '/devices/simulate/access_code_lock': { - route: '/devices/simulate/access_code_lock' - method: 'POST' - queryParams: {} - jsonBody: { - device_id: string - access_code_id: string - } - commonParams: {} - formData: {} - jsonResponse: {} - } - '/devices/simulate/access_code_unlock': { - route: '/devices/simulate/access_code_unlock' - method: 'POST' - queryParams: {} - jsonBody: { - device_id: string - access_code_id: string - } - commonParams: {} - formData: {} - jsonResponse: {} - } '/devices/simulate/connect': { route: '/devices/simulate/connect' method: 'POST' @@ -29925,6 +30397,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -30152,6 +30686,33 @@ export interface Routes { } } } + '/locks/simulate/keypad_code_entry': { + route: '/locks/simulate/keypad_code_entry' + method: 'POST' + queryParams: {} + jsonBody: { + device_id: string + code: string + } + commonParams: {} + formData: {} + jsonResponse: { + action_attempt?: any + } + } + '/locks/simulate/manual_lock_via_keypad': { + route: '/locks/simulate/manual_lock_via_keypad' + method: 'POST' + queryParams: {} + jsonBody: { + device_id: string + } + commonParams: {} + formData: {} + jsonResponse: { + action_attempt?: any + } + } '/locks/unlock_door': { route: '/locks/unlock_door' method: 'POST' @@ -31056,6 +31617,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -34146,6 +34769,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -35288,6 +35973,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -36469,6 +37216,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -38108,6 +38917,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -39245,6 +40116,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -41368,6 +42301,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -42509,6 +43504,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -45577,6 +46634,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -46900,6 +48019,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -48064,6 +49245,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -52384,6 +53627,68 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string From 4e2b29a7ee09163eb4f7721be98c4c457b4bd479 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Fri, 18 Apr 2025 16:11:21 +0000 Subject: [PATCH 05/52] 1.385.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b6c2f13a..d3c6c9c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.384.0", + "version": "1.385.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.384.0", + "version": "1.385.0", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.39.0", diff --git a/package.json b/package.json index cc610730..3b4881bd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.384.0", + "version": "1.385.0", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From b74bcf8cf9bb5377df2ee00bb1a8a492a45a67b5 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Fri, 18 Apr 2025 10:33:52 -0700 Subject: [PATCH 06/52] Update via seamapi/seam-connect@7d1519550c66351ad73c97b1fdeb8c75017ac21c (#1686) --- src/lib/seam/connect/openapi.ts | 11 +- src/lib/seam/connect/route-types.ts | 2362 ++++++++++++++++++++++++++- 2 files changed, 2366 insertions(+), 7 deletions(-) diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 89de5dfb..bd91d2f0 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -26277,11 +26277,11 @@ export default { schema: { properties: { action_attempt: { - $ref: '#/components/schemas/access_code', + $ref: '#/components/schemas/action_attempt', }, ok: { type: 'boolean' }, }, - required: ['ok'], + required: ['action_attempt', 'ok'], type: 'object', }, }, @@ -26327,11 +26327,11 @@ export default { schema: { properties: { action_attempt: { - $ref: '#/components/schemas/access_code', + $ref: '#/components/schemas/action_attempt', }, ok: { type: 'boolean' }, }, - required: ['ok'], + required: ['action_attempt', 'ok'], type: 'object', }, }, @@ -26351,7 +26351,8 @@ export default { 'x-action-attempt-type': 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD', 'x-fern-sdk-group-name': ['locks', 'simulate'], 'x-fern-sdk-method-name': 'manual_lock_via_keypad', - 'x-response-key': null, + 'x-fern-sdk-return-value': 'action_attempt', + 'x-response-key': 'action_attempt', 'x-undocumented': 'Unreleased.', }, }, diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 49bae7bf..2cd6a3cf 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -30697,7 +30697,1186 @@ export interface Routes { commonParams: {} formData: {} jsonResponse: { - action_attempt?: any + /** */ + action_attempt: + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'LOCK_DOOR' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'LOCK_DOOR' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'LOCK_DOOR' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UNLOCK_DOOR' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UNLOCK_DOOR' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UNLOCK_DOOR' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SCAN_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SCAN_CREDENTIAL' + result: { + /** Snapshot of credential data read from physical encoder. */ + acs_credential_on_encoder: { + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string | null + is_issued: boolean | null + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) becomes usable. */ + starts_at: string | null + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) will stop being usable. */ + ends_at: string | null + /** A number or string that physically identifies the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number: string | null + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + /** Card ID for the Visionline card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_id: string + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is cancelled. */ + cancelled: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is discarded. */ + discarded: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is expired. */ + expired: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is overwritten. */ + overwritten: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is overridden. */ + overridden?: boolean | undefined + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is pending auto-update. */ + pending_auto_update: boolean + /** Format of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_format: 'TLCode' | 'rfid48' + /** Holden of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_holder?: string | undefined + /** Number of issued cards associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + number_of_issued_cards: number + /** IDs of the guest [entrances](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + guest_acs_entrance_ids?: string[] | undefined + /** IDs of the common [entrances](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + common_acs_entrance_ids?: string[] | undefined + } + | undefined + } | null + /** Matching acs_credential currently encoded on this card. */ + acs_credential_on_seam: + | ( + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: + | string[] + | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: + | string[] + | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + ) + | null + warnings: Array<{ + warning_code: + | 'acs_credential_on_encoder_out_of_sync' + | 'acs_credential_on_seam_not_found' + warning_message: string + }> + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SCAN_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + /** If an encoding attempt was successful, includes the `acs_credential` data that was encoded onto the card. */ + result: + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'RESET_SANDBOX_WORKSPACE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SET_FAN_MODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SET_FAN_MODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SET_FAN_MODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SET_HVAC_MODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SET_HVAC_MODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SET_HVAC_MODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SYNC_ACCESS_CODES' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SYNC_ACCESS_CODES' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SYNC_ACCESS_CODES' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'CREATE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'CREATE_ACCESS_CODE' + result: { + access_code?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'CREATE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'DELETE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'DELETE_ACCESS_CODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'DELETE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UPDATE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UPDATE_ACCESS_CODE' + result: { + access_code?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UPDATE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'CREATE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'CREATE_NOISE_THRESHOLD' + result: { + noise_threshold?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'CREATE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'DELETE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'DELETE_NOISE_THRESHOLD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'DELETE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UPDATE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UPDATE_NOISE_THRESHOLD' + result: { + noise_threshold?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UPDATE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } } } '/locks/simulate/manual_lock_via_keypad': { @@ -30710,7 +31889,1186 @@ export interface Routes { commonParams: {} formData: {} jsonResponse: { - action_attempt?: any + /** */ + action_attempt: + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'LOCK_DOOR' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'LOCK_DOOR' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'LOCK_DOOR' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UNLOCK_DOOR' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UNLOCK_DOOR' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UNLOCK_DOOR' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SCAN_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SCAN_CREDENTIAL' + result: { + /** Snapshot of credential data read from physical encoder. */ + acs_credential_on_encoder: { + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string | null + is_issued: boolean | null + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) becomes usable. */ + starts_at: string | null + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) will stop being usable. */ + ends_at: string | null + /** A number or string that physically identifies the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number: string | null + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + /** Card ID for the Visionline card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_id: string + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is cancelled. */ + cancelled: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is discarded. */ + discarded: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is expired. */ + expired: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is overwritten. */ + overwritten: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is overridden. */ + overridden?: boolean | undefined + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is pending auto-update. */ + pending_auto_update: boolean + /** Format of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_format: 'TLCode' | 'rfid48' + /** Holden of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_holder?: string | undefined + /** Number of issued cards associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + number_of_issued_cards: number + /** IDs of the guest [entrances](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + guest_acs_entrance_ids?: string[] | undefined + /** IDs of the common [entrances](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + common_acs_entrance_ids?: string[] | undefined + } + | undefined + } | null + /** Matching acs_credential currently encoded on this card. */ + acs_credential_on_seam: + | ( + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: + | string[] + | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: + | string[] + | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + ) + | null + warnings: Array<{ + warning_code: + | 'acs_credential_on_encoder_out_of_sync' + | 'acs_credential_on_seam_not_found' + warning_message: string + }> + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SCAN_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + /** If an encoding attempt was successful, includes the `acs_credential` data that was encoded onto the card. */ + result: + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'RESET_SANDBOX_WORKSPACE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SET_FAN_MODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SET_FAN_MODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SET_FAN_MODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SET_HVAC_MODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SET_HVAC_MODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SET_HVAC_MODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SYNC_ACCESS_CODES' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SYNC_ACCESS_CODES' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SYNC_ACCESS_CODES' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'CREATE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'CREATE_ACCESS_CODE' + result: { + access_code?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'CREATE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'DELETE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'DELETE_ACCESS_CODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'DELETE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UPDATE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UPDATE_ACCESS_CODE' + result: { + access_code?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UPDATE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'CREATE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'CREATE_NOISE_THRESHOLD' + result: { + noise_threshold?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'CREATE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'DELETE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'DELETE_NOISE_THRESHOLD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'DELETE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UPDATE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UPDATE_NOISE_THRESHOLD' + result: { + noise_threshold?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UPDATE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } } } '/locks/unlock_door': { From 5efda0701278e70da53cea38f2cb892694e3c34a Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Fri, 18 Apr 2025 17:02:37 -0700 Subject: [PATCH 07/52] Update via seamapi/seam-connect@56194d9a42e2cfaab13b9fea6aa8f6811a57b90c (#1687) --- src/lib/seam/connect/openapi.ts | 7 +++++++ src/lib/seam/connect/route-types.ts | 2 ++ 2 files changed, 9 insertions(+) diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index bd91d2f0..961bff2c 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -32681,6 +32681,13 @@ export default { 'application/json': { schema: { properties: { + max_use_count: { + default: 1, + description: + 'The maximum number of times the instant key can be used. Defaults to 1.', + format: 'float', + type: 'number', + }, user_identity_id: { description: 'ID of the user identity for which you want to generate an instant key.', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 2cd6a3cf..4685b210 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -52539,6 +52539,8 @@ export interface Routes { commonParams: { /** ID of the user identity for which you want to generate an instant key. */ user_identity_id: string + /** The maximum number of times the instant key can be used. Defaults to 1. */ + max_use_count?: number } formData: {} jsonResponse: { From af52d0f86d08aa563853fe74b655b0cdc7b22507 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Apr 2025 09:38:28 +0000 Subject: [PATCH 08/52] test(deps-dev): Bump @seamapi/blueprint from 0.39.0 to 0.40.0 in the seam group (#1688) test(deps-dev): Bump @seamapi/blueprint in the seam group Bumps the seam group with 1 update: [@seamapi/blueprint](https://github.com/seamapi/blueprint). Updates `@seamapi/blueprint` from 0.39.0 to 0.40.0 - [Release notes](https://github.com/seamapi/blueprint/releases) - [Changelog](https://github.com/seamapi/blueprint/blob/main/.releaserc.json) - [Commits](https://github.com/seamapi/blueprint/compare/v0.39.0...v0.40.0) --- updated-dependencies: - dependency-name: "@seamapi/blueprint" dependency-version: 0.40.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: seam ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index d3c6c9c6..e739ad0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.385.0", "license": "MIT", "devDependencies": { - "@seamapi/blueprint": "^0.39.0", + "@seamapi/blueprint": "^0.40.0", "@types/node": "^20.8.10", "concurrently": "^8.2.0", "del-cli": "^5.0.0", @@ -1130,9 +1130,9 @@ "peer": true }, "node_modules/@seamapi/blueprint": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-0.39.0.tgz", - "integrity": "sha512-euecWvCPaWjDQZ4usztpnlomtpgIzz01BYOgU5UA8gTHGPvoH07s6CECUwLWNNr3ZHOzFyAv3DBns3pKPNd7VA==", + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-0.40.0.tgz", + "integrity": "sha512-eCWAVVcqP1x+xmbcPj5yB/w1aflF/Uo3d27E27N2CrK/KcOU2QtuSHXHuHO01KttSBG10d+4ncWiRijhwFZ18A==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 3b4881bd..4c4fa3ff 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "zod": "^3.24.0" }, "devDependencies": { - "@seamapi/blueprint": "^0.39.0", + "@seamapi/blueprint": "^0.40.0", "@types/node": "^20.8.10", "concurrently": "^8.2.0", "del-cli": "^5.0.0", From f0d2ba80e16305ef394f4004aa086f9982d374c5 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 23 Apr 2025 06:49:45 -0700 Subject: [PATCH 09/52] feat: add workspace/update and update some types (#1710) Update via seamapi/seam-connect@5e7b4a300c316d3fdcf45bf9b276abbbf14b207a --- src/lib/seam/connect/models/colors.ts | 9 ++ .../connect/models/events/access-grants.ts | 92 +++++++++++ .../connect/models/events/access-methods.ts | 51 ++++++ .../connect/models/workspaces/workspace.ts | 9 ++ src/lib/seam/connect/openapi.ts | 148 +++++++++++++++++- src/lib/seam/connect/route-types.ts | 58 +++++++ 6 files changed, 364 insertions(+), 3 deletions(-) create mode 100644 src/lib/seam/connect/models/colors.ts create mode 100644 src/lib/seam/connect/models/events/access-grants.ts create mode 100644 src/lib/seam/connect/models/events/access-methods.ts diff --git a/src/lib/seam/connect/models/colors.ts b/src/lib/seam/connect/models/colors.ts new file mode 100644 index 00000000..73c2c6aa --- /dev/null +++ b/src/lib/seam/connect/models/colors.ts @@ -0,0 +1,9 @@ +import { z } from 'zod' + +export const hex_color_code = z.string().refine((value) => { + if (value != null) { + return /^#[\da-fa-z]{3,6}$/i.test(value) + } + + return true +}, 'Must be a hex color') diff --git a/src/lib/seam/connect/models/events/access-grants.ts b/src/lib/seam/connect/models/events/access-grants.ts new file mode 100644 index 00000000..8198efba --- /dev/null +++ b/src/lib/seam/connect/models/events/access-grants.ts @@ -0,0 +1,92 @@ +import { z } from 'zod' + +import { common_event } from './common.js' + +const access_grant_event = common_event.extend({ + access_grant_id: z.string().uuid().describe('ID of the access grant.'), +}) + +export const access_grant_created_event = access_grant_event.extend({ + event_type: z.literal('access_grant.created'), +}).describe(` + --- + route_path: /access_grants + --- + An access grant was created. + `) + +export type AccessGrantCreatedEvent = z.infer + +export const access_grant_deleted_event = access_grant_event.extend({ + event_type: z.literal('access_grant.deleted'), +}).describe(` + --- + route_path: /access_grants + --- + An access grant was deleted. + `) + +export type AccessGrantDeleteddEvent = z.infer< + typeof access_grant_deleted_event +> + +export const access_grant_access_granted_to_all_doors_event = + access_grant_event.extend({ + event_type: z.literal('access_grant.access_granted_to_all_doors'), + }).describe(` + --- + route_path: /access_grants + --- + All access requested for an access grant was successfully granted. + `) + +export type AccessGrantAccessGrantedToAllDoorsEvent = z.infer< + typeof access_grant_access_granted_to_all_doors_event +> + +const acs_entrance_id = z + .string() + .uuid() + .describe( + 'ID of the door, an [ACS entrance](https://docs.seam.co/latest/capability-guides/retrieving-entrance-details).', + ) + +export const access_grant_access_granted_to_door_event = + access_grant_event.extend({ + event_type: z.literal('access_grant.access_granted_to_door'), + acs_entrance_id, + }).describe(` + --- + route_path: /access_grants + --- + Access requested as part of an access grant to a particular door was successfully granted. + `) + +export type AccessGrantAccessGrantedToDoorEvent = z.infer< + typeof access_grant_access_granted_to_door_event +> + +export const access_grant_access_to_door_lost_event = access_grant_event.extend( + { + event_type: z.literal('access_grant.access_to_door_lost'), + acs_entrance_id, + }, +).describe(` + --- + route_path: /access_grants + --- + Access to a particular door that was requested as part of an access grant was lost. + `) + +export type AccessGrantAccessToDoorLostEvent = z.infer< + typeof access_grant_access_to_door_lost_event +> + +export const access_code_events = [ + access_grant_created_event, + access_grant_deleted_event, + access_grant_access_granted_to_all_doors_event, + access_grant_access_granted_to_door_event, + access_grant_access_to_door_lost_event, + access_grant_deleted_event, +] as const diff --git a/src/lib/seam/connect/models/events/access-methods.ts b/src/lib/seam/connect/models/events/access-methods.ts new file mode 100644 index 00000000..335879a2 --- /dev/null +++ b/src/lib/seam/connect/models/events/access-methods.ts @@ -0,0 +1,51 @@ +import { z } from 'zod' + +import { common_event } from './common.js' + +const access_method_event = common_event.extend({ + access_method_id: z.string().uuid().describe('ID of the access method.'), +}) + +export const access_method_issued_event = access_method_event.extend({ + event_type: z.literal('access_method.issued'), +}).describe(` + --- + route_path: /access_methods + --- + An access method was issued. + `) + +export type AccessMethodIssuedEvent = z.infer + +export const access_method_card_encoding_required_event = + access_method_event.extend({ + event_type: z.literal('access_method.card_encoding_required'), + }).describe(` + --- + route_path: /access_methods + --- + An access method representing a physical card requires encoding. + `) + +export type AccessMethodCardEncodingRequiredEvent = z.infer< + typeof access_method_card_encoding_required_event +> + +export const access_method_revoked_event = access_method_event.extend({ + event_type: z.literal('access_method.revoked'), +}).describe(` + --- + route_path: /access_methods + --- + An access method was revoked. + `) + +export type AccessMethodRevokedEvent = z.infer< + typeof access_method_revoked_event +> + +export const access_code_events = [ + access_method_issued_event, + access_method_revoked_event, + access_method_card_encoding_required_event, +] as const diff --git a/src/lib/seam/connect/models/workspaces/workspace.ts b/src/lib/seam/connect/models/workspaces/workspace.ts index fad952cd..e7888b9d 100644 --- a/src/lib/seam/connect/models/workspaces/workspace.ts +++ b/src/lib/seam/connect/models/workspaces/workspace.ts @@ -1,10 +1,19 @@ import { z } from 'zod' +import { hex_color_code } from '../colors.js' + export const workspace = z.object({ workspace_id: z.string().uuid(), name: z.string(), company_name: z.string(), is_sandbox: z.boolean(), + connect_webview_customization: z.object({ + primary_button_color: hex_color_code.optional(), + primary_button_text_color: hex_color_code.optional(), + success_message: z.string().optional(), + logo_shape: z.enum(['circle', 'square']).optional(), + inviter_logo_url: z.string().optional(), + }), is_suspended: z .boolean() .describe('True if a sandbox workspace has not been accessed in 14 days'), diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 961bff2c..9b4f79b5 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -17563,6 +17563,16 @@ export default { type: 'string', 'x-deprecated': 'use company_name', }, + connect_webview_customization: { + properties: { + inviter_logo_url: { type: 'string' }, + logo_shape: { enum: ['circle', 'square'], type: 'string' }, + primary_button_color: { type: 'string' }, + primary_button_text_color: { type: 'string' }, + success_message: { type: 'string' }, + }, + type: 'object', + }, is_sandbox: { type: 'boolean' }, is_suspended: { description: @@ -17577,6 +17587,7 @@ export default { 'name', 'company_name', 'is_sandbox', + 'connect_webview_customization', 'is_suspended', 'connect_partner_name', ], @@ -33710,15 +33721,49 @@ export default { type: 'string', 'x-deprecated': 'use company_name', }, + connect_webview_customization: { + properties: { + logo_shape: { + enum: ['circle', 'square'], + nullable: true, + type: 'string', + }, + primary_button_color: { nullable: true, type: 'string' }, + primary_button_text_color: { + nullable: true, + type: 'string', + }, + success_message: { nullable: true, type: 'string' }, + }, + type: 'object', + }, is_sandbox: { default: false, type: 'boolean' }, name: { type: 'string' }, webview_logo_shape: { + deprecated: true, enum: ['circle', 'square'], type: 'string', + 'x-deprecated': + 'Use `connect_webview_customization.webview_logo_shape` instead.', + }, + webview_primary_button_color: { + deprecated: true, + type: 'string', + 'x-deprecated': + 'Use `connect_webview_customization.webview_primary_button_color` instead.', + }, + webview_primary_button_text_color: { + deprecated: true, + type: 'string', + 'x-deprecated': + 'Use `connect_webview_customization.webview_primary_button_text_color` instead.', + }, + webview_success_message: { + deprecated: true, + type: 'string', + 'x-deprecated': + 'Use `connect_webview_customization.webview_success_message` instead.', }, - webview_primary_button_color: { type: 'string' }, - webview_primary_button_text_color: { type: 'string' }, - webview_success_message: { type: 'string' }, }, required: ['name'], type: 'object', @@ -33942,6 +33987,103 @@ export default { 'x-response-key': 'action_attempt', }, }, + '/workspaces/update': { + patch: { + operationId: 'workspacesUpdatePatch', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + connect_partner_name: { type: 'string' }, + connect_webview_customization: { + properties: { + logo_shape: { + enum: ['circle', 'square'], + nullable: true, + type: 'string', + }, + primary_button_color: { nullable: true, type: 'string' }, + primary_button_text_color: { + nullable: true, + type: 'string', + }, + success_message: { nullable: true, type: 'string' }, + }, + type: 'object', + }, + is_suspended: { type: 'boolean' }, + name: { type: 'string' }, + }, + type: 'object', + }, + }, + }, + }, + responses: { + 200: { description: 'OK' }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { api_key: [] }, + { console_session_with_workspace: [] }, + { pat_with_workspace: [] }, + ], + summary: '/workspaces/update', + tags: ['/workspaces'], + 'x-fern-ignore': true, + 'x-response-key': null, + }, + post: { + operationId: 'workspacesUpdatePost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + connect_partner_name: { type: 'string' }, + connect_webview_customization: { + properties: { + logo_shape: { + enum: ['circle', 'square'], + nullable: true, + type: 'string', + }, + primary_button_color: { nullable: true, type: 'string' }, + primary_button_text_color: { + nullable: true, + type: 'string', + }, + success_message: { nullable: true, type: 'string' }, + }, + type: 'object', + }, + is_suspended: { type: 'boolean' }, + name: { type: 'string' }, + }, + type: 'object', + }, + }, + }, + }, + responses: { + 200: { description: 'OK' }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { api_key: [] }, + { console_session_with_workspace: [] }, + { pat_with_workspace: [] }, + ], + summary: '/workspaces/update', + tags: ['/workspaces'], + 'x-fern-sdk-group-name': ['workspaces'], + 'x-fern-sdk-method-name': 'update', + 'x-response-key': null, + }, + }, }, servers: [{ url: 'https://connect.getseam.com' }], tags: [ diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 4685b210..f1a976db 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -55021,10 +55021,26 @@ export interface Routes { * @deprecated use company_name */ connect_partner_name?: ((string | null) | null) | undefined is_sandbox?: boolean + /** + * @deprecated Use `connect_webview_customization.webview_primary_button_color` instead. */ webview_primary_button_color?: string | undefined + /** + * @deprecated Use `connect_webview_customization.webview_primary_button_text_color` instead. */ webview_primary_button_text_color?: string | undefined + /** + * @deprecated Use `connect_webview_customization.webview_logo_shape` instead. */ webview_logo_shape?: ('circle' | 'square') | undefined + /** + * @deprecated Use `connect_webview_customization.webview_success_message` instead. */ webview_success_message?: string | undefined + connect_webview_customization?: + | { + primary_button_color?: (string | null) | undefined + primary_button_text_color?: (string | null) | undefined + success_message?: (string | null) | undefined + logo_shape?: (('circle' | 'square') | null) | undefined + } + | undefined } commonParams: {} formData: {} @@ -55035,6 +55051,13 @@ export interface Routes { name: string company_name: string is_sandbox: boolean + connect_webview_customization: { + primary_button_color?: string | undefined + primary_button_text_color?: string | undefined + success_message?: string | undefined + logo_shape?: ('circle' | 'square') | undefined + inviter_logo_url?: string | undefined + } /** True if a sandbox workspace has not been accessed in 14 days */ is_suspended: boolean /** @@ -55057,6 +55080,13 @@ export interface Routes { name: string company_name: string is_sandbox: boolean + connect_webview_customization: { + primary_button_color?: string | undefined + primary_button_text_color?: string | undefined + success_message?: string | undefined + logo_shape?: ('circle' | 'square') | undefined + inviter_logo_url?: string | undefined + } /** True if a sandbox workspace has not been accessed in 14 days */ is_suspended: boolean /** @@ -55078,6 +55108,13 @@ export interface Routes { name: string company_name: string is_sandbox: boolean + connect_webview_customization: { + primary_button_color?: string | undefined + primary_button_text_color?: string | undefined + success_message?: string | undefined + logo_shape?: ('circle' | 'square') | undefined + inviter_logo_url?: string | undefined + } /** True if a sandbox workspace has not been accessed in 14 days */ is_suspended: boolean /** @@ -56276,6 +56313,27 @@ export interface Routes { } } } + '/workspaces/update': { + route: '/workspaces/update' + method: 'POST' | 'PATCH' + queryParams: {} + jsonBody: { + name?: string | undefined + connect_partner_name?: string | undefined + connect_webview_customization?: + | { + primary_button_color?: (string | null) | undefined + primary_button_text_color?: (string | null) | undefined + success_message?: (string | null) | undefined + logo_shape?: (('circle' | 'square') | null) | undefined + } + | undefined + is_suspended?: boolean | undefined + } + commonParams: {} + formData: {} + jsonResponse: {} + } } export type RouteResponse = From cf14c8272ce48f99bb468bffa95865d9027b2f3c Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 23 Apr 2025 13:51:08 +0000 Subject: [PATCH 10/52] 1.386.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e739ad0f..4d5a2eaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.385.0", + "version": "1.386.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.385.0", + "version": "1.386.0", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.40.0", diff --git a/package.json b/package.json index 4c4fa3ff..e9df73c2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.385.0", + "version": "1.386.0", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From a9b9b324e33c196fb1a558327be260ac1a4f2949 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Mon, 5 May 2025 09:40:01 -0700 Subject: [PATCH 11/52] Update via seamapi/seam-connect@d29264d239b841679e4cdd6dac90c69d571187fe (#1799) --- .../models/access-grants/access-method.ts | 6 +- src/lib/seam/connect/models/acs/acs-system.ts | 6 + .../connect/models/acs/acs-users/acs-user.ts | 28 +- .../models/acs/acs-users/pending-mutations.ts | 89 +- .../models/action-attempts/action-attempt.ts | 2 + .../action-attempts/encode-access-method.ts | 69 + .../capability-properties/thermostat.ts | 9 + .../connect/models/devices/device-provider.ts | 2 +- src/lib/seam/connect/models/devices/device.ts | 14 + .../connect/models/events/access-grants.ts | 13 +- .../connect/models/events/access-methods.ts | 8 +- .../seam/connect/models/events/seam-event.ts | 4 + .../models/thermostats/climate-preset.ts | 5 + .../seam/connect/models/thermostats/index.ts | 1 + .../models/thermostats/thermostat-program.ts | 90 + .../models/thermostats/thermostat-schedule.ts | 10 +- src/lib/seam/connect/openapi.ts | 4948 +++++++++++------ src/lib/seam/connect/route-types.ts | 4237 +++++++++++++- src/lib/seam/connect/schemas.ts | 2 + 19 files changed, 7721 insertions(+), 1822 deletions(-) create mode 100644 src/lib/seam/connect/models/action-attempts/encode-access-method.ts create mode 100644 src/lib/seam/connect/models/thermostats/thermostat-program.ts diff --git a/src/lib/seam/connect/models/access-grants/access-method.ts b/src/lib/seam/connect/models/access-grants/access-method.ts index 5e490261..a18abce5 100644 --- a/src/lib/seam/connect/models/access-grants/access-method.ts +++ b/src/lib/seam/connect/models/access-grants/access-method.ts @@ -21,8 +21,12 @@ export const access_method = z.object({ issued_at: z .string() .datetime() - .nullable() + .optional() .describe('Date and time at which the access method was issued.'), + instant_key_url: z + .string() + .optional() + .describe('URL of instant key for mobile key access methods.'), }).describe(` --- undocumented: Unreleased. diff --git a/src/lib/seam/connect/models/acs/acs-system.ts b/src/lib/seam/connect/models/acs/acs-system.ts index 5329bb2f..7ea9573c 100644 --- a/src/lib/seam/connect/models/acs/acs-system.ts +++ b/src/lib/seam/connect/models/acs/acs-system.ts @@ -25,6 +25,12 @@ export const acs_system_capability_flags = z.object({ .describe( 'Indicates whether the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) supports [adding users to access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems).', ), + can_update_user_schedule: z.boolean().optional(), + can_create_user: z.boolean().optional(), + can_delete_user: z.boolean().optional(), + can_update_user_information: z.boolean().optional(), + can_update_user_supension_state: z.boolean().optional(), + can_update_user_group_membership: z.boolean().optional(), }) export const acs_location = z.object({ diff --git a/src/lib/seam/connect/models/acs/acs-users/acs-user.ts b/src/lib/seam/connect/models/acs/acs-users/acs-user.ts index bb48a4e2..ece27d4d 100644 --- a/src/lib/seam/connect/models/acs/acs-users/acs-user.ts +++ b/src/lib/seam/connect/models/acs/acs-users/acs-user.ts @@ -299,23 +299,6 @@ const common_acs_user = z .describe( 'Phone number of the user identity associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) in E.164 format (for example, `+15555550100`).', ), - latest_desired_state_synced_with_provider_at: z - .string() - .datetime() - .nullable() - .optional().describe(` - --- - undocumented: Only used internally. - --- - `), - is_latest_desired_state_synced_with_provider: z - .boolean() - .nullable() - .optional().describe(` - --- - undocumented: Only used internally. - --- - `), warnings: z .array(acs_users_warnings) .describe( @@ -326,11 +309,12 @@ const common_acs_user = z .describe( 'Errors associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management).', ), - pending_mutations: z.array(acs_user_pending_mutations).optional().describe(` - --- - undocumented: Experimental. - --- - `), + pending_mutations: z + .array(acs_user_pending_mutations) + .optional() + .describe( + 'Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.', + ), }) .merge(user_fields) diff --git a/src/lib/seam/connect/models/acs/acs-users/pending-mutations.ts b/src/lib/seam/connect/models/acs/acs-users/pending-mutations.ts index b85bacc5..4af383fa 100644 --- a/src/lib/seam/connect/models/acs/acs-users/pending-mutations.ts +++ b/src/lib/seam/connect/models/acs/acs-users/pending-mutations.ts @@ -3,17 +3,28 @@ import { z } from 'zod' import { phone_number } from '../../phone-number.js' const common_pending_mutation = z.object({ - created_at: z.string().datetime(), - message: z.string(), + created_at: z + .string() + .datetime() + .describe('Date and time at which the mutation was created.'), + message: z.string().describe('Detailed description of the mutation.'), }) -const creating = common_pending_mutation.extend({ - mutation_code: z.literal('creating'), -}) +const creating = common_pending_mutation + .extend({ + mutation_code: z.literal('creating'), + }) + .describe( + 'Seam is in the process of pushing a user creation to the integrated access system.', + ) -const deleting = common_pending_mutation.extend({ - mutation_code: z.literal('deleting'), -}) +const deleting = common_pending_mutation + .extend({ + mutation_code: z.literal('deleting'), + }) + .describe( + 'Seam is in the process of pushing a user deletion to the integrated access system.', + ) const acs_user_info = z.object({ email_address: z.string().email().nullable(), @@ -33,27 +44,51 @@ const access_schedule = z.object({ ends_at: z.string().datetime().nullable(), }) -const updating_access_schedule_mutation = common_pending_mutation.extend({ - mutation_code: z.literal('updating_access_schedule'), - from: access_schedule, - to: access_schedule, -}) +const updating_access_schedule_mutation = common_pending_mutation + .extend({ + mutation_code: z.literal('updating_access_schedule'), + from: access_schedule, + to: access_schedule, + }) + .describe( + 'Seam is in the process of pushing an access schedule update to the integrated access system.', + ) -const updating_suspension_state_mutation = common_pending_mutation.extend({ - mutation_code: z.literal('updating_suspension_state'), - from: z.object({ is_suspended: z.boolean() }), - to: z.object({ is_suspended: z.boolean() }), -}) +const updating_suspension_state_mutation = common_pending_mutation + .extend({ + mutation_code: z.literal('updating_suspension_state'), + from: z.object({ is_suspended: z.boolean() }), + to: z.object({ is_suspended: z.boolean() }), + }) + .describe( + 'Seam is in the process of pushing a suspension state update to the integrated access system.', + ) -const updating_group_membership_mutation = common_pending_mutation.extend({ - mutation_code: z.literal('updating_group_membership'), - from: z.object({ - acs_access_group_id: z.string().uuid().nullable(), - }), - to: z.object({ - acs_access_group_id: z.string().uuid().nullable(), - }), -}) +const updating_group_membership_mutation = common_pending_mutation + .extend({ + mutation_code: z.literal('updating_group_membership'), + from: z + .object({ + acs_access_group_id: z + .string() + .uuid() + .nullable() + .describe('Old access group ID.'), + }) + .describe('Old access group membership.'), + to: z + .object({ + acs_access_group_id: z + .string() + .uuid() + .nullable() + .describe('New access group ID.'), + }) + .describe('New access group membership.'), + }) + .describe( + 'Seam is in the process of pushing an access group membership update to the integrated access system.', + ) export const acs_user_pending_mutations = z.discriminatedUnion( 'mutation_code', diff --git a/src/lib/seam/connect/models/action-attempts/action-attempt.ts b/src/lib/seam/connect/models/action-attempts/action-attempt.ts index 223c8bce..652c5962 100644 --- a/src/lib/seam/connect/models/action-attempts/action-attempt.ts +++ b/src/lib/seam/connect/models/action-attempts/action-attempt.ts @@ -2,6 +2,7 @@ import { z } from 'zod' import { activate_climate_preset_action_attempt } from './activate-climate-preset.js' import { deprecated_action_attempts } from './deprecated.js' +import { encode_access_method_action_attempt } from './encode-access-method.js' import { encode_credential_action_attempt } from './encode-credential.js' import { lock_door_action_attempt } from './lock-door.js' import { reset_sandbox_workspace_action_attempt } from './reset-sandbox-workspace.js' @@ -16,6 +17,7 @@ export const action_attempt = z.union([ ...lock_door_action_attempt.options, ...unlock_door_action_attempt.options, ...scan_credential_action_attempt.options, + ...encode_access_method_action_attempt.options, ...encode_credential_action_attempt.options, ...reset_sandbox_workspace_action_attempt.options, ...set_fan_mode_action_attempt.options, diff --git a/src/lib/seam/connect/models/action-attempts/encode-access-method.ts b/src/lib/seam/connect/models/action-attempts/encode-access-method.ts new file mode 100644 index 00000000..1167c57e --- /dev/null +++ b/src/lib/seam/connect/models/action-attempts/encode-access-method.ts @@ -0,0 +1,69 @@ +import { z } from 'zod' + +import { access_method } from '../access-grants/access-method.js' +import { + common_action_attempt_errors, + common_failed_action_attempt, + common_pending_action_attempt, + common_succeeded_action_attempt, +} from './common.js' + +const action_type = z + .literal('ENCODE_ACCESS_METHOD') + .describe('Type of action that the action attempt tracks.') + +const no_credential_on_encoder_error = z.object({ + type: z.literal('no_credential_on_encoder'), + message: z.string(), +}) + +const incompatible_card_format_error = z.object({ + type: z.literal('incompatible_card_format'), + message: z.string(), +}) + +const credential_cannot_be_reissued = z.object({ + type: z.literal('credential_cannot_be_reissued'), + message: z.string(), +}) + +const error = z.union([ + ...common_action_attempt_errors, + no_credential_on_encoder_error, + incompatible_card_format_error, + credential_cannot_be_reissued, +]) + +const result = access_method.describe( + 'If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card.', +) + +export const encode_access_method_action_attempt = z.discriminatedUnion( + 'status', + [ + common_pending_action_attempt + .extend({ + action_type, + }) + .describe( + 'Action attempt to track encoding credential data from the physical encoder onto a card.', + ), + common_succeeded_action_attempt + .extend({ + action_type, + result, + }) + .describe( + 'Action attempt to indicate that encoding access method data from the physical encoder onto a card succeeded.', + ), + common_failed_action_attempt + .extend({ action_type, error }) + .describe( + 'Action attempt to indicate that encoding access method data from the physical encoder onto a card failed.', + ), + ], +) + +export type EncodeAccessMethodActionAttempt = z.infer< + typeof encode_access_method_action_attempt +> diff --git a/src/lib/seam/connect/models/devices/capability-properties/thermostat.ts b/src/lib/seam/connect/models/devices/capability-properties/thermostat.ts index d7e6f0be..50824b47 100644 --- a/src/lib/seam/connect/models/devices/capability-properties/thermostat.ts +++ b/src/lib/seam/connect/models/devices/capability-properties/thermostat.ts @@ -5,7 +5,9 @@ import { climate_setting, fan_mode_setting, hvac_mode_setting, + thermostat_daily_program, thermostat_schedule, + thermostat_weekly_program, } from '../../thermostats/index.js' export const thermostat_capability_properties = z @@ -41,6 +43,13 @@ export const thermostat_capability_properties = z available_climate_presets: z.array(climate_preset), fallback_climate_preset_key: z.string().min(1).nullable().default(null), active_thermostat_schedule: thermostat_schedule.nullable().default(null), + thermostat_daily_programs: z + .array(thermostat_daily_program) + .nullable() + .default(null), + thermostat_weekly_program: thermostat_weekly_program + .nullable() + .default(null), min_cooling_set_point_celsius: z.number(), min_cooling_set_point_fahrenheit: z.number(), max_cooling_set_point_celsius: z.number(), diff --git a/src/lib/seam/connect/models/devices/device-provider.ts b/src/lib/seam/connect/models/devices/device-provider.ts index 41e1af1e..0977c55e 100644 --- a/src/lib/seam/connect/models/devices/device-provider.ts +++ b/src/lib/seam/connect/models/devices/device-provider.ts @@ -107,7 +107,7 @@ export const PROVIDER_CATEGORY_MAP = { 'tedee', ], - thermostats: ['ecobee', 'nest'], + thermostats: ['ecobee', 'nest', 'sensi', 'honeywell_resideo'], noise_sensors: ['minut', 'noiseaware'], access_control_systems: [ 'pti', diff --git a/src/lib/seam/connect/models/devices/device.ts b/src/lib/seam/connect/models/devices/device.ts index 27d30259..c5677ef5 100644 --- a/src/lib/seam/connect/models/devices/device.ts +++ b/src/lib/seam/connect/models/devices/device.ts @@ -306,6 +306,16 @@ const device_has_flaky_connection = common_device_warning }) .describe('Device has flaky connection.') +const lockly_timezone_not_configured = common_device_warning + .extend({ + warning_code: z + .literal('lockly_timezone_not_configured') + .describe(warning_code_description), + }) + .describe( + 'We detected that this device does not have a timezone configured. Time bound codes may not work as expected.', + ) + export const unknown_issue_with_phone = common_device_warning .extend({ warning_code: z @@ -333,6 +343,7 @@ const device_warning = z.discriminatedUnion('warning_code', [ salto_ks_privacy_mode, salto_ks_subscription_limit_almost_reached, unknown_issue_with_phone, + lockly_timezone_not_configured, ]) export type DeviceWarning = z.infer @@ -376,6 +387,9 @@ export const device_warning_map = z.object({ salto_ks_subscription_limit_almost_reached: salto_ks_subscription_limit_almost_reached.optional().nullable(), unknown_issue_with_phone: unknown_issue_with_phone.optional().nullable(), + lockly_timezone_not_configured: lockly_timezone_not_configured + .optional() + .nullable(), }) export type DeviceWarningMap = z.infer diff --git a/src/lib/seam/connect/models/events/access-grants.ts b/src/lib/seam/connect/models/events/access-grants.ts index 8198efba..2f9704b5 100644 --- a/src/lib/seam/connect/models/events/access-grants.ts +++ b/src/lib/seam/connect/models/events/access-grants.ts @@ -10,7 +10,7 @@ export const access_grant_created_event = access_grant_event.extend({ event_type: z.literal('access_grant.created'), }).describe(` --- - route_path: /access_grants + route_path: /unstable_access_grants --- An access grant was created. `) @@ -21,7 +21,7 @@ export const access_grant_deleted_event = access_grant_event.extend({ event_type: z.literal('access_grant.deleted'), }).describe(` --- - route_path: /access_grants + route_path: /unstable_access_grants --- An access grant was deleted. `) @@ -35,7 +35,7 @@ export const access_grant_access_granted_to_all_doors_event = event_type: z.literal('access_grant.access_granted_to_all_doors'), }).describe(` --- - route_path: /access_grants + route_path: /unstable_access_grants --- All access requested for an access grant was successfully granted. `) @@ -57,7 +57,7 @@ export const access_grant_access_granted_to_door_event = acs_entrance_id, }).describe(` --- - route_path: /access_grants + route_path: /unstable_access_grants --- Access requested as part of an access grant to a particular door was successfully granted. `) @@ -73,7 +73,7 @@ export const access_grant_access_to_door_lost_event = access_grant_event.extend( }, ).describe(` --- - route_path: /access_grants + route_path: /unstable_access_grants --- Access to a particular door that was requested as part of an access grant was lost. `) @@ -82,11 +82,10 @@ export type AccessGrantAccessToDoorLostEvent = z.infer< typeof access_grant_access_to_door_lost_event > -export const access_code_events = [ +export const access_grant_events = [ access_grant_created_event, access_grant_deleted_event, access_grant_access_granted_to_all_doors_event, access_grant_access_granted_to_door_event, access_grant_access_to_door_lost_event, - access_grant_deleted_event, ] as const diff --git a/src/lib/seam/connect/models/events/access-methods.ts b/src/lib/seam/connect/models/events/access-methods.ts index 335879a2..e02b7869 100644 --- a/src/lib/seam/connect/models/events/access-methods.ts +++ b/src/lib/seam/connect/models/events/access-methods.ts @@ -10,7 +10,7 @@ export const access_method_issued_event = access_method_event.extend({ event_type: z.literal('access_method.issued'), }).describe(` --- - route_path: /access_methods + route_path: /unstable_access_methods --- An access method was issued. `) @@ -22,7 +22,7 @@ export const access_method_card_encoding_required_event = event_type: z.literal('access_method.card_encoding_required'), }).describe(` --- - route_path: /access_methods + route_path: /unstable_access_methods --- An access method representing a physical card requires encoding. `) @@ -35,7 +35,7 @@ export const access_method_revoked_event = access_method_event.extend({ event_type: z.literal('access_method.revoked'), }).describe(` --- - route_path: /access_methods + route_path: /unstable_access_methods --- An access method was revoked. `) @@ -44,7 +44,7 @@ export type AccessMethodRevokedEvent = z.infer< typeof access_method_revoked_event > -export const access_code_events = [ +export const access_method_events = [ access_method_issued_event, access_method_revoked_event, access_method_card_encoding_required_event, diff --git a/src/lib/seam/connect/models/events/seam-event.ts b/src/lib/seam/connect/models/events/seam-event.ts index 57fa20a5..246107db 100644 --- a/src/lib/seam/connect/models/events/seam-event.ts +++ b/src/lib/seam/connect/models/events/seam-event.ts @@ -1,6 +1,8 @@ import { z } from 'zod' import { access_code_events } from './access-codes.js' +import { access_grant_events } from './access-grants.js' +import { access_method_events } from './access-methods.js' import { acs_events } from './acs/index.js' import { action_attempt_events } from './action-attempts.js' import { client_session_events } from './client-sessions.js' @@ -12,6 +14,8 @@ import { phone_events } from './phones.js' export const seam_event = z.discriminatedUnion('event_type', [ ...access_code_events, + ...access_grant_events, + ...access_method_events, ...acs_events, ...client_session_events, ...connected_account_events, diff --git a/src/lib/seam/connect/models/thermostats/climate-preset.ts b/src/lib/seam/connect/models/thermostats/climate-preset.ts index e91833ab..21338ce9 100644 --- a/src/lib/seam/connect/models/thermostats/climate-preset.ts +++ b/src/lib/seam/connect/models/thermostats/climate-preset.ts @@ -18,6 +18,11 @@ export const climate_preset = z.object({ .describe( 'Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.', ), + can_program: z + .boolean() + .describe( + 'Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.', + ), name: z .string() .nullable() diff --git a/src/lib/seam/connect/models/thermostats/index.ts b/src/lib/seam/connect/models/thermostats/index.ts index eef433fa..ac822bb9 100644 --- a/src/lib/seam/connect/models/thermostats/index.ts +++ b/src/lib/seam/connect/models/thermostats/index.ts @@ -1,3 +1,4 @@ export * from './climate-preset.js' export * from './modes.js' +export * from './thermostat-program.js' export * from './thermostat-schedule.js' diff --git a/src/lib/seam/connect/models/thermostats/thermostat-program.ts b/src/lib/seam/connect/models/thermostats/thermostat-program.ts new file mode 100644 index 00000000..0d750189 --- /dev/null +++ b/src/lib/seam/connect/models/thermostats/thermostat-program.ts @@ -0,0 +1,90 @@ +import { z } from 'zod' + +export const thermostat_daily_program_period = z.object({ + starts_at_time: z + .string() + .regex(/^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$/) + .describe( + 'Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', + ), + climate_preset_key: z + .string() + .describe( + 'Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time.', + ), +}) + +export const thermostat_daily_program = z.object({ + thermostat_daily_program_id: z + .string() + .uuid() + .describe('ID of the thermostat daily program.'), + device_id: z.string().uuid().describe('ID of the desired thermostat device.'), + name: z + .string() + .optional() + .describe('User-friendly name to identify the thermostat daily program.'), + periods: z + .array(thermostat_daily_program_period) + .describe('Array of thermostat daily program periods.'), + created_at: z + .string() + .datetime() + .describe( + 'Date and time at which the thermostat daily program was created.', + ), +}) + +export const thermostat_weekly_program = z.object({ + device_id: z + .string() + .uuid() + .describe('ID of the thermostat device the weekly program is for.'), + monday_program_id: z + .string() + .uuid() + .nullable() + .describe('ID of the thermostat daily program to run on Mondays.'), + tuesday_program_id: z + .string() + .uuid() + .nullable() + .describe('ID of the thermostat daily program to run on Tuesdays.'), + wednesday_program_id: z + .string() + .uuid() + .nullable() + .describe('ID of the thermostat daily program to run on Wednesdays.'), + thursday_program_id: z + .string() + .uuid() + .nullable() + .describe('ID of the thermostat daily program to run on Thursdays.'), + friday_program_id: z + .string() + .uuid() + .nullable() + .describe('ID of the thermostat daily program to run on Fridays.'), + saturday_program_id: z + .string() + .uuid() + .nullable() + .describe('ID of the thermostat daily program to run on Saturdays.'), + sunday_program_id: z + .string() + .uuid() + .nullable() + .describe('ID of the thermostat daily program to run on Sundays.'), + created_at: z + .string() + .datetime() + .describe( + 'Date and time at which the thermostat weekly program was created.', + ), +}) + +export type ThermostatDailyProgram = z.infer +export type ThermostatDailyProgramPeriod = z.infer< + typeof thermostat_daily_program_period +> +export type ThermostatWeeklyProgram = z.infer diff --git a/src/lib/seam/connect/models/thermostats/thermostat-schedule.ts b/src/lib/seam/connect/models/thermostats/thermostat-schedule.ts index 6f8e6273..07780711 100644 --- a/src/lib/seam/connect/models/thermostats/thermostat-schedule.ts +++ b/src/lib/seam/connect/models/thermostats/thermostat-schedule.ts @@ -27,7 +27,7 @@ export const thermostat_schedule = z.object({ max_override_period_minutes: z .number() .int() - .nonnegative() + .positive() .nullable() .optional() .describe( @@ -39,15 +39,11 @@ export const thermostat_schedule = z.object({ .describe( 'Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', ), - unstable_is_override_allowed: z + is_override_allowed: z .boolean() .optional() .describe( - ` - --- - undocumented: Unstable - --- - Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/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/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.", ), ends_at: z .string() diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 9b4f79b5..f85e2d76 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -2289,11 +2289,17 @@ export default { 'Indicates whether the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) supports creating [access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems).', type: 'boolean', }, + can_create_user: { type: 'boolean' }, + can_delete_user: { type: 'boolean' }, can_remove_acs_users_from_acs_access_groups: { description: 'Indicates whether the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) supports [removing users from access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#remove-an-acs-user-from-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems).', type: 'boolean', }, + can_update_user_group_membership: { type: 'boolean' }, + can_update_user_information: { type: 'boolean' }, + can_update_user_schedule: { type: 'boolean' }, + can_update_user_supension_state: { type: 'boolean' }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) associated with the [access control system](https://docs.seam.co/latest/capability-guides/access-systems).', @@ -2917,40 +2923,51 @@ export default { type: 'string', }, hid_acs_system_id: { format: 'uuid', type: 'string' }, - is_latest_desired_state_synced_with_provider: { - nullable: true, - type: 'boolean', - 'x-undocumented': 'Only used internally.', - }, is_managed: { enum: [true], type: 'boolean' }, is_suspended: { description: 'Indicates whether the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) is currently [suspended](https://docs.seam.co/latest/capability-guides/access-systems/user-management/suspending-and-unsuspending-users).', type: 'boolean', }, - latest_desired_state_synced_with_provider_at: { - format: 'date-time', - nullable: true, - type: 'string', - 'x-undocumented': 'Only used internally.', - }, pending_mutations: { + description: + 'Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.', items: { discriminator: { propertyName: 'mutation_code' }, oneOf: [ { + description: + 'Seam is in the process of pushing a user creation to the integrated access system.', properties: { - created_at: { format: 'date-time', type: 'string' }, - message: { type: 'string' }, + created_at: { + description: + 'Date and time at which the mutation was created.', + format: 'date-time', + type: 'string', + }, + message: { + description: 'Detailed description of the mutation.', + type: 'string', + }, mutation_code: { enum: ['creating'], type: 'string' }, }, required: ['created_at', 'message', 'mutation_code'], type: 'object', }, { + description: + 'Seam is in the process of pushing a user deletion to the integrated access system.', properties: { - created_at: { format: 'date-time', type: 'string' }, - message: { type: 'string' }, + created_at: { + description: + 'Date and time at which the mutation was created.', + format: 'date-time', + type: 'string', + }, + message: { + description: 'Detailed description of the mutation.', + type: 'string', + }, mutation_code: { enum: ['deleting'], type: 'string' }, }, required: ['created_at', 'message', 'mutation_code'], @@ -2958,7 +2975,12 @@ export default { }, { properties: { - created_at: { format: 'date-time', type: 'string' }, + created_at: { + description: + 'Date and time at which the mutation was created.', + format: 'date-time', + type: 'string', + }, from: { properties: { email_address: { @@ -2971,7 +2993,10 @@ export default { }, type: 'object', }, - message: { type: 'string' }, + message: { + description: 'Detailed description of the mutation.', + type: 'string', + }, mutation_code: { enum: ['updating_user_information'], type: 'string', @@ -2999,8 +3024,15 @@ export default { type: 'object', }, { + description: + 'Seam is in the process of pushing an access schedule update to the integrated access system.', properties: { - created_at: { format: 'date-time', type: 'string' }, + created_at: { + description: + 'Date and time at which the mutation was created.', + format: 'date-time', + type: 'string', + }, from: { properties: { ends_at: { @@ -3017,7 +3049,10 @@ export default { required: ['starts_at', 'ends_at'], type: 'object', }, - message: { type: 'string' }, + message: { + description: 'Detailed description of the mutation.', + type: 'string', + }, mutation_code: { enum: ['updating_access_schedule'], type: 'string', @@ -3049,14 +3084,24 @@ export default { type: 'object', }, { + description: + 'Seam is in the process of pushing a suspension state update to the integrated access system.', properties: { - created_at: { format: 'date-time', type: 'string' }, + created_at: { + description: + 'Date and time at which the mutation was created.', + format: 'date-time', + type: 'string', + }, from: { properties: { is_suspended: { type: 'boolean' } }, required: ['is_suspended'], type: 'object', }, - message: { type: 'string' }, + message: { + description: 'Detailed description of the mutation.', + type: 'string', + }, mutation_code: { enum: ['updating_suspension_state'], type: 'string', @@ -3077,11 +3122,20 @@ export default { type: 'object', }, { + description: + 'Seam is in the process of pushing an access group membership update to the integrated access system.', properties: { - created_at: { format: 'date-time', type: 'string' }, + created_at: { + description: + 'Date and time at which the mutation was created.', + format: 'date-time', + type: 'string', + }, from: { + description: 'Old access group membership.', properties: { acs_access_group_id: { + description: 'Old access group ID.', format: 'uuid', nullable: true, type: 'string', @@ -3090,14 +3144,19 @@ export default { required: ['acs_access_group_id'], type: 'object', }, - message: { type: 'string' }, + message: { + description: 'Detailed description of the mutation.', + type: 'string', + }, mutation_code: { enum: ['updating_group_membership'], type: 'string', }, to: { + description: 'New access group membership.', properties: { acs_access_group_id: { + description: 'New access group ID.', format: 'uuid', nullable: true, type: 'string', @@ -3119,7 +3178,6 @@ export default { ], }, type: 'array', - 'x-undocumented': 'Experimental.', }, phone_number: { description: @@ -4521,7 +4579,7 @@ export default { }, action_type: { description: 'Type of action that the action attempt tracks.', - enum: ['ENCODE_CREDENTIAL'], + enum: ['ENCODE_ACCESS_METHOD'], type: 'string', }, error: { @@ -4547,7 +4605,7 @@ export default { }, { description: - 'Action attempt to indicate that encoding credential data from the physical encoder onto a card succeeded.', + 'Action attempt to indicate that encoding access method data from the physical encoder onto a card succeeded.', properties: { action_attempt_id: { description: 'ID of the action attempt.', @@ -4556,7 +4614,7 @@ export default { }, action_type: { description: 'Type of action that the action attempt tracks.', - enum: ['ENCODE_CREDENTIAL'], + enum: ['ENCODE_ACCESS_METHOD'], type: 'string', }, error: { @@ -4566,106 +4624,327 @@ export default { }, result: { description: - 'If an encoding attempt was successful, includes the `acs_credential` data that was encoded onto the card.', + 'If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card.', + properties: { + access_method_id: { + description: 'ID of the access method.', + format: 'uuid', + type: 'string', + }, + created_at: { + description: + 'Date and time at which the access method was created.', + format: 'date-time', + type: 'string', + }, + display_name: { + description: 'Display name of the access method.', + type: 'string', + }, + instant_key_url: { + description: + 'URL of instant key for mobile key access methods.', + type: 'string', + }, + issued_at: { + description: + 'Date and time at which the access method was issued.', + format: 'date-time', + type: 'string', + }, + mode: { + description: + 'Access method mode. Supported values: `code`, `card`, `mobile_key`.', + enum: ['code', 'card', 'mobile_key'], + type: 'string', + }, + workspace_id: { + description: + 'Unique identifier for the Seam workspace associated with the access grant.', + format: 'uuid', + type: 'string', + }, + }, + required: [ + 'workspace_id', + 'access_method_id', + 'display_name', + 'mode', + 'created_at', + ], + type: 'object', + }, + status: { enum: ['success'], type: 'string' }, + }, + required: [ + 'action_attempt_id', + 'status', + 'error', + 'action_type', + 'result', + ], + type: 'object', + }, + { + description: + 'Action attempt to indicate that encoding access method data from the physical encoder onto a card failed.', + properties: { + action_attempt_id: { + description: 'ID of the action attempt.', + format: 'uuid', + type: 'string', + }, + action_type: { + description: 'Type of action that the action attempt tracks.', + enum: ['ENCODE_ACCESS_METHOD'], + type: 'string', + }, + error: { oneOf: [ { description: - 'Means by which an [access control system user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/latest/capability-guides/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.', + "Error that doesn't fit into other specific error categories.", properties: { - access_method: { - description: - 'Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`.', - enum: ['code', 'card', 'mobile_key'], - type: 'string', - }, - acs_credential_id: { - description: - 'ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', - format: 'uuid', - type: 'string', - }, - acs_credential_pool_id: { - format: 'uuid', - type: 'string', - }, - acs_system_id: { + message: { description: - 'ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', - format: 'uuid', + 'Message for the error associated with the action attempt.', type: 'string', }, - acs_user_id: { + type: { description: - 'ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs.', - format: 'uuid', + 'Type of the error associated with the action attempt.', + enum: ['uncategorized_error'], type: 'string', }, - assa_abloy_vostio_metadata: { - description: - 'Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', - properties: { - door_names: { - items: { type: 'string' }, - type: 'array', - }, - endpoint_id: { type: 'string' }, - key_id: { type: 'string' }, - key_issuing_request_id: { type: 'string' }, - override_guest_acs_entrance_ids: { - items: { type: 'string' }, - type: 'array', - }, - }, - type: 'object', - }, - card_number: { + }, + required: ['type', 'message'], + type: 'object', + }, + { + description: 'Error to indicate an expired action attempt.', + properties: { + message: { description: - 'Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', - nullable: true, + 'Message for the error associated with the action attempt.', type: 'string', }, - code: { + type: { description: - 'Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', - nullable: true, + 'Type of the error associated with the action attempt.', + enum: ['action_attempt_expired'], type: 'string', }, - created_at: { - description: - 'Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created.', - format: 'date-time', + }, + required: ['type', 'message'], + type: 'object', + }, + { + properties: { + message: { type: 'string' }, + type: { + enum: ['no_credential_on_encoder'], type: 'string', }, - display_name: { - description: - 'Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type.', - minLength: 1, + }, + required: ['type', 'message'], + type: 'object', + }, + { + properties: { + message: { type: 'string' }, + type: { + enum: ['incompatible_card_format'], type: 'string', }, - ends_at: { - description: - 'Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`.', + }, + required: ['type', 'message'], + type: 'object', + }, + { + properties: { + message: { type: 'string' }, + type: { + enum: ['credential_cannot_be_reissued'], type: 'string', }, - errors: { - description: - 'Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', - items: { - properties: { - error_code: { type: 'string' }, - message: { type: 'string' }, - }, - required: ['error_code', 'message'], - type: 'object', - }, - type: 'array', - }, - external_type: { - description: - 'Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.', - enum: [ - 'pti_card', - 'brivo_credential', + }, + required: ['type', 'message'], + type: 'object', + }, + ], + }, + result: { + description: + 'Result of the action attempt. Null for failed action attempts.', + nullable: true, + }, + status: { enum: ['error'], type: 'string' }, + }, + required: [ + 'action_attempt_id', + 'status', + 'result', + 'action_type', + 'error', + ], + type: 'object', + }, + { + description: + 'Action attempt to track encoding credential data from the physical encoder onto a card.', + properties: { + action_attempt_id: { + description: 'ID of the action attempt.', + format: 'uuid', + type: 'string', + }, + action_type: { + description: 'Type of action that the action attempt tracks.', + enum: ['ENCODE_CREDENTIAL'], + type: 'string', + }, + error: { + description: + 'Errors associated with the action attempt. Null for pending action attempts.', + nullable: true, + }, + result: { + description: + 'Result of the action attempt. Null for pending action attempts.', + nullable: true, + }, + status: { enum: ['pending'], type: 'string' }, + }, + required: [ + 'action_attempt_id', + 'status', + 'result', + 'error', + 'action_type', + ], + type: 'object', + }, + { + description: + 'Action attempt to indicate that encoding credential data from the physical encoder onto a card succeeded.', + properties: { + action_attempt_id: { + description: 'ID of the action attempt.', + format: 'uuid', + type: 'string', + }, + action_type: { + description: 'Type of action that the action attempt tracks.', + enum: ['ENCODE_CREDENTIAL'], + type: 'string', + }, + error: { + description: + 'Errors associated with the action attempt. Null for successful action attempts.', + nullable: true, + }, + result: { + description: + 'If an encoding attempt was successful, includes the `acs_credential` data that was encoded onto the card.', + oneOf: [ + { + description: + 'Means by which an [access control system user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/latest/capability-guides/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.', + properties: { + access_method: { + description: + 'Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`.', + enum: ['code', 'card', 'mobile_key'], + type: 'string', + }, + acs_credential_id: { + description: + 'ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', + format: 'uuid', + type: 'string', + }, + acs_credential_pool_id: { + format: 'uuid', + type: 'string', + }, + acs_system_id: { + description: + 'ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', + format: 'uuid', + type: 'string', + }, + acs_user_id: { + description: + 'ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs.', + format: 'uuid', + type: 'string', + }, + assa_abloy_vostio_metadata: { + description: + 'Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', + properties: { + door_names: { + items: { type: 'string' }, + type: 'array', + }, + endpoint_id: { type: 'string' }, + key_id: { type: 'string' }, + key_issuing_request_id: { type: 'string' }, + override_guest_acs_entrance_ids: { + items: { type: 'string' }, + type: 'array', + }, + }, + type: 'object', + }, + card_number: { + description: + 'Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', + nullable: true, + type: 'string', + }, + code: { + description: + 'Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', + nullable: true, + type: 'string', + }, + created_at: { + description: + 'Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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/latest/capability-guides/access-systems/managing-credentials) type.', + minLength: 1, + type: 'string', + }, + ends_at: { + description: + 'Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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/latest/capability-guides/access-systems/managing-credentials).', + items: { + properties: { + error_code: { type: 'string' }, + message: { type: 'string' }, + }, + required: ['error_code', 'message'], + type: 'object', + }, + type: 'array', + }, + external_type: { + description: + 'Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.', + enum: [ + 'pti_card', + 'brivo_credential', 'hid_credential', 'visionline_card', 'salto_ks_credential', @@ -8413,9 +8692,15 @@ export default { }, 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/latest/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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + exclusiveMinimum: true, minimum: 0, nullable: true, type: 'integer', @@ -8437,12 +8722,6 @@ export default { format: 'uuid', type: 'string', }, - unstable_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/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.", - type: 'boolean', - 'x-undocumented': 'Unstable', - }, }, required: [ 'thermostat_schedule_id', @@ -8469,6 +8748,11 @@ export default { 'Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.', type: 'boolean', }, + can_program: { + description: + 'Indicates whether the [climate preset](https://docs.seam.co/latest/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/latest/capability-guides/thermostats/creating-and-managing-climate-presets).', @@ -8535,6 +8819,7 @@ export default { 'climate_preset_key', 'can_edit', 'can_delete', + 'can_program', 'display_name', 'manual_override_allowed', ], @@ -8568,6 +8853,11 @@ export default { 'Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.', type: 'boolean', }, + can_program: { + description: + 'Indicates whether the [climate preset](https://docs.seam.co/latest/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/latest/capability-guides/thermostats/creating-and-managing-climate-presets).', @@ -8645,6 +8935,11 @@ export default { 'Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.', type: 'boolean', }, + can_program: { + description: + 'Indicates whether the [climate preset](https://docs.seam.co/latest/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/latest/capability-guides/thermostats/creating-and-managing-climate-presets).', @@ -8810,67 +9105,211 @@ export default { ], type: 'object', }, - }, - type: 'object', - }, - ], - }, - ], - description: 'Properties of the device.', - }, - warnings: { - description: - '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.', - items: { - discriminator: { propertyName: 'warning_code' }, - oneOf: [ - { - description: 'Backup access code unhealthy.', - properties: { - created_at: { format: 'date-time', type: 'string' }, - message: { type: 'string' }, - warning_code: { - description: - 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', - enum: ['partial_backup_access_code_pool'], - type: 'string', - }, - }, - required: ['message', 'created_at', 'warning_code'], - type: 'object', - }, - { - description: 'Too many backup codes.', - properties: { - created_at: { format: 'date-time', type: 'string' }, - message: { type: 'string' }, - warning_code: { - description: - 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', - enum: ['many_active_backup_codes'], - type: 'string', - }, - }, - required: ['message', 'created_at', 'warning_code'], - type: 'object', - }, - { - description: 'Wyze Lock is not connected to a gateway.', - properties: { - created_at: { format: 'date-time', type: 'string' }, - message: { type: 'string' }, - warning_code: { - description: - 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', - enum: ['wyze_device_missing_gateway'], - type: 'string', - }, - }, - required: ['message', 'created_at', 'warning_code'], - type: 'object', - }, - { - description: + thermostat_daily_programs: { + default: null, + items: { + properties: { + created_at: { + description: + 'Date and time at which the thermostat daily program was created.', + format: 'date-time', + type: 'string', + }, + device_id: { + description: + 'ID of the desired thermostat device.', + format: 'uuid', + type: 'string', + }, + name: { + description: + 'User-friendly name to identify the thermostat daily program.', + type: 'string', + }, + periods: { + description: + 'Array of thermostat daily program periods.', + items: { + properties: { + climate_preset_key: { + description: + 'Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time.', + type: 'string', + }, + starts_at_time: { + description: + 'Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', + pattern: + '^([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)$', + type: 'string', + }, + }, + required: [ + 'starts_at_time', + 'climate_preset_key', + ], + type: 'object', + }, + type: 'array', + }, + thermostat_daily_program_id: { + description: + 'ID of the thermostat daily program.', + format: 'uuid', + type: 'string', + }, + }, + required: [ + 'thermostat_daily_program_id', + 'device_id', + 'periods', + 'created_at', + ], + type: 'object', + }, + nullable: true, + type: 'array', + }, + thermostat_weekly_program: { + default: null, + nullable: true, + properties: { + created_at: { + description: + 'Date and time at which the thermostat weekly program was created.', + format: 'date-time', + type: 'string', + }, + device_id: { + description: + 'ID of the thermostat device the weekly program is for.', + format: 'uuid', + type: 'string', + }, + friday_program_id: { + description: + 'ID of the thermostat daily program to run on Fridays.', + format: 'uuid', + nullable: true, + type: 'string', + }, + monday_program_id: { + description: + 'ID of the thermostat daily program to run on Mondays.', + format: 'uuid', + nullable: true, + type: 'string', + }, + saturday_program_id: { + description: + 'ID of the thermostat daily program to run on Saturdays.', + format: 'uuid', + nullable: true, + type: 'string', + }, + sunday_program_id: { + description: + 'ID of the thermostat daily program to run on Sundays.', + format: 'uuid', + nullable: true, + type: 'string', + }, + thursday_program_id: { + description: + 'ID of the thermostat daily program to run on Thursdays.', + format: 'uuid', + nullable: true, + type: 'string', + }, + tuesday_program_id: { + description: + 'ID of the thermostat daily program to run on Tuesdays.', + format: 'uuid', + nullable: true, + type: 'string', + }, + wednesday_program_id: { + description: + 'ID of the thermostat daily program to run on Wednesdays.', + format: 'uuid', + nullable: true, + type: 'string', + }, + }, + required: [ + 'device_id', + 'monday_program_id', + 'tuesday_program_id', + 'wednesday_program_id', + 'thursday_program_id', + 'friday_program_id', + 'saturday_program_id', + 'sunday_program_id', + 'created_at', + ], + type: 'object', + }, + }, + type: 'object', + }, + ], + }, + ], + description: 'Properties of the device.', + }, + warnings: { + description: + '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.', + items: { + discriminator: { propertyName: 'warning_code' }, + oneOf: [ + { + description: 'Backup access code unhealthy.', + properties: { + created_at: { format: 'date-time', type: 'string' }, + message: { type: 'string' }, + warning_code: { + description: + 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', + enum: ['partial_backup_access_code_pool'], + type: 'string', + }, + }, + required: ['message', 'created_at', 'warning_code'], + type: 'object', + }, + { + description: 'Too many backup codes.', + properties: { + created_at: { format: 'date-time', type: 'string' }, + message: { type: 'string' }, + warning_code: { + description: + 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', + enum: ['many_active_backup_codes'], + type: 'string', + }, + }, + required: ['message', 'created_at', 'warning_code'], + type: 'object', + }, + { + description: 'Wyze Lock is not connected to a gateway.', + properties: { + created_at: { format: 'date-time', type: 'string' }, + message: { type: 'string' }, + warning_code: { + description: + 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', + enum: ['wyze_device_missing_gateway'], + type: 'string', + }, + }, + required: ['message', 'created_at', 'warning_code'], + type: 'object', + }, + { + description: 'Device is offline, but has some functionality available.', properties: { created_at: { format: 'date-time', type: 'string' }, @@ -9069,6 +9508,22 @@ export default { required: ['message', 'created_at', 'warning_code'], type: 'object', }, + { + description: + 'We detected that this device does not have a timezone configured. Time bound codes may not work as expected.', + properties: { + created_at: { format: 'date-time', type: 'string' }, + message: { type: 'string' }, + warning_code: { + description: + 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', + enum: ['lockly_timezone_not_configured'], + type: 'string', + }, + }, + required: ['message', 'created_at', 'warning_code'], + type: 'object', + }, ], }, type: 'array', @@ -10284,18 +10739,10 @@ export default { 'x-route-path': '/access_codes/unmanaged', }, { - description: - 'An [ACS system](https://docs.seam.co/latest/capability-guides/access-systems) was connected.', + description: 'An access grant was created.', properties: { - acs_system_id: { - description: - 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', - format: 'uuid', - type: 'string', - }, - connected_account_id: { - description: - 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + access_grant_id: { + description: 'ID of the access grant.', format: 'uuid', type: 'string', }, @@ -10309,7 +10756,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['acs_system.connected'], type: 'string' }, + event_type: { enum: ['access_grant.created'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10327,25 +10774,17 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'acs_system_id', + 'access_grant_id', 'event_type', ], type: 'object', - 'x-route-path': '/acs/systems', + 'x-route-path': '/unstable_access_grants', }, { - description: - 'An [ACS system](https://docs.seam.co/latest/capability-guides/access-systems) was added.', + description: 'An access grant was deleted.', properties: { - acs_system_id: { - description: - 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', - format: 'uuid', - type: 'string', - }, - connected_account_id: { - description: - 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + access_grant_id: { + description: 'ID of the access grant.', format: 'uuid', type: 'string', }, @@ -10359,7 +10798,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['acs_system.added'], type: 'string' }, + event_type: { enum: ['access_grant.deleted'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10377,25 +10816,18 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'acs_system_id', + 'access_grant_id', 'event_type', ], type: 'object', - 'x-route-path': '/acs/systems', + 'x-route-path': '/unstable_access_grants', }, { description: - 'An [ACS system](https://docs.seam.co/latest/capability-guides/access-systems) was disconnected.', + 'All access requested for an access grant was successfully granted.', properties: { - acs_system_id: { - description: - 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', - format: 'uuid', - type: 'string', - }, - connected_account_id: { - description: - 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + access_grant_id: { + description: 'ID of the access grant.', format: 'uuid', type: 'string', }, @@ -10409,7 +10841,10 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['acs_system.disconnected'], type: 'string' }, + event_type: { + enum: ['access_grant.access_granted_to_all_doors'], + type: 'string', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10427,26 +10862,24 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'acs_system_id', + 'access_grant_id', 'event_type', ], type: 'object', - 'x-route-path': '/acs/systems', + 'x-route-path': '/unstable_access_grants', }, { description: - 'An [ACS credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was deleted.', + 'Access requested as part of an access grant to a particular door was successfully granted.', properties: { - acs_credential_id: { format: 'uuid', type: 'string' }, - acs_system_id: { - description: - 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', + access_grant_id: { + description: 'ID of the access grant.', format: 'uuid', type: 'string', }, - connected_account_id: { + acs_entrance_id: { description: - 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + 'ID of the door, an [ACS entrance](https://docs.seam.co/latest/capability-guides/retrieving-entrance-details).', format: 'uuid', type: 'string', }, @@ -10460,7 +10893,10 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['acs_credential.deleted'], type: 'string' }, + event_type: { + enum: ['access_grant.access_granted_to_door'], + type: 'string', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10478,27 +10914,25 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'acs_system_id', - 'acs_credential_id', + 'access_grant_id', 'event_type', + 'acs_entrance_id', ], type: 'object', - 'x-route-path': '/acs/credentials', + 'x-route-path': '/unstable_access_grants', }, { description: - 'An [ACS credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was issued.', + 'Access to a particular door that was requested as part of an access grant was lost.', properties: { - acs_credential_id: { format: 'uuid', type: 'string' }, - acs_system_id: { - description: - 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', + access_grant_id: { + description: 'ID of the access grant.', format: 'uuid', type: 'string', }, - connected_account_id: { + acs_entrance_id: { description: - 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + 'ID of the door, an [ACS entrance](https://docs.seam.co/latest/capability-guides/retrieving-entrance-details).', format: 'uuid', type: 'string', }, @@ -10512,7 +10946,10 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['acs_credential.issued'], type: 'string' }, + event_type: { + enum: ['access_grant.access_to_door_lost'], + type: 'string', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10530,27 +10967,18 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'acs_system_id', - 'acs_credential_id', + 'access_grant_id', 'event_type', + 'acs_entrance_id', ], type: 'object', - 'x-route-path': '/acs/credentials', + 'x-route-path': '/unstable_access_grants', }, { - description: - 'An [ACS credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was reissued.', + description: 'An access method was issued.', properties: { - acs_credential_id: { format: 'uuid', type: 'string' }, - acs_system_id: { - description: - 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', - format: 'uuid', - type: 'string', - }, - connected_account_id: { - description: - 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + access_method_id: { + description: 'ID of the access method.', format: 'uuid', type: 'string', }, @@ -10564,7 +10992,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['acs_credential.reissued'], type: 'string' }, + event_type: { enum: ['access_method.issued'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10582,27 +11010,17 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'acs_system_id', - 'acs_credential_id', + 'access_method_id', 'event_type', ], type: 'object', - 'x-route-path': '/acs/credentials', + 'x-route-path': '/unstable_access_methods', }, { - description: - 'An [ACS credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was invalidated. That is, the credential cannot be used anymore.', + description: 'An access method was revoked.', properties: { - acs_credential_id: { format: 'uuid', type: 'string' }, - acs_system_id: { - description: - 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', - format: 'uuid', - type: 'string', - }, - connected_account_id: { - description: - 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + access_method_id: { + description: 'ID of the access method.', format: 'uuid', type: 'string', }, @@ -10616,10 +11034,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['acs_credential.invalidated'], - type: 'string', - }, + event_type: { enum: ['access_method.revoked'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10637,27 +11052,18 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'acs_system_id', - 'acs_credential_id', + 'access_method_id', 'event_type', ], type: 'object', - 'x-route-path': '/acs/credentials', + 'x-route-path': '/unstable_access_methods', }, { description: - 'An [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) was created.', + 'An access method representing a physical card requires encoding.', properties: { - acs_system_id: { - description: - 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', - format: 'uuid', - type: 'string', - }, - acs_user_id: { format: 'uuid', type: 'string' }, - connected_account_id: { - description: - 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + access_method_id: { + description: 'ID of the access method.', format: 'uuid', type: 'string', }, @@ -10671,7 +11077,10 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['acs_user.created'], type: 'string' }, + event_type: { + enum: ['access_method.card_encoding_required'], + type: 'string', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10689,16 +11098,15 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'acs_system_id', - 'acs_user_id', + 'access_method_id', 'event_type', ], type: 'object', - 'x-route-path': '/acs/users', + 'x-route-path': '/unstable_access_methods', }, { description: - 'An [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) was deleted.', + 'An [ACS system](https://docs.seam.co/latest/capability-guides/access-systems) was connected.', properties: { acs_system_id: { description: @@ -10706,7 +11114,6 @@ export default { format: 'uuid', type: 'string', }, - acs_user_id: { format: 'uuid', type: 'string' }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -10723,7 +11130,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['acs_user.deleted'], type: 'string' }, + event_type: { enum: ['acs_system.connected'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10742,22 +11149,15 @@ export default { 'created_at', 'occurred_at', 'acs_system_id', - 'acs_user_id', 'event_type', ], type: 'object', - 'x-route-path': '/acs/users', + 'x-route-path': '/acs/systems', }, { description: - 'An [ACS encoder](https://docs.seam.co/latest/capability-guides/access-systems/working-with-card-encoders-and-scanners) was added.', + 'An [ACS system](https://docs.seam.co/latest/capability-guides/access-systems) was added.', properties: { - acs_encoder_id: { - description: - 'ID of the [ACS encoder](https://docs.seam.co/latest/capability-guides/access-systems/working-with-card-encoders-and-scanners).', - format: 'uuid', - type: 'string', - }, acs_system_id: { description: 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', @@ -10780,7 +11180,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['acs_encoder.added'], type: 'string' }, + event_type: { enum: ['acs_system.added'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10799,22 +11199,15 @@ export default { 'created_at', 'occurred_at', 'acs_system_id', - 'acs_encoder_id', 'event_type', ], type: 'object', - 'x-route-path': '/acs/encoders', + 'x-route-path': '/acs/systems', }, { description: - 'An [ACS encoder](https://docs.seam.co/latest/capability-guides/access-systems/working-with-card-encoders-and-scanners) was removed.', + 'An [ACS system](https://docs.seam.co/latest/capability-guides/access-systems) was disconnected.', properties: { - acs_encoder_id: { - description: - 'ID of the [ACS encoder](https://docs.seam.co/latest/capability-guides/access-systems/working-with-card-encoders-and-scanners).', - format: 'uuid', - type: 'string', - }, acs_system_id: { description: 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', @@ -10837,7 +11230,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['acs_encoder.removed'], type: 'string' }, + event_type: { enum: ['acs_system.disconnected'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10856,16 +11249,16 @@ export default { 'created_at', 'occurred_at', 'acs_system_id', - 'acs_encoder_id', 'event_type', ], type: 'object', - 'x-route-path': '/acs/encoders', + 'x-route-path': '/acs/systems', }, { - description: 'An ACS access group was deleted.', + description: + 'An [ACS credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was deleted.', properties: { - acs_access_group_id: { format: 'uuid', type: 'string' }, + acs_credential_id: { format: 'uuid', type: 'string' }, acs_system_id: { description: 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', @@ -10888,10 +11281,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['acs_access_group.deleted'], - type: 'string', - }, + event_type: { enum: ['acs_credential.deleted'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10910,17 +11300,17 @@ export default { 'created_at', 'occurred_at', 'acs_system_id', - 'acs_access_group_id', + 'acs_credential_id', 'event_type', ], type: 'object', - 'x-route-path': '/acs/access_groups', + 'x-route-path': '/acs/credentials', }, { description: - 'An [ACS entrance](https://docs.seam.co/latest/capability-guides/retrieving-entrance-details) was added.', + 'An [ACS credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was issued.', properties: { - acs_entrance_id: { format: 'uuid', type: 'string' }, + acs_credential_id: { format: 'uuid', type: 'string' }, acs_system_id: { description: 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', @@ -10943,7 +11333,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['acs_entrance.added'], type: 'string' }, + event_type: { enum: ['acs_credential.issued'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -10962,17 +11352,17 @@ export default { 'created_at', 'occurred_at', 'acs_system_id', - 'acs_entrance_id', + 'acs_credential_id', 'event_type', ], type: 'object', - 'x-route-path': '/acs/entrances', + 'x-route-path': '/acs/credentials', }, { description: - 'An [ACS entrance](https://docs.seam.co/latest/capability-guides/retrieving-entrance-details) was removed.', + 'An [ACS credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was reissued.', properties: { - acs_entrance_id: { format: 'uuid', type: 'string' }, + acs_credential_id: { format: 'uuid', type: 'string' }, acs_system_id: { description: 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', @@ -10995,7 +11385,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['acs_entrance.removed'], type: 'string' }, + event_type: { enum: ['acs_credential.reissued'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -11014,19 +11404,26 @@ export default { 'created_at', 'occurred_at', 'acs_system_id', - 'acs_entrance_id', + 'acs_credential_id', 'event_type', ], type: 'object', - 'x-route-path': '/acs/entrances', + 'x-route-path': '/acs/credentials', }, { description: - 'A [client session](https://docs.seam.co/latest/core-concepts/authentication/client-session-tokens) was deleted.', + 'An [ACS credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was invalidated. That is, the credential cannot be used anymore.', properties: { - client_session_id: { + acs_credential_id: { format: 'uuid', type: 'string' }, + acs_system_id: { description: - 'ID of the [client session](https://docs.seam.co/latest/core-concepts/authentication/client-session-tokens).', + 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', + format: 'uuid', + type: 'string', + }, + connected_account_id: { + description: + 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', format: 'uuid', type: 'string', }, @@ -11040,7 +11437,10 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['client_session.deleted'], type: 'string' }, + event_type: { + enum: ['acs_credential.invalidated'], + type: 'string', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -11058,22 +11458,24 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'client_session_id', + 'acs_system_id', + 'acs_credential_id', 'event_type', ], type: 'object', - 'x-route-path': '/client_sessions', + 'x-route-path': '/acs/credentials', }, { description: - 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) was connected for the first time or was reconnected after being disconnected.', + 'An [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) was created.', properties: { - connect_webview_id: { + acs_system_id: { description: - 'ID of the [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).', + 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', format: 'uuid', type: 'string', }, + acs_user_id: { format: 'uuid', type: 'string' }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -11090,10 +11492,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['connected_account.connected'], - type: 'string', - }, + event_type: { enum: ['acs_user.created'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -11111,23 +11510,24 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'connected_account_id', + 'acs_system_id', + 'acs_user_id', 'event_type', - 'connect_webview_id', ], type: 'object', - 'x-route-path': '/connected_accounts', + 'x-route-path': '/acs/users', }, { description: - 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) was created.', + 'An [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) was deleted.', properties: { - connect_webview_id: { + acs_system_id: { description: - 'ID of the [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).', + 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', format: 'uuid', type: 'string', }, + acs_user_id: { format: 'uuid', type: 'string' }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -11144,10 +11544,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['connected_account.created'], - type: 'string', - }, + event_type: { enum: ['acs_user.deleted'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -11165,21 +11562,26 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'connected_account_id', + 'acs_system_id', + 'acs_user_id', 'event_type', - 'connect_webview_id', ], type: 'object', - 'x-route-path': '/connected_accounts', + 'x-route-path': '/acs/users', }, { - deprecated: true, description: - 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) had a successful login using a [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).', + 'An [ACS encoder](https://docs.seam.co/latest/capability-guides/access-systems/working-with-card-encoders-and-scanners) was added.', properties: { - connect_webview_id: { + acs_encoder_id: { description: - 'ID of the [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).', + 'ID of the [ACS encoder](https://docs.seam.co/latest/capability-guides/access-systems/working-with-card-encoders-and-scanners).', + format: 'uuid', + type: 'string', + }, + acs_system_id: { + description: + 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', format: 'uuid', type: 'string', }, @@ -11199,10 +11601,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['connected_account.successful_login'], - type: 'string', - }, + event_type: { enum: ['acs_encoder.added'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -11220,18 +11619,29 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'connected_account_id', + 'acs_system_id', + 'acs_encoder_id', 'event_type', - 'connect_webview_id', ], type: 'object', - 'x-deprecated': 'Use `connect_webview.login_succeeded`.', - 'x-route-path': '/connected_accounts', + 'x-route-path': '/acs/encoders', }, { description: - 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) was disconnected.', + 'An [ACS encoder](https://docs.seam.co/latest/capability-guides/access-systems/working-with-card-encoders-and-scanners) was removed.', properties: { + acs_encoder_id: { + description: + 'ID of the [ACS encoder](https://docs.seam.co/latest/capability-guides/access-systems/working-with-card-encoders-and-scanners).', + format: 'uuid', + type: 'string', + }, + acs_system_id: { + description: + 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', + format: 'uuid', + type: 'string', + }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -11248,10 +11658,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['connected_account.disconnected'], - type: 'string', - }, + event_type: { enum: ['acs_encoder.removed'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -11269,16 +11676,23 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'connected_account_id', + 'acs_system_id', + 'acs_encoder_id', 'event_type', ], type: 'object', - 'x-route-path': '/connected_accounts', + 'x-route-path': '/acs/encoders', }, { - description: - 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) completed the first sync with Seam, and the corresponding devices or systems are now available.', + description: 'An ACS access group was deleted.', properties: { + acs_access_group_id: { format: 'uuid', type: 'string' }, + acs_system_id: { + description: + 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', + format: 'uuid', + type: 'string', + }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -11296,7 +11710,7 @@ export default { type: 'string', }, event_type: { - enum: ['connected_account.completed_first_sync'], + enum: ['acs_access_group.deleted'], type: 'string', }, occurred_at: { @@ -11316,16 +11730,24 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'connected_account_id', + 'acs_system_id', + 'acs_access_group_id', 'event_type', ], type: 'object', - 'x-route-path': '/connected_accounts', + 'x-route-path': '/acs/access_groups', }, { description: - 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) was deleted.', + 'An [ACS entrance](https://docs.seam.co/latest/capability-guides/retrieving-entrance-details) was added.', properties: { + acs_entrance_id: { format: 'uuid', type: 'string' }, + acs_system_id: { + description: + 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', + format: 'uuid', + type: 'string', + }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -11342,10 +11764,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['connected_account.deleted'], - type: 'string', - }, + event_type: { enum: ['acs_entrance.added'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -11363,17 +11782,25 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'connected_account_id', + 'acs_system_id', + 'acs_entrance_id', 'event_type', ], type: 'object', - 'x-route-path': '/connected_accounts', + 'x-route-path': '/acs/entrances', }, { description: - 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) completed the first sync after reconnection with Seam, and the corresponding devices or systems are now available.', + 'An [ACS entrance](https://docs.seam.co/latest/capability-guides/retrieving-entrance-details) was removed.', properties: { - connected_account_id: { + acs_entrance_id: { format: 'uuid', type: 'string' }, + acs_system_id: { + description: + 'ID of the [ACS system](https://docs.seam.co/latest/capability-guides/access-systems).', + format: 'uuid', + type: 'string', + }, + connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', format: 'uuid', @@ -11389,12 +11816,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: [ - 'connected_account.completed_first_sync_after_reconnection', - ], - type: 'string', - }, + event_type: { enum: ['acs_entrance.removed'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -11412,23 +11834,23 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'connected_account_id', + 'acs_system_id', + 'acs_entrance_id', 'event_type', ], type: 'object', - 'x-route-path': '/connected_accounts', + 'x-route-path': '/acs/entrances', }, { description: - 'A lock door [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) succeeded.', + 'A [client session](https://docs.seam.co/latest/core-concepts/authentication/client-session-tokens) was deleted.', properties: { - action_attempt_id: { + client_session_id: { description: - 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts).', + 'ID of the [client session](https://docs.seam.co/latest/core-concepts/authentication/client-session-tokens).', format: 'uuid', type: 'string', }, - action_type: { description: 'Type of action.', type: 'string' }, created_at: { description: 'Date and time at which the event was created.', format: 'date-time', @@ -11439,16 +11861,12 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['action_attempt.lock_door.succeeded'], - type: 'string', - }, + event_type: { enum: ['client_session.deleted'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', type: 'string', }, - status: { description: 'Status of the action.', type: 'string' }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -11461,25 +11879,28 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'action_attempt_id', - 'action_type', - 'status', + 'client_session_id', 'event_type', ], type: 'object', - 'x-route-path': '/action_attempts', + 'x-route-path': '/client_sessions', }, { description: - 'A lock door [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) failed.', + 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) was connected for the first time or was reconnected after being disconnected.', properties: { - action_attempt_id: { + connect_webview_id: { description: - 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts).', + 'ID of the [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).', + format: 'uuid', + type: 'string', + }, + connected_account_id: { + description: + 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', format: 'uuid', type: 'string', }, - action_type: { description: 'Type of action.', type: 'string' }, created_at: { description: 'Date and time at which the event was created.', format: 'date-time', @@ -11491,7 +11912,7 @@ export default { type: 'string', }, event_type: { - enum: ['action_attempt.lock_door.failed'], + enum: ['connected_account.connected'], type: 'string', }, occurred_at: { @@ -11499,7 +11920,6 @@ export default { format: 'date-time', type: 'string', }, - status: { description: 'Status of the action.', type: 'string' }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -11512,25 +11932,29 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'action_attempt_id', - 'action_type', - 'status', + 'connected_account_id', 'event_type', + 'connect_webview_id', ], type: 'object', - 'x-route-path': '/action_attempts', + 'x-route-path': '/connected_accounts', }, { description: - 'An unlock door [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) succeeded.', + 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) was created.', properties: { - action_attempt_id: { + connect_webview_id: { description: - 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts).', + 'ID of the [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).', + format: 'uuid', + type: 'string', + }, + connected_account_id: { + description: + 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', format: 'uuid', type: 'string', }, - action_type: { description: 'Type of action.', type: 'string' }, created_at: { description: 'Date and time at which the event was created.', format: 'date-time', @@ -11542,7 +11966,7 @@ export default { type: 'string', }, event_type: { - enum: ['action_attempt.unlock_door.succeeded'], + enum: ['connected_account.created'], type: 'string', }, occurred_at: { @@ -11550,7 +11974,6 @@ export default { format: 'date-time', type: 'string', }, - status: { description: 'Status of the action.', type: 'string' }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -11563,25 +11986,30 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'action_attempt_id', - 'action_type', - 'status', + 'connected_account_id', 'event_type', + 'connect_webview_id', ], type: 'object', - 'x-route-path': '/action_attempts', + 'x-route-path': '/connected_accounts', }, { + deprecated: true, description: - 'An unlock door [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) failed.', + 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) had a successful login using a [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).', properties: { - action_attempt_id: { + connect_webview_id: { description: - 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts).', + 'ID of the [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).', + format: 'uuid', + type: 'string', + }, + connected_account_id: { + description: + 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', format: 'uuid', type: 'string', }, - action_type: { description: 'Type of action.', type: 'string' }, created_at: { description: 'Date and time at which the event was created.', format: 'date-time', @@ -11593,7 +12021,7 @@ export default { type: 'string', }, event_type: { - enum: ['action_attempt.unlock_door.failed'], + enum: ['connected_account.successful_login'], type: 'string', }, occurred_at: { @@ -11601,7 +12029,6 @@ export default { format: 'date-time', type: 'string', }, - status: { description: 'Status of the action.', type: 'string' }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -11614,24 +12041,18 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'action_attempt_id', - 'action_type', - 'status', + 'connected_account_id', 'event_type', + 'connect_webview_id', ], type: 'object', - 'x-route-path': '/action_attempts', + 'x-deprecated': 'Use `connect_webview.login_succeeded`.', + 'x-route-path': '/connected_accounts', }, { description: - 'A [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews) login succeeded.', + 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) was disconnected.', properties: { - connect_webview_id: { - description: - 'ID of the [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).', - format: 'uuid', - type: 'string', - }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -11649,7 +12070,7 @@ export default { type: 'string', }, event_type: { - enum: ['connect_webview.login_succeeded'], + enum: ['connected_account.disconnected'], type: 'string', }, occurred_at: { @@ -11669,20 +12090,19 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'connect_webview_id', - 'event_type', 'connected_account_id', + 'event_type', ], type: 'object', - 'x-route-path': '/connect_webviews', + 'x-route-path': '/connected_accounts', }, { description: - 'A [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews) login failed.', + 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) completed the first sync with Seam, and the corresponding devices or systems are now available.', properties: { - connect_webview_id: { + connected_account_id: { description: - 'ID of the [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).', + 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', format: 'uuid', type: 'string', }, @@ -11697,7 +12117,7 @@ export default { type: 'string', }, event_type: { - enum: ['connect_webview.login_failed'], + enum: ['connected_account.completed_first_sync'], type: 'string', }, occurred_at: { @@ -11717,15 +12137,15 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'connect_webview_id', + 'connected_account_id', 'event_type', ], type: 'object', - 'x-route-path': '/connect_webviews', + 'x-route-path': '/connected_accounts', }, { description: - 'The status of a [device](https://docs.seam.co/latest/core-concepts/devices) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`. Note that some devices operate entirely in offline mode, so Seam never emits a `device.connected` event for these devices.', + 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) was deleted.', properties: { connected_account_id: { description: @@ -11738,17 +12158,15 @@ export default { format: 'date-time', type: 'string', }, - device_id: { - description: 'ID of the device.', - format: 'uuid', - type: 'string', - }, event_id: { description: 'ID of the event.', format: 'uuid', type: 'string', }, - event_type: { enum: ['device.connected'], type: 'string' }, + event_type: { + enum: ['connected_account.deleted'], + type: 'string', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -11766,16 +12184,15 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'device_id', 'connected_account_id', 'event_type', ], type: 'object', - 'x-route-path': '/devices', + 'x-route-path': '/connected_accounts', }, { description: - 'A [device](https://docs.seam.co/latest/core-concepts/devices) was added to Seam or was re-added to Seam after having been removed.', + 'A [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts) completed the first sync after reconnection with Seam, and the corresponding devices or systems are now available.', properties: { connected_account_id: { description: @@ -11788,17 +12205,17 @@ export default { format: 'date-time', type: 'string', }, - device_id: { - description: 'ID of the device.', - format: 'uuid', - type: 'string', - }, event_id: { description: 'ID of the event.', format: 'uuid', type: 'string', }, - event_type: { enum: ['device.added'], type: 'string' }, + event_type: { + enum: [ + 'connected_account.completed_first_sync_after_reconnection', + ], + type: 'string', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -11816,40 +12233,35 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'device_id', 'connected_account_id', 'event_type', ], type: 'object', - 'x-route-path': '/devices', + 'x-route-path': '/connected_accounts', }, { description: - 'A managed device was successfully converted to an [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices).', + 'A lock door [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) succeeded.', properties: { - connected_account_id: { + action_attempt_id: { description: - 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts).', format: 'uuid', type: 'string', }, + action_type: { description: 'Type of action.', type: 'string' }, created_at: { description: 'Date and time at which the event was created.', format: 'date-time', type: 'string', }, - device_id: { - description: 'ID of the device.', - format: 'uuid', - type: 'string', - }, event_id: { description: 'ID of the event.', format: 'uuid', type: 'string', }, event_type: { - enum: ['device.converted_to_unmanaged'], + enum: ['action_attempt.lock_door.succeeded'], type: 'string', }, occurred_at: { @@ -11857,6 +12269,7 @@ export default { format: 'date-time', type: 'string', }, + status: { description: 'Status of the action.', type: 'string' }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -11869,40 +12282,37 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'device_id', - 'connected_account_id', + 'action_attempt_id', + 'action_type', + 'status', 'event_type', ], type: 'object', - 'x-route-path': '/devices', + 'x-route-path': '/action_attempts', }, { description: - 'An [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices) was successfully converted to a managed device.', + 'A lock door [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) failed.', properties: { - connected_account_id: { + action_attempt_id: { description: - 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts).', format: 'uuid', type: 'string', }, + action_type: { description: 'Type of action.', type: 'string' }, created_at: { description: 'Date and time at which the event was created.', format: 'date-time', type: 'string', }, - device_id: { - description: 'ID of the device.', - format: 'uuid', - type: 'string', - }, event_id: { description: 'ID of the event.', format: 'uuid', type: 'string', }, event_type: { - enum: ['device.unmanaged.converted_to_managed'], + enum: ['action_attempt.lock_door.failed'], type: 'string', }, occurred_at: { @@ -11910,6 +12320,7 @@ export default { format: 'date-time', type: 'string', }, + status: { description: 'Status of the action.', type: 'string' }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -11922,40 +12333,37 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'device_id', - 'connected_account_id', + 'action_attempt_id', + 'action_type', + 'status', 'event_type', ], type: 'object', - 'x-route-path': '/devices/unmanaged', + 'x-route-path': '/action_attempts', }, { description: - 'The status of an [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`.', + 'An unlock door [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) succeeded.', properties: { - connected_account_id: { + action_attempt_id: { description: - 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts).', format: 'uuid', type: 'string', }, + action_type: { description: 'Type of action.', type: 'string' }, created_at: { description: 'Date and time at which the event was created.', format: 'date-time', type: 'string', }, - device_id: { - description: 'ID of the device.', - format: 'uuid', - type: 'string', - }, event_id: { description: 'ID of the event.', format: 'uuid', type: 'string', }, event_type: { - enum: ['device.unmanaged.connected'], + enum: ['action_attempt.unlock_door.succeeded'], type: 'string', }, occurred_at: { @@ -11963,6 +12371,7 @@ export default { format: 'date-time', type: 'string', }, + status: { description: 'Status of the action.', type: 'string' }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -11975,54 +12384,45 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'device_id', - 'connected_account_id', + 'action_attempt_id', + 'action_type', + 'status', 'event_type', ], type: 'object', - 'x-route-path': '/devices/unmanaged', + 'x-route-path': '/action_attempts', }, { description: - 'The status of a [device](https://docs.seam.co/latest/core-concepts/devices) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`.', + 'An unlock door [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) failed.', properties: { - connected_account_id: { + action_attempt_id: { description: - 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts).', format: 'uuid', type: 'string', }, + action_type: { description: 'Type of action.', type: 'string' }, created_at: { description: 'Date and time at which the event was created.', format: 'date-time', type: 'string', }, - device_id: { - description: 'ID of the device.', - format: 'uuid', - type: 'string', - }, - error_code: { - description: - 'Error code associated with the disconnection event, if any.', - enum: [ - 'account_disconnected', - 'hub_disconnected', - 'device_disconnected', - ], - type: 'string', - }, event_id: { description: 'ID of the event.', format: 'uuid', type: 'string', }, - event_type: { enum: ['device.disconnected'], type: 'string' }, + event_type: { + enum: ['action_attempt.unlock_door.failed'], + type: 'string', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', type: 'string', }, + status: { description: 'Status of the action.', type: 'string' }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -12035,18 +12435,24 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'device_id', - 'connected_account_id', + 'action_attempt_id', + 'action_type', + 'status', 'event_type', - 'error_code', ], type: 'object', - 'x-route-path': '/devices', + 'x-route-path': '/action_attempts', }, { description: - 'The status of an [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`.', + 'A [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews) login succeeded.', properties: { + connect_webview_id: { + description: + 'ID of the [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).', + format: 'uuid', + type: 'string', + }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -12058,19 +12464,52 @@ export default { format: 'date-time', type: 'string', }, - device_id: { - description: 'ID of the device.', + event_id: { + description: 'ID of the event.', format: 'uuid', type: 'string', }, - error_code: { + event_type: { + enum: ['connect_webview.login_succeeded'], + type: 'string', + }, + occurred_at: { + description: 'Date and time at which the event occurred.', + format: 'date-time', + type: 'string', + }, + workspace_id: { description: - 'Error code associated with the disconnection event, if any.', - enum: [ - 'account_disconnected', - 'hub_disconnected', - 'device_disconnected', - ], + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + format: 'uuid', + type: 'string', + }, + }, + required: [ + 'event_id', + 'workspace_id', + 'created_at', + 'occurred_at', + 'connect_webview_id', + 'event_type', + 'connected_account_id', + ], + type: 'object', + 'x-route-path': '/connect_webviews', + }, + { + description: + 'A [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews) login failed.', + properties: { + connect_webview_id: { + description: + 'ID of the [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).', + format: 'uuid', + type: 'string', + }, + created_at: { + description: 'Date and time at which the event was created.', + format: 'date-time', type: 'string', }, event_id: { @@ -12079,7 +12518,7 @@ export default { type: 'string', }, event_type: { - enum: ['device.unmanaged.disconnected'], + enum: ['connect_webview.login_failed'], type: 'string', }, occurred_at: { @@ -12099,17 +12538,15 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'device_id', - 'connected_account_id', + 'connect_webview_id', 'event_type', - 'error_code', ], type: 'object', - 'x-route-path': '/devices/unmanaged', + 'x-route-path': '/connect_webviews', }, { description: - 'A [device](https://docs.seam.co/latest/core-concepts/devices) detected that it was tampered with, for example, opened or moved.', + 'The status of a [device](https://docs.seam.co/latest/core-concepts/devices) changed from offline to online. That is, the `device.properties.online` property changed from `false` to `true`. Note that some devices operate entirely in offline mode, so Seam never emits a `device.connected` event for these devices.', properties: { connected_account_id: { description: @@ -12132,7 +12569,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['device.tampered'], type: 'string' }, + event_type: { enum: ['device.connected'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -12159,16 +12596,8 @@ export default { }, { description: - 'A [device](https://docs.seam.co/latest/core-concepts/devices) battery level dropped below the low threshold.', + 'A [device](https://docs.seam.co/latest/core-concepts/devices) was added to Seam or was re-added to Seam after having been removed.', properties: { - battery_level: { - description: - 'Number in the range 0 to 1.0 indicating the amount of battery in the device, as reported by the device.', - format: 'float', - maximum: 1, - minimum: 0, - type: 'number', - }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -12190,7 +12619,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['device.low_battery'], type: 'string' }, + event_type: { enum: ['device.added'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -12211,29 +12640,14 @@ export default { 'device_id', 'connected_account_id', 'event_type', - 'battery_level', ], type: 'object', 'x-route-path': '/devices', }, { description: - 'A [device](https://docs.seam.co/latest/core-concepts/devices) battery status changed since the last `battery_status_changed` event.', + 'A managed device was successfully converted to an [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices).', properties: { - battery_level: { - description: - 'Number in the range 0 to 1.0 indicating the amount of battery in the device, as reported by the device.', - format: 'float', - maximum: 1, - minimum: 0, - type: 'number', - }, - battery_status: { - description: - 'Battery status of the device, calculated from the numeric `battery_level` value.', - enum: ['critical', 'low', 'good', 'full'], - type: 'string', - }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -12256,7 +12670,7 @@ export default { type: 'string', }, event_type: { - enum: ['device.battery_status_changed'], + enum: ['device.converted_to_unmanaged'], type: 'string', }, occurred_at: { @@ -12279,15 +12693,13 @@ export default { 'device_id', 'connected_account_id', 'event_type', - 'battery_status', - 'battery_level', ], type: 'object', 'x-route-path': '/devices', }, { description: - 'A [device](https://docs.seam.co/latest/core-concepts/devices) was removed externally from the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + 'An [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices) was successfully converted to a managed device.', properties: { connected_account_id: { description: @@ -12310,7 +12722,10 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['device.removed'], type: 'string' }, + event_type: { + enum: ['device.unmanaged.converted_to_managed'], + type: 'string', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -12333,11 +12748,11 @@ export default { 'event_type', ], type: 'object', - 'x-route-path': '/devices', + 'x-route-path': '/devices/unmanaged', }, { description: - 'A [device](https://docs.seam.co/latest/core-concepts/devices) was deleted.', + 'The status of an [unmanaged device](https://docs.seam.co/latest/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_id: { description: @@ -12360,7 +12775,10 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['device.deleted'], type: 'string' }, + event_type: { + enum: ['device.unmanaged.connected'], + type: 'string', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -12383,11 +12801,11 @@ export default { 'event_type', ], type: 'object', - 'x-route-path': '/devices', + 'x-route-path': '/devices/unmanaged', }, { description: - 'Seam detected that a [device](https://docs.seam.co/latest/core-concepts/devices) is using a third-party integration that will interfere with Seam device management.', + 'The status of a [device](https://docs.seam.co/latest/core-concepts/devices) changed from online to offline. That is, the `device.properties.online` property changed from `true` to `false`.', properties: { connected_account_id: { description: @@ -12405,15 +12823,22 @@ export default { format: 'uuid', type: 'string', }, + error_code: { + description: + 'Error code associated with the disconnection event, if any.', + enum: [ + 'account_disconnected', + 'hub_disconnected', + 'device_disconnected', + ], + type: 'string', + }, event_id: { description: 'ID of the event.', format: 'uuid', type: 'string', }, - event_type: { - enum: ['device.third_party_integration_detected'], - type: 'string', - }, + event_type: { enum: ['device.disconnected'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -12434,13 +12859,14 @@ export default { 'device_id', 'connected_account_id', 'event_type', + 'error_code', ], type: 'object', 'x-route-path': '/devices', }, { description: - 'Seam detected that a [device](https://docs.seam.co/latest/core-concepts/devices) is no longer using a third-party integration that was interfering with Seam device management.', + 'The status of an [unmanaged device](https://docs.seam.co/latest/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_id: { description: @@ -12458,13 +12884,23 @@ export default { format: 'uuid', type: 'string', }, + error_code: { + description: + 'Error code associated with the disconnection event, if any.', + enum: [ + 'account_disconnected', + 'hub_disconnected', + 'device_disconnected', + ], + type: 'string', + }, event_id: { description: 'ID of the event.', format: 'uuid', type: 'string', }, event_type: { - enum: ['device.third_party_integration_no_longer_detected'], + enum: ['device.unmanaged.disconnected'], type: 'string', }, occurred_at: { @@ -12487,13 +12923,14 @@ export default { 'device_id', 'connected_account_id', 'event_type', + 'error_code', ], type: 'object', - 'x-route-path': '/devices', + 'x-route-path': '/devices/unmanaged', }, { description: - 'A [Salto device](https://docs.seam.co/latest/device-and-system-integration-guides/salto-locks) activated privacy mode.', + 'A [device](https://docs.seam.co/latest/core-concepts/devices) detected that it was tampered with, for example, opened or moved.', properties: { connected_account_id: { description: @@ -12516,10 +12953,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['device.salto.privacy_mode_activated'], - type: 'string', - }, + event_type: { enum: ['device.tampered'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -12546,8 +12980,16 @@ export default { }, { description: - 'A [Salto device](https://docs.seam.co/latest/device-and-system-integration-guides/salto-locks) deactivated privacy mode.', + 'A [device](https://docs.seam.co/latest/core-concepts/devices) battery level dropped below the low threshold.', properties: { + battery_level: { + description: + 'Number in the range 0 to 1.0 indicating the amount of battery in the device, as reported by the device.', + format: 'float', + maximum: 1, + minimum: 0, + type: 'number', + }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -12569,10 +13011,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['device.salto.privacy_mode_deactivated'], - type: 'string', - }, + event_type: { enum: ['device.low_battery'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -12593,14 +13032,29 @@ export default { 'device_id', 'connected_account_id', 'event_type', + 'battery_level', ], type: 'object', 'x-route-path': '/devices', }, { description: - 'Seam detected a flaky [device](https://docs.seam.co/latest/core-concepts/devices) connection.', + 'A [device](https://docs.seam.co/latest/core-concepts/devices) battery status changed since the last `battery_status_changed` event.', properties: { + battery_level: { + description: + 'Number in the range 0 to 1.0 indicating the amount of battery in the device, as reported by the device.', + format: 'float', + maximum: 1, + minimum: 0, + type: 'number', + }, + battery_status: { + description: + 'Battery status of the device, calculated from the numeric `battery_level` value.', + enum: ['critical', 'low', 'good', 'full'], + type: 'string', + }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -12623,7 +13077,7 @@ export default { type: 'string', }, event_type: { - enum: ['device.connection_became_flaky'], + enum: ['device.battery_status_changed'], type: 'string', }, occurred_at: { @@ -12646,13 +13100,15 @@ export default { 'device_id', 'connected_account_id', 'event_type', + 'battery_status', + 'battery_level', ], type: 'object', 'x-route-path': '/devices', }, { description: - 'Seam detected that a previously-flaky [device](https://docs.seam.co/latest/core-concepts/devices) connection stabilized.', + 'A [device](https://docs.seam.co/latest/core-concepts/devices) was removed externally from the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', properties: { connected_account_id: { description: @@ -12675,10 +13131,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['device.connection_stabilized'], - type: 'string', - }, + event_type: { enum: ['device.removed'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -12705,7 +13158,7 @@ export default { }, { description: - 'A third-party subscription is required to use all [device](https://docs.seam.co/latest/core-concepts/devices) features.', + 'A [device](https://docs.seam.co/latest/core-concepts/devices) was deleted.', properties: { connected_account_id: { description: @@ -12728,10 +13181,7 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['device.error.subscription_required'], - type: 'string', - }, + event_type: { enum: ['device.deleted'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -12758,7 +13208,7 @@ export default { }, { description: - 'A third-party subscription is active or no longer required to use all [device](https://docs.seam.co/latest/core-concepts/devices) features.', + 'Seam detected that a [device](https://docs.seam.co/latest/core-concepts/devices) is using a third-party integration that will interfere with Seam device management.', properties: { connected_account_id: { description: @@ -12782,7 +13232,7 @@ export default { type: 'string', }, event_type: { - enum: ['device.error.subscription_required.resolved'], + enum: ['device.third_party_integration_detected'], type: 'string', }, occurred_at: { @@ -12811,7 +13261,7 @@ export default { }, { description: - 'An accessory keypad was connected to a [device](https://docs.seam.co/latest/core-concepts/devices).', + 'Seam detected that a [device](https://docs.seam.co/latest/core-concepts/devices) is no longer using a third-party integration that was interfering with Seam device management.', properties: { connected_account_id: { description: @@ -12835,7 +13285,7 @@ export default { type: 'string', }, event_type: { - enum: ['device.accessory_keypad_connected'], + enum: ['device.third_party_integration_no_longer_detected'], type: 'string', }, occurred_at: { @@ -12864,7 +13314,7 @@ export default { }, { description: - 'An accessory keypad was disconnected from a [device](https://docs.seam.co/latest/core-concepts/devices).', + 'A [Salto device](https://docs.seam.co/latest/device-and-system-integration-guides/salto-locks) activated privacy mode.', properties: { connected_account_id: { description: @@ -12888,7 +13338,7 @@ export default { type: 'string', }, event_type: { - enum: ['device.accessory_keypad_disconnected'], + enum: ['device.salto.privacy_mode_activated'], type: 'string', }, occurred_at: { @@ -12917,7 +13367,7 @@ export default { }, { description: - 'Extended periods of noise or noise exceeding a [threshold](https://docs.seam.co/latest/capability-guides/noise-sensors#what-is-a-threshold) were detected.', + 'A [Salto device](https://docs.seam.co/latest/device-and-system-integration-guides/salto-locks) deactivated privacy mode.', properties: { connected_account_id: { description: @@ -12941,45 +13391,13 @@ export default { type: 'string', }, event_type: { - enum: ['noise_sensor.noise_threshold_triggered'], + enum: ['device.salto.privacy_mode_deactivated'], type: 'string', }, - minut_metadata: { - additionalProperties: {}, - description: 'Metadata from Minut.', - type: 'object', - }, - noise_level_decibels: { - description: 'Detected noise level in decibels.', - format: 'float', - type: 'number', - }, - noise_level_nrs: { - description: - 'Detected noise level in Noiseaware Noise Risk Score (NRS).', - format: 'float', - type: 'number', - }, - noise_threshold_id: { - description: - 'ID of the [noise threshold](https://docs.seam.co/latest/capability-guides/noise-sensors#what-is-a-threshold) that was triggered.', - format: 'uuid', - type: 'string', - }, - noise_threshold_name: { - description: - 'Name of the [noise threshold](https://docs.seam.co/latest/capability-guides/noise-sensors#what-is-a-threshold) that was triggered.', - type: 'string', - }, - noiseaware_metadata: { - additionalProperties: {}, - description: 'Metadata from Noiseaware.', - type: 'object', - }, - occurred_at: { - description: 'Date and time at which the event occurred.', - format: 'date-time', - type: 'string', + occurred_at: { + description: 'Date and time at which the event occurred.', + format: 'date-time', + type: 'string', }, workspace_id: { description: @@ -12998,24 +13416,12 @@ export default { 'event_type', ], type: 'object', - 'x-route-path': '/noise_sensors/noise_thresholds', + 'x-route-path': '/devices', }, { description: - 'A [lock](https://docs.seam.co/latest/capability-guides/smart-locks) was locked.', + 'Seam detected a flaky [device](https://docs.seam.co/latest/core-concepts/devices) connection.', properties: { - access_code_id: { - description: - 'ID of the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used to lock the device.', - format: 'uuid', - type: 'string', - }, - action_attempt_id: { - description: - 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) associated with the lock action.', - format: 'uuid', - type: 'string', - }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -13037,11 +13443,8 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['lock.locked'], type: 'string' }, - method: { - description: - 'Method by which a [lock device](https://docs.seam.co/latest/capability-guides/smart-locks) was locked. When the method is `keycode`, the `access_code_id` indicates the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used, if reported by the device.', - enum: ['keycode', 'manual', 'automatic', 'unknown', 'seamapi'], + event_type: { + enum: ['device.connection_became_flaky'], type: 'string', }, occurred_at: { @@ -13064,27 +13467,14 @@ export default { 'device_id', 'connected_account_id', 'event_type', - 'method', ], type: 'object', - 'x-route-path': '/locks', + 'x-route-path': '/devices', }, { description: - 'A [lock](https://docs.seam.co/latest/capability-guides/smart-locks) was unlocked.', + 'Seam detected that a previously-flaky [device](https://docs.seam.co/latest/core-concepts/devices) connection stabilized.', properties: { - access_code_id: { - description: - 'ID of the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used to unlock the device.', - format: 'uuid', - type: 'string', - }, - action_attempt_id: { - description: - 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) associated with the unlock action.', - format: 'uuid', - type: 'string', - }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -13106,11 +13496,8 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['lock.unlocked'], type: 'string' }, - method: { - description: - 'Method by which a [lock device](https://docs.seam.co/latest/capability-guides/smart-locks) was unlocked. When the method is `keycode`, the `access_code_id` indicates the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used, if reported by the device.', - enum: ['keycode', 'manual', 'automatic', 'unknown', 'seamapi'], + event_type: { + enum: ['device.connection_stabilized'], type: 'string', }, occurred_at: { @@ -13133,21 +13520,14 @@ export default { 'device_id', 'connected_account_id', 'event_type', - 'method', ], type: 'object', - 'x-route-path': '/locks', + 'x-route-path': '/devices', }, { description: - 'The [lock](https://docs.seam.co/latest/capability-guides/smart-locks) denied access to a user after one or more consecutive invalid attempts to unlock the device.', + 'A third-party subscription is required to use all [device](https://docs.seam.co/latest/core-concepts/devices) features.', properties: { - access_code_id: { - description: - 'ID of the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used in the unlock attempts.', - format: 'uuid', - type: 'string', - }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -13169,7 +13549,10 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['lock.access_denied'], type: 'string' }, + event_type: { + enum: ['device.error.subscription_required'], + type: 'string', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -13192,17 +13575,12 @@ export default { 'event_type', ], type: 'object', - 'x-route-path': '/locks', + 'x-route-path': '/devices', }, { description: - 'A thermostat [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) was activated.', + 'A third-party subscription is active or no longer required to use all [device](https://docs.seam.co/latest/core-concepts/devices) features.', properties: { - climate_preset_key: { - description: - 'Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) that was activated.', - type: 'string', - }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -13225,26 +13603,14 @@ export default { type: 'string', }, event_type: { - enum: ['thermostat.climate_preset_activated'], + enum: ['device.error.subscription_required.resolved'], type: 'string', }, - is_fallback_climate_preset: { - description: - 'Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) that was activated is the [fallback climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', - type: 'boolean', - }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', type: 'string', }, - thermostat_schedule_id: { - description: - 'ID of the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that prompted the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to be activated.', - format: 'uuid', - nullable: true, - type: 'string', - }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -13260,16 +13626,13 @@ export default { 'device_id', 'connected_account_id', 'event_type', - 'thermostat_schedule_id', - 'climate_preset_key', - 'is_fallback_climate_preset', ], type: 'object', - 'x-route-path': '/thermostats', + 'x-route-path': '/devices', }, { description: - 'A [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) was adjusted manually.', + 'An accessory keypad was connected to a [device](https://docs.seam.co/latest/core-concepts/devices).', properties: { connected_account_id: { description: @@ -13277,18 +13640,6 @@ export default { format: 'uuid', type: 'string', }, - cooling_set_point_celsius: { - description: - 'Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/latest/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/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).', - format: 'float', - type: 'number', - }, created_at: { description: 'Date and time at which the event was created.', format: 'date-time', @@ -13305,37 +13656,7 @@ export default { type: 'string', }, event_type: { - enum: ['thermostat.manually_adjusted'], - type: 'string', - }, - fan_mode_setting: { - description: - 'Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.', - enum: ['auto', 'on', 'circulate'], - type: 'string', - }, - heating_set_point_celsius: { - description: - 'Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/latest/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/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).', - format: 'float', - type: 'number', - }, - hvac_mode_setting: { - description: - 'Desired [HVAC mode](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.', - enum: ['off', 'heat', 'cool', 'heat_cool'], - type: 'string', - }, - method: { - description: - 'Method used to adjust the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) manually. `seam` indicates that the Seam API, Seam CLI, or Seam Console was used to adjust the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', - enum: ['seam', 'external'], + enum: ['device.accessory_keypad_connected'], type: 'string', }, occurred_at: { @@ -13358,14 +13679,13 @@ export default { 'device_id', 'connected_account_id', 'event_type', - 'method', ], type: 'object', - 'x-route-path': '/thermostats', + 'x-route-path': '/devices', }, { description: - "A [thermostat's](https://docs.seam.co/latest/capability-guides/thermostats) temperature reading exceeded the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).", + 'An accessory keypad was disconnected from a [device](https://docs.seam.co/latest/core-concepts/devices).', properties: { connected_account_id: { description: @@ -13389,54 +13709,14 @@ export default { type: 'string', }, event_type: { - enum: ['thermostat.temperature_threshold_exceeded'], + enum: ['device.accessory_keypad_disconnected'], type: 'string', }, - lower_limit_celsius: { - description: - 'Lower temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', - format: 'float', - nullable: true, - type: 'number', - }, - lower_limit_fahrenheit: { - description: - 'Lower temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', - format: 'float', - nullable: true, - type: 'number', - }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', type: 'string', }, - temperature_celsius: { - description: - 'Temperature, in °C, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', - format: 'float', - type: 'number', - }, - temperature_fahrenheit: { - description: - 'Temperature, in °F, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', - format: 'float', - type: 'number', - }, - upper_limit_celsius: { - description: - 'Upper temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', - format: 'float', - nullable: true, - type: 'number', - }, - upper_limit_fahrenheit: { - description: - 'Upper temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', - format: 'float', - nullable: true, - type: 'number', - }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -13452,19 +13732,13 @@ export default { 'device_id', 'connected_account_id', 'event_type', - 'temperature_celsius', - 'temperature_fahrenheit', - 'upper_limit_celsius', - 'upper_limit_fahrenheit', - 'lower_limit_celsius', - 'lower_limit_fahrenheit', ], type: 'object', - 'x-route-path': '/thermostats', + 'x-route-path': '/devices', }, { description: - "A [thermostat's](https://docs.seam.co/latest/capability-guides/thermostats) temperature reading no longer exceeds the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).", + 'Extended periods of noise or noise exceeding a [threshold](https://docs.seam.co/latest/capability-guides/noise-sensors#what-is-a-threshold) were detected.', properties: { connected_account_id: { description: @@ -13488,54 +13762,46 @@ export default { type: 'string', }, event_type: { - enum: ['thermostat.temperature_threshold_no_longer_exceeded'], + enum: ['noise_sensor.noise_threshold_triggered'], type: 'string', }, - lower_limit_celsius: { - description: - 'Lower temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + minut_metadata: { + additionalProperties: {}, + description: 'Metadata from Minut.', + type: 'object', + }, + noise_level_decibels: { + description: 'Detected noise level in decibels.', format: 'float', - nullable: true, type: 'number', }, - lower_limit_fahrenheit: { + noise_level_nrs: { description: - 'Lower temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + 'Detected noise level in Noiseaware Noise Risk Score (NRS).', format: 'float', - nullable: true, type: 'number', }, + noise_threshold_id: { + description: + 'ID of the [noise threshold](https://docs.seam.co/latest/capability-guides/noise-sensors#what-is-a-threshold) that was triggered.', + format: 'uuid', + type: 'string', + }, + noise_threshold_name: { + description: + 'Name of the [noise threshold](https://docs.seam.co/latest/capability-guides/noise-sensors#what-is-a-threshold) that was triggered.', + type: 'string', + }, + noiseaware_metadata: { + additionalProperties: {}, + description: 'Metadata from Noiseaware.', + type: 'object', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', type: 'string', }, - temperature_celsius: { - description: - 'Temperature, in °C, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', - format: 'float', - type: 'number', - }, - temperature_fahrenheit: { - description: - 'Temperature, in °F, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', - format: 'float', - type: 'number', - }, - upper_limit_celsius: { - description: - 'Upper temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', - format: 'float', - nullable: true, - type: 'number', - }, - upper_limit_fahrenheit: { - description: - 'Upper temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', - format: 'float', - nullable: true, - type: 'number', - }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -13551,20 +13817,26 @@ export default { 'device_id', 'connected_account_id', 'event_type', - 'temperature_celsius', - 'temperature_fahrenheit', - 'upper_limit_celsius', - 'upper_limit_fahrenheit', - 'lower_limit_celsius', - 'lower_limit_fahrenheit', ], type: 'object', - 'x-route-path': '/thermostats', + 'x-route-path': '/noise_sensors/noise_thresholds', }, { description: - "A [thermostat's](https://docs.seam.co/latest/capability-guides/thermostats) temperature reading is within 1 °C of the configured cooling or heating [set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + 'A [lock](https://docs.seam.co/latest/capability-guides/smart-locks) was locked.', properties: { + access_code_id: { + description: + 'ID of the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used to lock the device.', + format: 'uuid', + type: 'string', + }, + action_attempt_id: { + description: + 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) associated with the lock action.', + format: 'uuid', + type: 'string', + }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -13576,18 +13848,6 @@ export default { format: 'date-time', type: 'string', }, - desired_temperature_celsius: { - description: - "Desired temperature, in °C, defined by the [thermostat's](https://docs.seam.co/latest/capability-guides/thermostats) cooling or heating [set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", - format: 'float', - type: 'number', - }, - desired_temperature_fahrenheit: { - description: - "Desired temperature, in °F, defined by the [thermostat's](https://docs.seam.co/latest/capability-guides/thermostats) cooling or heating [set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", - format: 'float', - type: 'number', - }, device_id: { description: 'ID of the device.', format: 'uuid', @@ -13598,8 +13858,11 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['thermostat.temperature_reached_set_point'], + event_type: { enum: ['lock.locked'], type: 'string' }, + method: { + description: + 'Method by which a [lock device](https://docs.seam.co/latest/capability-guides/smart-locks) was locked. When the method is `keycode`, the `access_code_id` indicates the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used, if reported by the device.', + enum: ['keycode', 'manual', 'automatic', 'unknown', 'seamapi'], type: 'string', }, occurred_at: { @@ -13607,18 +13870,6 @@ export default { format: 'date-time', type: 'string', }, - temperature_celsius: { - description: - 'Temperature, in °C, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', - format: 'float', - type: 'number', - }, - temperature_fahrenheit: { - description: - 'Temperature, in °F, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', - format: 'float', - type: 'number', - }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -13634,16 +13885,27 @@ export default { 'device_id', 'connected_account_id', 'event_type', - 'temperature_celsius', - 'temperature_fahrenheit', + 'method', ], type: 'object', - 'x-route-path': '/thermostats', + 'x-route-path': '/locks', }, { description: - "A [thermostat's](https://docs.seam.co/latest/capability-guides/thermostats) reported temperature changed by at least 1 °C.", + 'A [lock](https://docs.seam.co/latest/capability-guides/smart-locks) was unlocked.', properties: { + access_code_id: { + description: + 'ID of the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used to unlock the device.', + format: 'uuid', + type: 'string', + }, + action_attempt_id: { + description: + 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) associated with the unlock action.', + format: 'uuid', + type: 'string', + }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -13665,8 +13927,11 @@ export default { format: 'uuid', type: 'string', }, - event_type: { - enum: ['thermostat.temperature_changed'], + event_type: { enum: ['lock.unlocked'], type: 'string' }, + method: { + description: + 'Method by which a [lock device](https://docs.seam.co/latest/capability-guides/smart-locks) was unlocked. When the method is `keycode`, the `access_code_id` indicates the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used, if reported by the device.', + enum: ['keycode', 'manual', 'automatic', 'unknown', 'seamapi'], type: 'string', }, occurred_at: { @@ -13674,18 +13939,6 @@ export default { format: 'date-time', type: 'string', }, - temperature_celsius: { - description: - 'Temperature, in °C, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', - format: 'float', - type: 'number', - }, - temperature_fahrenheit: { - description: - 'Temperature, in °F, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', - format: 'float', - type: 'number', - }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -13701,16 +13954,21 @@ export default { 'device_id', 'connected_account_id', 'event_type', - 'temperature_celsius', - 'temperature_fahrenheit', + 'method', ], type: 'object', - 'x-route-path': '/thermostats', + 'x-route-path': '/locks', }, { description: - 'The name of a [device](https://docs.seam.co/latest/core-concepts/devices) was changed.', + 'The [lock](https://docs.seam.co/latest/capability-guides/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](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used in the unlock attempts.', + format: 'uuid', + type: 'string', + }, connected_account_id: { description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', @@ -13727,16 +13985,12 @@ export default { format: 'uuid', type: 'string', }, - device_name: { - description: 'The new name of the device.', - type: 'string', - }, event_id: { description: 'ID of the event.', format: 'uuid', type: 'string', }, - event_type: { enum: ['device.name_changed'], type: 'string' }, + event_type: { enum: ['lock.access_denied'], type: 'string' }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -13757,23 +14011,32 @@ export default { 'device_id', 'connected_account_id', 'event_type', - 'device_name', ], type: 'object', - 'x-route-path': '/devices', + 'x-route-path': '/locks', }, { description: - 'An [enrollment automation](https://docs.seam.co/latest/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.', + 'A thermostat [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) was activated.', properties: { + climate_preset_key: { + description: + 'Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) that was activated.', + type: 'string', + }, + connected_account_id: { + description: + 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + format: 'uuid', + type: 'string', + }, created_at: { description: 'Date and time at which the event was created.', format: 'date-time', type: 'string', }, - enrollment_automation_id: { - description: - 'ID of the [enrollment automation](https://docs.seam.co/latest/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).', + device_id: { + description: 'ID of the device.', format: 'uuid', type: 'string', }, @@ -13783,14 +14046,26 @@ export default { type: 'string', }, event_type: { - enum: ['enrollment_automation.deleted'], + enum: ['thermostat.climate_preset_activated'], type: 'string', }, + is_fallback_climate_preset: { + description: + 'Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) that was activated is the [fallback climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', + type: 'boolean', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', type: 'string', }, + thermostat_schedule_id: { + description: + 'ID of the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that prompted the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to be activated.', + format: 'uuid', + nullable: true, + type: 'string', + }, workspace_id: { description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', @@ -13803,23 +14078,45 @@ export default { 'workspace_id', 'created_at', 'occurred_at', - 'enrollment_automation_id', + 'device_id', + 'connected_account_id', 'event_type', + 'thermostat_schedule_id', + 'climate_preset_key', + 'is_fallback_climate_preset', ], type: 'object', - 'x-route-path': '/user_identities/enrollment_automations', + 'x-route-path': '/thermostats', }, { - description: 'A phone device was deactivated.', + description: + 'A [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) was adjusted manually.', properties: { + connected_account_id: { + description: + 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + format: 'uuid', + type: 'string', + }, + cooling_set_point_celsius: { + description: + 'Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/latest/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/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).', + format: 'float', + type: 'number', + }, created_at: { description: 'Date and time at which the event was created.', format: 'date-time', type: 'string', }, device_id: { - description: - 'ID of the [device](https://docs.seam.co/latest/core-concepts/devices).', + description: 'ID of the device.', format: 'uuid', type: 'string', }, @@ -13828,7 +14125,40 @@ export default { format: 'uuid', type: 'string', }, - event_type: { enum: ['phone.deactivated'], type: 'string' }, + event_type: { + enum: ['thermostat.manually_adjusted'], + type: 'string', + }, + fan_mode_setting: { + description: + 'Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.', + enum: ['auto', 'on', 'circulate'], + type: 'string', + }, + heating_set_point_celsius: { + description: + 'Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/latest/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/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).', + format: 'float', + type: 'number', + }, + hvac_mode_setting: { + description: + 'Desired [HVAC mode](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.', + enum: ['off', 'heat', 'cool', 'heat_cool'], + type: 'string', + }, + method: { + description: + 'Method used to adjust the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) manually. `seam` indicates that the Seam API, Seam CLI, or Seam Console was used to adjust the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', + enum: ['seam', 'external'], + type: 'string', + }, occurred_at: { description: 'Date and time at which the event occurred.', format: 'date-time', @@ -13847,26 +14177,517 @@ export default { 'created_at', 'occurred_at', 'device_id', + 'connected_account_id', 'event_type', + 'method', ], type: 'object', - 'x-route-path': '/phones', + 'x-route-path': '/thermostats', }, - ], - 'x-route-path': '/events', - }, - instant_key: { - properties: { - client_session_id: { format: 'uuid', type: 'string' }, - created_at: { format: 'date-time', type: 'string' }, - expires_at: { format: 'date-time', type: 'string' }, - instant_key_id: { format: 'uuid', type: 'string' }, - instant_key_url: { format: 'uri', type: 'string' }, - user_identity_id: { format: 'uuid', type: 'string' }, - workspace_id: { format: 'uuid', type: 'string' }, - }, - required: [ - 'instant_key_id', + { + description: + "A [thermostat's](https://docs.seam.co/latest/capability-guides/thermostats) temperature reading exceeded the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).", + properties: { + connected_account_id: { + description: + 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + format: 'uuid', + type: 'string', + }, + created_at: { + description: 'Date and time at which the event was created.', + format: 'date-time', + type: 'string', + }, + device_id: { + description: 'ID of the device.', + format: 'uuid', + type: 'string', + }, + event_id: { + description: 'ID of the event.', + format: 'uuid', + type: 'string', + }, + event_type: { + enum: ['thermostat.temperature_threshold_exceeded'], + type: 'string', + }, + lower_limit_celsius: { + description: + 'Lower temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + format: 'float', + nullable: true, + type: 'number', + }, + lower_limit_fahrenheit: { + description: + 'Lower temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + format: 'float', + nullable: true, + type: 'number', + }, + occurred_at: { + description: 'Date and time at which the event occurred.', + format: 'date-time', + type: 'string', + }, + temperature_celsius: { + description: + 'Temperature, in °C, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', + format: 'float', + type: 'number', + }, + temperature_fahrenheit: { + description: + 'Temperature, in °F, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', + format: 'float', + type: 'number', + }, + upper_limit_celsius: { + description: + 'Upper temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + format: 'float', + nullable: true, + type: 'number', + }, + upper_limit_fahrenheit: { + description: + 'Upper temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + format: 'float', + nullable: true, + type: 'number', + }, + workspace_id: { + description: + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + format: 'uuid', + type: 'string', + }, + }, + required: [ + 'event_id', + 'workspace_id', + 'created_at', + 'occurred_at', + 'device_id', + 'connected_account_id', + 'event_type', + 'temperature_celsius', + 'temperature_fahrenheit', + 'upper_limit_celsius', + 'upper_limit_fahrenheit', + 'lower_limit_celsius', + 'lower_limit_fahrenheit', + ], + type: 'object', + 'x-route-path': '/thermostats', + }, + { + description: + "A [thermostat's](https://docs.seam.co/latest/capability-guides/thermostats) temperature reading no longer exceeds the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).", + properties: { + connected_account_id: { + description: + 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + format: 'uuid', + type: 'string', + }, + created_at: { + description: 'Date and time at which the event was created.', + format: 'date-time', + type: 'string', + }, + device_id: { + description: 'ID of the device.', + format: 'uuid', + type: 'string', + }, + event_id: { + description: 'ID of the event.', + format: 'uuid', + type: 'string', + }, + event_type: { + enum: ['thermostat.temperature_threshold_no_longer_exceeded'], + type: 'string', + }, + lower_limit_celsius: { + description: + 'Lower temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + format: 'float', + nullable: true, + type: 'number', + }, + lower_limit_fahrenheit: { + description: + 'Lower temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + format: 'float', + nullable: true, + type: 'number', + }, + occurred_at: { + description: 'Date and time at which the event occurred.', + format: 'date-time', + type: 'string', + }, + temperature_celsius: { + description: + 'Temperature, in °C, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', + format: 'float', + type: 'number', + }, + temperature_fahrenheit: { + description: + 'Temperature, in °F, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', + format: 'float', + type: 'number', + }, + upper_limit_celsius: { + description: + 'Upper temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + format: 'float', + nullable: true, + type: 'number', + }, + upper_limit_fahrenheit: { + description: + 'Upper temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + format: 'float', + nullable: true, + type: 'number', + }, + workspace_id: { + description: + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + format: 'uuid', + type: 'string', + }, + }, + required: [ + 'event_id', + 'workspace_id', + 'created_at', + 'occurred_at', + 'device_id', + 'connected_account_id', + 'event_type', + 'temperature_celsius', + 'temperature_fahrenheit', + 'upper_limit_celsius', + 'upper_limit_fahrenheit', + 'lower_limit_celsius', + 'lower_limit_fahrenheit', + ], + type: 'object', + 'x-route-path': '/thermostats', + }, + { + description: + "A [thermostat's](https://docs.seam.co/latest/capability-guides/thermostats) temperature reading is within 1 °C of the configured cooling or heating [set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + properties: { + connected_account_id: { + description: + 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + format: 'uuid', + type: 'string', + }, + created_at: { + description: 'Date and time at which the event was created.', + format: 'date-time', + type: 'string', + }, + desired_temperature_celsius: { + description: + "Desired temperature, in °C, defined by the [thermostat's](https://docs.seam.co/latest/capability-guides/thermostats) cooling or heating [set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + format: 'float', + type: 'number', + }, + desired_temperature_fahrenheit: { + description: + "Desired temperature, in °F, defined by the [thermostat's](https://docs.seam.co/latest/capability-guides/thermostats) cooling or heating [set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).", + format: 'float', + type: 'number', + }, + device_id: { + description: 'ID of the device.', + format: 'uuid', + type: 'string', + }, + event_id: { + description: 'ID of the event.', + format: 'uuid', + type: 'string', + }, + event_type: { + enum: ['thermostat.temperature_reached_set_point'], + type: 'string', + }, + occurred_at: { + description: 'Date and time at which the event occurred.', + format: 'date-time', + type: 'string', + }, + temperature_celsius: { + description: + 'Temperature, in °C, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', + format: 'float', + type: 'number', + }, + temperature_fahrenheit: { + description: + 'Temperature, in °F, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', + format: 'float', + type: 'number', + }, + workspace_id: { + description: + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + format: 'uuid', + type: 'string', + }, + }, + required: [ + 'event_id', + 'workspace_id', + 'created_at', + 'occurred_at', + 'device_id', + 'connected_account_id', + 'event_type', + 'temperature_celsius', + 'temperature_fahrenheit', + ], + type: 'object', + 'x-route-path': '/thermostats', + }, + { + description: + "A [thermostat's](https://docs.seam.co/latest/capability-guides/thermostats) reported temperature changed by at least 1 °C.", + properties: { + connected_account_id: { + description: + 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + format: 'uuid', + type: 'string', + }, + created_at: { + description: 'Date and time at which the event was created.', + format: 'date-time', + type: 'string', + }, + device_id: { + description: 'ID of the device.', + format: 'uuid', + type: 'string', + }, + event_id: { + description: 'ID of the event.', + format: 'uuid', + type: 'string', + }, + event_type: { + enum: ['thermostat.temperature_changed'], + type: 'string', + }, + occurred_at: { + description: 'Date and time at which the event occurred.', + format: 'date-time', + type: 'string', + }, + temperature_celsius: { + description: + 'Temperature, in °C, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', + format: 'float', + type: 'number', + }, + temperature_fahrenheit: { + description: + 'Temperature, in °F, reported by the [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', + format: 'float', + type: 'number', + }, + workspace_id: { + description: + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + format: 'uuid', + type: 'string', + }, + }, + required: [ + 'event_id', + 'workspace_id', + 'created_at', + 'occurred_at', + 'device_id', + 'connected_account_id', + 'event_type', + 'temperature_celsius', + 'temperature_fahrenheit', + ], + type: 'object', + 'x-route-path': '/thermostats', + }, + { + description: + 'The name of a [device](https://docs.seam.co/latest/core-concepts/devices) was changed.', + properties: { + connected_account_id: { + description: + 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + format: 'uuid', + type: 'string', + }, + created_at: { + description: 'Date and time at which the event was created.', + format: 'date-time', + type: 'string', + }, + device_id: { + description: 'ID of the device.', + format: 'uuid', + type: 'string', + }, + device_name: { + description: 'The new name of the device.', + type: 'string', + }, + event_id: { + description: 'ID of the event.', + format: 'uuid', + type: 'string', + }, + event_type: { enum: ['device.name_changed'], type: 'string' }, + occurred_at: { + description: 'Date and time at which the event occurred.', + format: 'date-time', + type: 'string', + }, + workspace_id: { + description: + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + format: 'uuid', + type: 'string', + }, + }, + required: [ + 'event_id', + 'workspace_id', + 'created_at', + 'occurred_at', + 'device_id', + 'connected_account_id', + 'event_type', + 'device_name', + ], + type: 'object', + 'x-route-path': '/devices', + }, + { + description: + 'An [enrollment automation](https://docs.seam.co/latest/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.', + format: 'date-time', + type: 'string', + }, + enrollment_automation_id: { + description: + 'ID of the [enrollment automation](https://docs.seam.co/latest/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).', + format: 'uuid', + type: 'string', + }, + event_id: { + description: 'ID of the event.', + format: 'uuid', + type: 'string', + }, + event_type: { + enum: ['enrollment_automation.deleted'], + type: 'string', + }, + occurred_at: { + description: 'Date and time at which the event occurred.', + format: 'date-time', + type: 'string', + }, + workspace_id: { + description: + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + format: 'uuid', + type: 'string', + }, + }, + required: [ + 'event_id', + 'workspace_id', + 'created_at', + 'occurred_at', + 'enrollment_automation_id', + 'event_type', + ], + type: 'object', + 'x-route-path': '/user_identities/enrollment_automations', + }, + { + description: 'A phone device was deactivated.', + properties: { + created_at: { + description: 'Date and time at which the event was created.', + format: 'date-time', + type: 'string', + }, + device_id: { + description: + 'ID of the [device](https://docs.seam.co/latest/core-concepts/devices).', + format: 'uuid', + type: 'string', + }, + event_id: { + description: 'ID of the event.', + format: 'uuid', + type: 'string', + }, + event_type: { enum: ['phone.deactivated'], type: 'string' }, + occurred_at: { + description: 'Date and time at which the event occurred.', + format: 'date-time', + type: 'string', + }, + workspace_id: { + description: + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + format: 'uuid', + type: 'string', + }, + }, + required: [ + 'event_id', + 'workspace_id', + 'created_at', + 'occurred_at', + 'device_id', + 'event_type', + ], + type: 'object', + 'x-route-path': '/phones', + }, + ], + 'x-route-path': '/events', + }, + instant_key: { + properties: { + client_session_id: { format: 'uuid', type: 'string' }, + created_at: { format: 'date-time', type: 'string' }, + expires_at: { format: 'date-time', type: 'string' }, + instant_key_id: { format: 'uuid', type: 'string' }, + instant_key_url: { format: 'uri', type: 'string' }, + user_identity_id: { format: 'uuid', type: 'string' }, + workspace_id: { format: 'uuid', type: 'string' }, + }, + required: [ + 'instant_key_id', 'workspace_id', 'created_at', 'instant_key_url', @@ -14114,9 +14935,15 @@ export default { }, 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/latest/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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + exclusiveMinimum: true, minimum: 0, nullable: true, type: 'integer', @@ -14138,12 +14965,6 @@ export default { format: 'uuid', type: 'string', }, - unstable_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/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.", - type: 'boolean', - 'x-undocumented': 'Unstable', - }, }, required: [ 'thermostat_schedule_id', @@ -16293,40 +17114,51 @@ export default { type: 'string', }, hid_acs_system_id: { format: 'uuid', type: 'string' }, - is_latest_desired_state_synced_with_provider: { - nullable: true, - type: 'boolean', - 'x-undocumented': 'Only used internally.', - }, is_managed: { enum: [false], type: 'boolean' }, is_suspended: { description: 'Indicates whether the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) is currently [suspended](https://docs.seam.co/latest/capability-guides/access-systems/user-management/suspending-and-unsuspending-users).', type: 'boolean', }, - latest_desired_state_synced_with_provider_at: { - format: 'date-time', - nullable: true, - type: 'string', - 'x-undocumented': 'Only used internally.', - }, pending_mutations: { + description: + 'Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.', items: { discriminator: { propertyName: 'mutation_code' }, oneOf: [ { + description: + 'Seam is in the process of pushing a user creation to the integrated access system.', properties: { - created_at: { format: 'date-time', type: 'string' }, - message: { type: 'string' }, + created_at: { + description: + 'Date and time at which the mutation was created.', + format: 'date-time', + type: 'string', + }, + message: { + description: 'Detailed description of the mutation.', + type: 'string', + }, mutation_code: { enum: ['creating'], type: 'string' }, }, required: ['created_at', 'message', 'mutation_code'], type: 'object', }, { + description: + 'Seam is in the process of pushing a user deletion to the integrated access system.', properties: { - created_at: { format: 'date-time', type: 'string' }, - message: { type: 'string' }, + created_at: { + description: + 'Date and time at which the mutation was created.', + format: 'date-time', + type: 'string', + }, + message: { + description: 'Detailed description of the mutation.', + type: 'string', + }, mutation_code: { enum: ['deleting'], type: 'string' }, }, required: ['created_at', 'message', 'mutation_code'], @@ -16334,7 +17166,12 @@ export default { }, { properties: { - created_at: { format: 'date-time', type: 'string' }, + created_at: { + description: + 'Date and time at which the mutation was created.', + format: 'date-time', + type: 'string', + }, from: { properties: { email_address: { @@ -16347,7 +17184,10 @@ export default { }, type: 'object', }, - message: { type: 'string' }, + message: { + description: 'Detailed description of the mutation.', + type: 'string', + }, mutation_code: { enum: ['updating_user_information'], type: 'string', @@ -16375,8 +17215,15 @@ export default { type: 'object', }, { + description: + 'Seam is in the process of pushing an access schedule update to the integrated access system.', properties: { - created_at: { format: 'date-time', type: 'string' }, + created_at: { + description: + 'Date and time at which the mutation was created.', + format: 'date-time', + type: 'string', + }, from: { properties: { ends_at: { @@ -16393,7 +17240,10 @@ export default { required: ['starts_at', 'ends_at'], type: 'object', }, - message: { type: 'string' }, + message: { + description: 'Detailed description of the mutation.', + type: 'string', + }, mutation_code: { enum: ['updating_access_schedule'], type: 'string', @@ -16425,14 +17275,24 @@ export default { type: 'object', }, { + description: + 'Seam is in the process of pushing a suspension state update to the integrated access system.', properties: { - created_at: { format: 'date-time', type: 'string' }, + created_at: { + description: + 'Date and time at which the mutation was created.', + format: 'date-time', + type: 'string', + }, from: { properties: { is_suspended: { type: 'boolean' } }, required: ['is_suspended'], type: 'object', }, - message: { type: 'string' }, + message: { + description: 'Detailed description of the mutation.', + type: 'string', + }, mutation_code: { enum: ['updating_suspension_state'], type: 'string', @@ -16453,11 +17313,20 @@ export default { type: 'object', }, { + description: + 'Seam is in the process of pushing an access group membership update to the integrated access system.', properties: { - created_at: { format: 'date-time', type: 'string' }, + created_at: { + description: + 'Date and time at which the mutation was created.', + format: 'date-time', + type: 'string', + }, from: { + description: 'Old access group membership.', properties: { acs_access_group_id: { + description: 'Old access group ID.', format: 'uuid', nullable: true, type: 'string', @@ -16466,14 +17335,19 @@ export default { required: ['acs_access_group_id'], type: 'object', }, - message: { type: 'string' }, + message: { + description: 'Detailed description of the mutation.', + type: 'string', + }, mutation_code: { enum: ['updating_group_membership'], type: 'string', }, to: { + description: 'New access group membership.', properties: { acs_access_group_id: { + description: 'New access group ID.', format: 'uuid', nullable: true, type: 'string', @@ -16495,7 +17369,6 @@ export default { ], }, type: 'array', - 'x-undocumented': 'Experimental.', }, phone_number: { description: @@ -17461,6 +18334,22 @@ export default { required: ['message', 'created_at', 'warning_code'], type: 'object', }, + { + description: + 'We detected that this device does not have a timezone configured. Time bound codes may not work as expected.', + properties: { + created_at: { format: 'date-time', type: 'string' }, + message: { type: 'string' }, + warning_code: { + description: + 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', + enum: ['lockly_timezone_not_configured'], + type: 'string', + }, + }, + required: ['message', 'created_at', 'warning_code'], + type: 'object', + }, ], }, type: 'array', @@ -18381,6 +19270,79 @@ export default { 'x-title': 'Pull a Backup Access Code', }, }, + '/access_codes/report_device_constraints': { + post: { + description: + 'Allows clients to report supported code length constraints for a SmartThings lock device.', + operationId: 'accessCodesReportDeviceConstraintsPost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + device_id: { + description: 'ID of the device to report constraints for.', + format: 'uuid', + type: 'string', + }, + max_code_length: { + description: + 'Maximum supported code length between 4 and 20 inclusive; cannot be provided with supported_code_lengths.', + maximum: 20, + minimum: 4, + type: 'integer', + }, + min_code_length: { + description: + 'Minimum supported code length between 4 and 20 inclusive; cannot be provided with supported_code_lengths.', + maximum: 20, + minimum: 4, + type: 'integer', + }, + supported_code_lengths: { + description: + 'Array of supported code lengths between 4 and 20 inclusive; cannot be provided with min_code_length or max_code_length.', + items: { maximum: 20, minimum: 4, type: 'integer' }, + minItems: 1, + type: 'array', + }, + }, + required: ['device_id'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { ok: { type: 'boolean' } }, + required: ['ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { client_session: [] }, + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + { api_key: [] }, + ], + summary: '/access_codes/report_device_constraints', + tags: ['/access_codes'], + 'x-fern-sdk-group-name': ['access_codes'], + 'x-fern-sdk-method-name': 'report_device_constraints', + 'x-response-key': null, + 'x-title': 'Report Device Code Constraints', + }, + }, '/access_codes/simulate/create_unmanaged_access_code': { post: { description: @@ -21099,12 +22061,76 @@ export default { 'x-title': 'List Unmanaged Credentials', 'x-undocumented': 'No unmanaged credentials are currently implemented.', }, - }, - '/acs/credentials/update': { - patch: { + }, + '/acs/credentials/update': { + patch: { + description: + 'Updates the code and ends at date and time for a specified [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', + operationId: 'acsCredentialsUpdatePatch', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + acs_credential_id: { + description: 'ID of the desired credential.', + type: 'string', + }, + code: { + description: + 'Replacement access (PIN) code for the credential.', + pattern: '^\\d+$', + type: 'string', + }, + ends_at: { + description: + 'Replacement date and time at which the validity of the credential 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 the `starts_at` value that you set when creating the credential.', + format: 'date-time', + type: 'string', + }, + }, + required: ['acs_credential_id'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { + acs_credential: { + $ref: '#/components/schemas/acs_credential', + }, + ok: { type: 'boolean' }, + }, + required: ['acs_credential', 'ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + { api_key: [] }, + ], + summary: '/acs/credentials/update', + tags: ['/acs'], + 'x-fern-ignore': true, + 'x-response-key': null, + 'x-title': 'Update a Credential', + }, + post: { description: 'Updates the code and ends at date and time for a specified [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', - operationId: 'acsCredentialsUpdatePatch', + operationId: 'acsCredentialsUpdatePost', requestBody: { content: { 'application/json': { @@ -21161,37 +22187,36 @@ export default { ], summary: '/acs/credentials/update', tags: ['/acs'], - 'x-fern-ignore': true, + 'x-fern-sdk-group-name': ['acs', 'credentials'], + 'x-fern-sdk-method-name': 'update', 'x-response-key': null, 'x-title': 'Update a Credential', }, + }, + '/acs/encoders/encode_access_method': { post: { description: - 'Updates the code and ends at date and time for a specified [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', - operationId: 'acsCredentialsUpdatePost', + 'Encodes an existing access method onto a plastic card placed on the specified [encoder](https://docs.seam.co/latest/capability-guides/access-systems/working-with-card-encoders-and-scanners).', + operationId: 'acsEncodersEncodeAccessMethodPost', requestBody: { content: { 'application/json': { schema: { properties: { - acs_credential_id: { - description: 'ID of the desired credential.', - type: 'string', - }, - code: { + access_method_id: { description: - 'Replacement access (PIN) code for the credential.', - pattern: '^\\d+$', + 'ID of the `access_method` to encode onto a card.', + format: 'uuid', type: 'string', }, - ends_at: { + acs_encoder_id: { description: - 'Replacement date and time at which the validity of the credential 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 the `starts_at` value that you set when creating the credential.', - format: 'date-time', + 'ID of the `acs_encoder` to use to encode the `access_method`.', + format: 'uuid', type: 'string', }, }, - required: ['acs_credential_id'], + required: ['acs_encoder_id', 'access_method_id'], type: 'object', }, }, @@ -21203,12 +22228,12 @@ export default { 'application/json': { schema: { properties: { - acs_credential: { - $ref: '#/components/schemas/acs_credential', + action_attempt: { + $ref: '#/components/schemas/action_attempt', }, ok: { type: 'boolean' }, }, - required: ['acs_credential', 'ok'], + required: ['action_attempt', 'ok'], type: 'object', }, }, @@ -21223,12 +22248,14 @@ export default { { console_session_with_workspace: [] }, { api_key: [] }, ], - summary: '/acs/credentials/update', + summary: '/acs/encoders/encode_access_method', tags: ['/acs'], - 'x-fern-sdk-group-name': ['acs', 'credentials'], - 'x-fern-sdk-method-name': 'update', - 'x-response-key': null, - 'x-title': 'Update a Credential', + 'x-action-attempt-type': 'ENCODE_ACCESS_METHOD', + 'x-fern-sdk-group-name': ['acs', 'encoders'], + 'x-fern-sdk-method-name': 'encode_access_method', + 'x-fern-sdk-return-value': 'action_attempt', + 'x-response-key': 'action_attempt', + 'x-title': 'Encode an Access Method', }, }, '/acs/encoders/encode_credential': { @@ -25708,6 +26735,14 @@ export default { 'access_code.unmanaged.failed_to_convert_to_managed', 'access_code.unmanaged.created', 'access_code.unmanaged.removed', + 'access_grant.created', + 'access_grant.deleted', + 'access_grant.access_granted_to_all_doors', + 'access_grant.access_granted_to_door', + 'access_grant.access_to_door_lost', + 'access_method.issued', + 'access_method.revoked', + 'access_method.card_encoding_required', 'acs_system.connected', 'acs_system.added', 'acs_system.disconnected', @@ -25794,6 +26829,14 @@ export default { 'access_code.unmanaged.failed_to_convert_to_managed', 'access_code.unmanaged.created', 'access_code.unmanaged.removed', + 'access_grant.created', + 'access_grant.deleted', + 'access_grant.access_granted_to_all_doors', + 'access_grant.access_granted_to_door', + 'access_grant.access_to_door_lost', + 'access_method.issued', + 'access_method.revoked', + 'access_method.card_encoding_required', 'acs_system.connected', 'acs_system.added', 'acs_system.disconnected', @@ -27370,22 +28413,402 @@ export default { type: 'string', }, }, - required: ['user_identity_id'], - type: 'object', + required: ['user_identity_id'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { + ok: { type: 'boolean' }, + phone: { $ref: '#/components/schemas/phone' }, + }, + required: ['phone', 'ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { api_key: [] }, + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + ], + summary: '/phones/simulate/create_sandbox_phone', + tags: ['/phones'], + 'x-fern-sdk-group-name': ['phones', 'simulate'], + 'x-fern-sdk-method-name': 'create_sandbox_phone', + 'x-fern-sdk-return-value': 'phone', + 'x-response-key': 'phone', + 'x-title': 'Create a Sandbox Phone', + }, + }, + '/seam/bridge/v1/bridge_client_sessions/create': { + post: { + description: 'Creates a new bridge client session.', + operationId: 'seamBridgeV1BridgeClientSessionsCreatePost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + bridge_client_machine_identifier_key: { type: 'string' }, + bridge_client_name: { type: 'string' }, + bridge_client_time_zone: { type: 'string' }, + }, + required: [ + 'bridge_client_name', + 'bridge_client_time_zone', + 'bridge_client_machine_identifier_key', + ], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { + bridge_client_session: { + properties: { + bridge_client_machine_identifier_key: { + type: 'string', + }, + bridge_client_name: { type: 'string' }, + bridge_client_session_id: { + format: 'uuid', + type: 'string', + }, + bridge_client_session_token: { type: 'string' }, + bridge_client_time_zone: { type: 'string' }, + created_at: { format: 'date-time', type: 'string' }, + errors: { + items: { + description: + 'Error associated with the `bridge_client_session`.', + discriminator: { propertyName: 'error_code' }, + oneOf: [ + { + description: + "Seam cannot reach the bridge's LAN", + properties: { + can_tailscale_proxy_reach_bridge: { + description: + 'Tailscale proxy cannot reach the bridge', + nullable: true, + type: 'boolean', + }, + can_tailscale_proxy_reach_tailscale_network: { + description: + 'Tailscale proxy cannot reach the Tailscale network', + nullable: true, + type: 'boolean', + }, + created_at: { + format: 'date-time', + type: 'string', + }, + error_code: { + description: + 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', + enum: ['bridge_lan_unreachable'], + type: 'string', + }, + is_bridge_socks_server_healthy: { + description: + "Bridge's SOCKS server is unhealthy", + nullable: true, + type: 'boolean', + }, + is_tailscale_proxy_reachable: { + description: + 'Seam cannot reach the tailscale proxy', + nullable: true, + type: 'boolean', + }, + is_tailscale_proxy_socks_server_healthy: { + description: + "Tailscale proxy's SOCKS server is unhealthy", + nullable: true, + type: 'boolean', + }, + message: { type: 'string' }, + }, + required: [ + 'message', + 'created_at', + 'error_code', + 'is_tailscale_proxy_reachable', + 'is_tailscale_proxy_socks_server_healthy', + 'can_tailscale_proxy_reach_tailscale_network', + 'can_tailscale_proxy_reach_bridge', + 'is_bridge_socks_server_healthy', + ], + type: 'object', + }, + { + description: + 'Bridge has stopped communicating with Seam', + properties: { + created_at: { + format: 'date-time', + type: 'string', + }, + error_code: { + description: + 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', + enum: ['no_communication_from_bridge'], + type: 'string', + }, + message: { type: 'string' }, + }, + required: [ + 'message', + 'created_at', + 'error_code', + ], + type: 'object', + }, + ], + }, + type: 'array', + }, + pairing_code: { + maxLength: 6, + minLength: 6, + type: 'string', + }, + pairing_code_expires_at: { + format: 'date-time', + type: 'string', + }, + tailscale_auth_key: { nullable: true, type: 'string' }, + tailscale_hostname: { type: 'string' }, + telemetry_token: { nullable: true, type: 'string' }, + telemetry_token_expires_at: { + format: 'date-time', + nullable: true, + type: 'string', + }, + telemetry_url: { nullable: true, type: 'string' }, + }, + required: [ + 'created_at', + 'bridge_client_session_id', + 'bridge_client_session_token', + 'pairing_code', + 'pairing_code_expires_at', + 'tailscale_hostname', + 'tailscale_auth_key', + 'bridge_client_name', + 'bridge_client_time_zone', + 'bridge_client_machine_identifier_key', + 'errors', + 'telemetry_token', + 'telemetry_token_expires_at', + 'telemetry_url', + ], + type: 'object', + 'x-route-path': '/seam/bridge/v1/bridge_client_sessions', + 'x-undocumented': 'Seam Bridge Client only.', + }, + ok: { type: 'boolean' }, + }, + required: ['bridge_client_session', 'ok'], + type: 'object', + }, }, }, + description: 'OK', }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, }, + security: [{ certified_client: [] }], + summary: '/seam/bridge/v1/bridge_client_sessions/create', + tags: [], + 'x-fern-sdk-group-name': [ + 'seam', + 'bridge', + 'v1', + 'bridge_client_sessions', + ], + 'x-fern-sdk-method-name': 'create', + 'x-fern-sdk-return-value': 'bridge_client_session', + 'x-response-key': 'bridge_client_session', + 'x-title': 'Create a Bridge Client Session', + 'x-undocumented': 'Seam Bridge Client only.', + }, + }, + '/seam/bridge/v1/bridge_client_sessions/get': { + get: { + description: + 'Returns the bridge client session associated with the session token used.', + operationId: 'seamBridgeV1BridgeClientSessionsGetGet', responses: { 200: { content: { 'application/json': { schema: { properties: { + bridge_client_session: { + properties: { + bridge_client_machine_identifier_key: { + type: 'string', + }, + bridge_client_name: { type: 'string' }, + bridge_client_session_id: { + format: 'uuid', + type: 'string', + }, + bridge_client_session_token: { type: 'string' }, + bridge_client_time_zone: { type: 'string' }, + created_at: { format: 'date-time', type: 'string' }, + errors: { + items: { + description: + 'Error associated with the `bridge_client_session`.', + discriminator: { propertyName: 'error_code' }, + oneOf: [ + { + description: + "Seam cannot reach the bridge's LAN", + properties: { + can_tailscale_proxy_reach_bridge: { + description: + 'Tailscale proxy cannot reach the bridge', + nullable: true, + type: 'boolean', + }, + can_tailscale_proxy_reach_tailscale_network: { + description: + 'Tailscale proxy cannot reach the Tailscale network', + nullable: true, + type: 'boolean', + }, + created_at: { + format: 'date-time', + type: 'string', + }, + error_code: { + description: + 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', + enum: ['bridge_lan_unreachable'], + type: 'string', + }, + is_bridge_socks_server_healthy: { + description: + "Bridge's SOCKS server is unhealthy", + nullable: true, + type: 'boolean', + }, + is_tailscale_proxy_reachable: { + description: + 'Seam cannot reach the tailscale proxy', + nullable: true, + type: 'boolean', + }, + is_tailscale_proxy_socks_server_healthy: { + description: + "Tailscale proxy's SOCKS server is unhealthy", + nullable: true, + type: 'boolean', + }, + message: { type: 'string' }, + }, + required: [ + 'message', + 'created_at', + 'error_code', + 'is_tailscale_proxy_reachable', + 'is_tailscale_proxy_socks_server_healthy', + 'can_tailscale_proxy_reach_tailscale_network', + 'can_tailscale_proxy_reach_bridge', + 'is_bridge_socks_server_healthy', + ], + type: 'object', + }, + { + description: + 'Bridge has stopped communicating with Seam', + properties: { + created_at: { + format: 'date-time', + type: 'string', + }, + error_code: { + description: + 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', + enum: ['no_communication_from_bridge'], + type: 'string', + }, + message: { type: 'string' }, + }, + required: [ + 'message', + 'created_at', + 'error_code', + ], + type: 'object', + }, + ], + }, + type: 'array', + }, + pairing_code: { + maxLength: 6, + minLength: 6, + type: 'string', + }, + pairing_code_expires_at: { + format: 'date-time', + type: 'string', + }, + tailscale_auth_key: { nullable: true, type: 'string' }, + tailscale_hostname: { type: 'string' }, + telemetry_token: { nullable: true, type: 'string' }, + telemetry_token_expires_at: { + format: 'date-time', + nullable: true, + type: 'string', + }, + telemetry_url: { nullable: true, type: 'string' }, + }, + required: [ + 'created_at', + 'bridge_client_session_id', + 'bridge_client_session_token', + 'pairing_code', + 'pairing_code_expires_at', + 'tailscale_hostname', + 'tailscale_auth_key', + 'bridge_client_name', + 'bridge_client_time_zone', + 'bridge_client_machine_identifier_key', + 'errors', + 'telemetry_token', + 'telemetry_token_expires_at', + 'telemetry_url', + ], + type: 'object', + 'x-route-path': '/seam/bridge/v1/bridge_client_sessions', + 'x-undocumented': 'Seam Bridge Client only.', + }, ok: { type: 'boolean' }, - phone: { $ref: '#/components/schemas/phone' }, }, - required: ['phone', 'ok'], + required: ['bridge_client_session', 'ok'], type: 'object', }, }, @@ -27395,43 +28818,18 @@ export default { 400: { description: 'Bad Request' }, 401: { description: 'Unauthorized' }, }, - security: [ - { api_key: [] }, - { pat_with_workspace: [] }, - { console_session_with_workspace: [] }, - ], - summary: '/phones/simulate/create_sandbox_phone', - tags: ['/phones'], - 'x-fern-sdk-group-name': ['phones', 'simulate'], - 'x-fern-sdk-method-name': 'create_sandbox_phone', - 'x-fern-sdk-return-value': 'phone', - 'x-response-key': 'phone', - 'x-title': 'Create a Sandbox Phone', + security: [{ bridge_client_session: [] }], + summary: '/seam/bridge/v1/bridge_client_sessions/get', + tags: [], + 'x-fern-ignore': true, + 'x-response-key': 'bridge_client_session', + 'x-title': 'Get a Bridge Client Session', + 'x-undocumented': 'Seam Bridge Client only.', }, - }, - '/seam/bridge/v1/bridge_client_sessions/create': { post: { - description: 'Creates a new bridge client session.', - operationId: 'seamBridgeV1BridgeClientSessionsCreatePost', - requestBody: { - content: { - 'application/json': { - schema: { - properties: { - bridge_client_machine_identifier_key: { type: 'string' }, - bridge_client_name: { type: 'string' }, - bridge_client_time_zone: { type: 'string' }, - }, - required: [ - 'bridge_client_name', - 'bridge_client_time_zone', - 'bridge_client_machine_identifier_key', - ], - type: 'object', - }, - }, - }, - }, + description: + 'Returns the bridge client session associated with the session token used.', + operationId: 'seamBridgeV1BridgeClientSessionsGetPost', responses: { 200: { content: { @@ -27593,8 +28991,8 @@ export default { 400: { description: 'Bad Request' }, 401: { description: 'Unauthorized' }, }, - security: [{ certified_client: [] }], - summary: '/seam/bridge/v1/bridge_client_sessions/create', + security: [{ bridge_client_session: [] }], + summary: '/seam/bridge/v1/bridge_client_sessions/get', tags: [], 'x-fern-sdk-group-name': [ 'seam', @@ -27602,18 +29000,19 @@ export default { 'v1', 'bridge_client_sessions', ], - 'x-fern-sdk-method-name': 'create', + 'x-fern-sdk-method-name': 'get', 'x-fern-sdk-return-value': 'bridge_client_session', 'x-response-key': 'bridge_client_session', - 'x-title': 'Create a Bridge Client Session', + 'x-title': 'Get a Bridge Client Session', 'x-undocumented': 'Seam Bridge Client only.', }, }, - '/seam/bridge/v1/bridge_client_sessions/get': { - get: { + '/seam/bridge/v1/bridge_client_sessions/refresh_telemetry_token': { + post: { description: - 'Returns the bridge client session associated with the session token used.', - operationId: 'seamBridgeV1BridgeClientSessionsGetGet', + 'Returns the bridge client session associated with the session token and refreshed telemetry token.', + operationId: + 'seamBridgeV1BridgeClientSessionsRefreshTelemetryTokenPost', responses: { 200: { content: { @@ -27776,17 +29175,28 @@ export default { 401: { description: 'Unauthorized' }, }, security: [{ bridge_client_session: [] }], - summary: '/seam/bridge/v1/bridge_client_sessions/get', + summary: + '/seam/bridge/v1/bridge_client_sessions/refresh_telemetry_token', tags: [], - 'x-fern-ignore': true, + 'x-fern-sdk-group-name': [ + 'seam', + 'bridge', + 'v1', + 'bridge_client_sessions', + ], + 'x-fern-sdk-method-name': 'refresh_telemetry_token', + 'x-fern-sdk-return-value': 'bridge_client_session', 'x-response-key': 'bridge_client_session', - 'x-title': 'Get a Bridge Client Session', + 'x-title': 'Refresh telemetry token for bridge client session', 'x-undocumented': 'Seam Bridge Client only.', }, + }, + '/seam/bridge/v1/bridge_client_sessions/regenerate_pairing_code': { post: { description: - 'Returns the bridge client session associated with the session token used.', - operationId: 'seamBridgeV1BridgeClientSessionsGetPost', + 'Generate a new pairing code and return the updated bridge client session.', + operationId: + 'seamBridgeV1BridgeClientSessionsRegeneratePairingCodePost', responses: { 200: { content: { @@ -27949,179 +29359,313 @@ export default { 401: { description: 'Unauthorized' }, }, security: [{ bridge_client_session: [] }], - summary: '/seam/bridge/v1/bridge_client_sessions/get', + summary: + '/seam/bridge/v1/bridge_client_sessions/regenerate_pairing_code', + tags: [], + 'x-fern-sdk-group-name': [ + 'seam', + 'bridge', + 'v1', + 'bridge_client_sessions', + ], + 'x-fern-sdk-method-name': 'regenerate_pairing_code', + 'x-fern-sdk-return-value': 'bridge_client_session', + 'x-response-key': 'bridge_client_session', + 'x-title': 'Regenerate a Bridge Client Session Pairing Code', + 'x-undocumented': 'Seam Bridge Client only.', + }, + }, + '/seam/bridge/v1/bridge_client_sessions/report_status': { + post: { + description: "Report a Seam Bridge Bridge client's status.", + operationId: 'seamBridgeV1BridgeClientSessionsReportStatusPost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + is_tailscale_connected: { nullable: true, type: 'boolean' }, + tailscale_ip_v4: { nullable: true, type: 'string' }, + }, + required: ['is_tailscale_connected', 'tailscale_ip_v4'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { ok: { type: 'boolean' } }, + required: ['ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [{ bridge_client_session: [] }], + summary: '/seam/bridge/v1/bridge_client_sessions/report_status', + tags: [], + 'x-fern-sdk-group-name': [ + 'seam', + 'bridge', + 'v1', + 'bridge_client_sessions', + ], + 'x-fern-sdk-method-name': 'report_status', + 'x-response-key': null, + 'x-title': "Report a Bridge Client's Status", + 'x-undocumented': 'Seam Bridge Client only.', + }, + }, + '/seam/bridge/v1/bridge_connected_systems/list': { + get: { + description: + 'Returns the bridge connected systems associated with the session token used.', + operationId: 'seamBridgeV1BridgeConnectedSystemsListGet', + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { + bridge_connected_systems: { + items: { + properties: { + acs_system_display_name: { type: 'string' }, + acs_system_id: { format: 'uuid', type: 'string' }, + bridge_created_at: { + format: 'date-time', + type: 'string', + }, + bridge_id: { format: 'uuid', type: 'string' }, + connected_account_created_at: { + format: 'date-time', + type: 'string', + }, + connected_account_id: { + format: 'uuid', + type: 'string', + }, + workspace_display_name: { type: 'string' }, + workspace_id: { format: 'uuid', type: 'string' }, + }, + required: [ + 'bridge_id', + 'bridge_created_at', + 'connected_account_id', + 'connected_account_created_at', + 'acs_system_id', + 'acs_system_display_name', + 'workspace_id', + 'workspace_display_name', + ], + type: 'object', + 'x-route-path': + '/seam/bridge/v1/bridge_connected_systems', + 'x-undocumented': 'Seam Bridge Client only.', + }, + type: 'array', + }, + ok: { type: 'boolean' }, + }, + required: ['bridge_connected_systems', 'ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [{ bridge_client_session: [] }], + summary: '/seam/bridge/v1/bridge_connected_systems/list', + tags: [], + 'x-fern-ignore': true, + 'x-response-key': 'bridge_connected_systems', + 'x-title': 'List Bridge Connected Systems', + 'x-undocumented': 'Seam Bridge Client only.', + }, + post: { + description: + 'Returns the bridge connected systems associated with the session token used.', + operationId: 'seamBridgeV1BridgeConnectedSystemsListPost', + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { + bridge_connected_systems: { + items: { + properties: { + acs_system_display_name: { type: 'string' }, + acs_system_id: { format: 'uuid', type: 'string' }, + bridge_created_at: { + format: 'date-time', + type: 'string', + }, + bridge_id: { format: 'uuid', type: 'string' }, + connected_account_created_at: { + format: 'date-time', + type: 'string', + }, + connected_account_id: { + format: 'uuid', + type: 'string', + }, + workspace_display_name: { type: 'string' }, + workspace_id: { format: 'uuid', type: 'string' }, + }, + required: [ + 'bridge_id', + 'bridge_created_at', + 'connected_account_id', + 'connected_account_created_at', + 'acs_system_id', + 'acs_system_display_name', + 'workspace_id', + 'workspace_display_name', + ], + type: 'object', + 'x-route-path': + '/seam/bridge/v1/bridge_connected_systems', + 'x-undocumented': 'Seam Bridge Client only.', + }, + type: 'array', + }, + ok: { type: 'boolean' }, + }, + required: ['bridge_connected_systems', 'ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [{ bridge_client_session: [] }], + summary: '/seam/bridge/v1/bridge_connected_systems/list', tags: [], 'x-fern-sdk-group-name': [ 'seam', 'bridge', 'v1', - 'bridge_client_sessions', + 'bridge_connected_systems', + ], + 'x-fern-sdk-method-name': 'list', + 'x-fern-sdk-return-value': 'bridge_connected_systems', + 'x-response-key': 'bridge_connected_systems', + 'x-title': 'List Bridge Connected Systems', + 'x-undocumented': 'Seam Bridge Client only.', + }, + }, + '/seam/instant_key/v1/client_sessions/exchange_short_code': { + post: { + description: + 'Exchanges a short code for a Client Session Token (CST).\nThis endpoint is used by mobile apps to securely retrieve a client session token \nusing a short code obtained from an instant key URL.', + operationId: 'seamInstantKeyV1ClientSessionsExchangeShortCodePost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + short_code: { + description: + 'The short code to exchange for a client session token', + type: 'string', + }, + }, + required: ['short_code'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { + client_session: { + $ref: '#/components/schemas/client_session', + }, + ok: { type: 'boolean' }, + }, + required: ['client_session', 'ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [{ certified_client: [] }], + summary: '/seam/instant_key/v1/client_sessions/exchange_short_code', + tags: ['/client_sessions'], + 'x-fern-sdk-group-name': [ + 'seam', + 'instant_key', + 'v1', + 'client_sessions', ], - 'x-fern-sdk-method-name': 'get', - 'x-fern-sdk-return-value': 'bridge_client_session', - 'x-response-key': 'bridge_client_session', - 'x-title': 'Get a Bridge Client Session', - 'x-undocumented': 'Seam Bridge Client only.', + 'x-fern-sdk-method-name': 'exchange_short_code', + 'x-fern-sdk-return-value': 'client_session', + 'x-response-key': 'client_session', + 'x-title': 'Exchange Instant Key Short Code', }, }, - '/seam/bridge/v1/bridge_client_sessions/refresh_telemetry_token': { + '/thermostats/activate_climate_preset': { post: { description: - 'Returns the bridge client session associated with the session token and refreshed telemetry token.', - operationId: - 'seamBridgeV1BridgeClientSessionsRefreshTelemetryTokenPost', + 'Activates a specified [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', + operationId: 'thermostatsActivateClimatePresetPost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + climate_preset_key: { + description: + 'Climate preset key of the desired climate preset.', + type: 'string', + }, + device_id: { + description: 'ID of the desired thermostat device.', + format: 'uuid', + type: 'string', + }, + }, + required: ['device_id', 'climate_preset_key'], + type: 'object', + }, + }, + }, + }, responses: { 200: { content: { 'application/json': { schema: { properties: { - bridge_client_session: { - properties: { - bridge_client_machine_identifier_key: { - type: 'string', - }, - bridge_client_name: { type: 'string' }, - bridge_client_session_id: { - format: 'uuid', - type: 'string', - }, - bridge_client_session_token: { type: 'string' }, - bridge_client_time_zone: { type: 'string' }, - created_at: { format: 'date-time', type: 'string' }, - errors: { - items: { - description: - 'Error associated with the `bridge_client_session`.', - discriminator: { propertyName: 'error_code' }, - oneOf: [ - { - description: - "Seam cannot reach the bridge's LAN", - properties: { - can_tailscale_proxy_reach_bridge: { - description: - 'Tailscale proxy cannot reach the bridge', - nullable: true, - type: 'boolean', - }, - can_tailscale_proxy_reach_tailscale_network: { - description: - 'Tailscale proxy cannot reach the Tailscale network', - nullable: true, - type: 'boolean', - }, - created_at: { - format: 'date-time', - type: 'string', - }, - error_code: { - description: - 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', - enum: ['bridge_lan_unreachable'], - type: 'string', - }, - is_bridge_socks_server_healthy: { - description: - "Bridge's SOCKS server is unhealthy", - nullable: true, - type: 'boolean', - }, - is_tailscale_proxy_reachable: { - description: - 'Seam cannot reach the tailscale proxy', - nullable: true, - type: 'boolean', - }, - is_tailscale_proxy_socks_server_healthy: { - description: - "Tailscale proxy's SOCKS server is unhealthy", - nullable: true, - type: 'boolean', - }, - message: { type: 'string' }, - }, - required: [ - 'message', - 'created_at', - 'error_code', - 'is_tailscale_proxy_reachable', - 'is_tailscale_proxy_socks_server_healthy', - 'can_tailscale_proxy_reach_tailscale_network', - 'can_tailscale_proxy_reach_bridge', - 'is_bridge_socks_server_healthy', - ], - type: 'object', - }, - { - description: - 'Bridge has stopped communicating with Seam', - properties: { - created_at: { - format: 'date-time', - type: 'string', - }, - error_code: { - description: - 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', - enum: ['no_communication_from_bridge'], - type: 'string', - }, - message: { type: 'string' }, - }, - required: [ - 'message', - 'created_at', - 'error_code', - ], - type: 'object', - }, - ], - }, - type: 'array', - }, - pairing_code: { - maxLength: 6, - minLength: 6, - type: 'string', - }, - pairing_code_expires_at: { - format: 'date-time', - type: 'string', - }, - tailscale_auth_key: { nullable: true, type: 'string' }, - tailscale_hostname: { type: 'string' }, - telemetry_token: { nullable: true, type: 'string' }, - telemetry_token_expires_at: { - format: 'date-time', - nullable: true, - type: 'string', - }, - telemetry_url: { nullable: true, type: 'string' }, - }, - required: [ - 'created_at', - 'bridge_client_session_id', - 'bridge_client_session_token', - 'pairing_code', - 'pairing_code_expires_at', - 'tailscale_hostname', - 'tailscale_auth_key', - 'bridge_client_name', - 'bridge_client_time_zone', - 'bridge_client_machine_identifier_key', - 'errors', - 'telemetry_token', - 'telemetry_token_expires_at', - 'telemetry_url', - ], - type: 'object', - 'x-route-path': '/seam/bridge/v1/bridge_client_sessions', - 'x-undocumented': 'Seam Bridge Client only.', + action_attempt: { + $ref: '#/components/schemas/action_attempt', }, ok: { type: 'boolean' }, }, - required: ['bridge_client_session', 'ok'], + required: ['action_attempt', 'ok'], type: 'object', }, }, @@ -28131,181 +29675,171 @@ export default { 400: { description: 'Bad Request' }, 401: { description: 'Unauthorized' }, }, - security: [{ bridge_client_session: [] }], - summary: - '/seam/bridge/v1/bridge_client_sessions/refresh_telemetry_token', - tags: [], - 'x-fern-sdk-group-name': [ - 'seam', - 'bridge', - 'v1', - 'bridge_client_sessions', + security: [ + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + { api_key: [] }, ], - 'x-fern-sdk-method-name': 'refresh_telemetry_token', - 'x-fern-sdk-return-value': 'bridge_client_session', - 'x-response-key': 'bridge_client_session', - 'x-title': 'Refresh telemetry token for bridge client session', - 'x-undocumented': 'Seam Bridge Client only.', + summary: '/thermostats/activate_climate_preset', + tags: ['/thermostats'], + 'x-action-attempt-type': 'ACTIVATE_CLIMATE_PRESET', + 'x-fern-sdk-group-name': ['thermostats'], + 'x-fern-sdk-method-name': 'activate_climate_preset', + 'x-fern-sdk-return-value': 'action_attempt', + 'x-response-key': 'action_attempt', + 'x-title': 'Activate a Climate Preset', }, }, - '/seam/bridge/v1/bridge_client_sessions/regenerate_pairing_code': { + '/thermostats/activate_weekly_program': { post: { - description: - 'Generate a new pairing code and return the updated bridge client session.', - operationId: - 'seamBridgeV1BridgeClientSessionsRegeneratePairingCodePost', + description: 'Activates a thermostat weekly program.', + operationId: 'thermostatsActivateWeeklyProgramPost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + device_id: { + description: + 'ID of the thermostat device that the weekly program is for.', + format: 'uuid', + type: 'string', + }, + friday_program_id: { + description: + 'ID of the thermostat daily program to run on Fridays.', + format: 'uuid', + type: 'string', + }, + monday_program_id: { + description: + 'ID of the thermostat daily program to run on Mondays.', + format: 'uuid', + type: 'string', + }, + saturday_program_id: { + description: + 'ID of the thermostat daily program to run on Saturdays.', + format: 'uuid', + type: 'string', + }, + sunday_program_id: { + description: + 'ID of the thermostat daily program to run on Sundays.', + format: 'uuid', + type: 'string', + }, + thursday_program_id: { + description: + 'ID of the thermostat daily program to run on Thursdays.', + format: 'uuid', + type: 'string', + }, + tuesday_program_id: { + description: + 'ID of the thermostat daily program to run on Tuesdays.', + format: 'uuid', + type: 'string', + }, + wednesday_program_id: { + description: + 'ID of the thermostat daily program to run on Wednesdays.', + format: 'uuid', + type: 'string', + }, + }, + required: ['device_id'], + type: 'object', + }, + }, + }, + }, responses: { 200: { content: { 'application/json': { schema: { properties: { - bridge_client_session: { + ok: { type: 'boolean' }, + thermostat_weekly_program: { properties: { - bridge_client_machine_identifier_key: { + created_at: { + description: + 'Date and time at which the thermostat weekly program was created.', + format: 'date-time', type: 'string', }, - bridge_client_name: { type: 'string' }, - bridge_client_session_id: { + device_id: { + description: + 'ID of the thermostat device the weekly program is for.', format: 'uuid', type: 'string', }, - bridge_client_session_token: { type: 'string' }, - bridge_client_time_zone: { type: 'string' }, - created_at: { format: 'date-time', type: 'string' }, - errors: { - items: { - description: - 'Error associated with the `bridge_client_session`.', - discriminator: { propertyName: 'error_code' }, - oneOf: [ - { - description: - "Seam cannot reach the bridge's LAN", - properties: { - can_tailscale_proxy_reach_bridge: { - description: - 'Tailscale proxy cannot reach the bridge', - nullable: true, - type: 'boolean', - }, - can_tailscale_proxy_reach_tailscale_network: { - description: - 'Tailscale proxy cannot reach the Tailscale network', - nullable: true, - type: 'boolean', - }, - created_at: { - format: 'date-time', - type: 'string', - }, - error_code: { - description: - 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', - enum: ['bridge_lan_unreachable'], - type: 'string', - }, - is_bridge_socks_server_healthy: { - description: - "Bridge's SOCKS server is unhealthy", - nullable: true, - type: 'boolean', - }, - is_tailscale_proxy_reachable: { - description: - 'Seam cannot reach the tailscale proxy', - nullable: true, - type: 'boolean', - }, - is_tailscale_proxy_socks_server_healthy: { - description: - "Tailscale proxy's SOCKS server is unhealthy", - nullable: true, - type: 'boolean', - }, - message: { type: 'string' }, - }, - required: [ - 'message', - 'created_at', - 'error_code', - 'is_tailscale_proxy_reachable', - 'is_tailscale_proxy_socks_server_healthy', - 'can_tailscale_proxy_reach_tailscale_network', - 'can_tailscale_proxy_reach_bridge', - 'is_bridge_socks_server_healthy', - ], - type: 'object', - }, - { - description: - 'Bridge has stopped communicating with Seam', - properties: { - created_at: { - format: 'date-time', - type: 'string', - }, - error_code: { - description: - 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', - enum: ['no_communication_from_bridge'], - type: 'string', - }, - message: { type: 'string' }, - }, - required: [ - 'message', - 'created_at', - 'error_code', - ], - type: 'object', - }, - ], - }, - type: 'array', + friday_program_id: { + description: + 'ID of the thermostat daily program to run on Fridays.', + format: 'uuid', + nullable: true, + type: 'string', }, - pairing_code: { - maxLength: 6, - minLength: 6, + monday_program_id: { + description: + 'ID of the thermostat daily program to run on Mondays.', + format: 'uuid', + nullable: true, type: 'string', }, - pairing_code_expires_at: { - format: 'date-time', + saturday_program_id: { + description: + 'ID of the thermostat daily program to run on Saturdays.', + format: 'uuid', + nullable: true, type: 'string', }, - tailscale_auth_key: { nullable: true, type: 'string' }, - tailscale_hostname: { type: 'string' }, - telemetry_token: { nullable: true, type: 'string' }, - telemetry_token_expires_at: { - format: 'date-time', + sunday_program_id: { + description: + 'ID of the thermostat daily program to run on Sundays.', + format: 'uuid', + nullable: true, + type: 'string', + }, + thursday_program_id: { + description: + 'ID of the thermostat daily program to run on Thursdays.', + format: 'uuid', + nullable: true, + type: 'string', + }, + tuesday_program_id: { + description: + 'ID of the thermostat daily program to run on Tuesdays.', + format: 'uuid', + nullable: true, + type: 'string', + }, + wednesday_program_id: { + description: + 'ID of the thermostat daily program to run on Wednesdays.', + format: 'uuid', nullable: true, type: 'string', }, - telemetry_url: { nullable: true, type: 'string' }, }, required: [ + 'device_id', + 'monday_program_id', + 'tuesday_program_id', + 'wednesday_program_id', + 'thursday_program_id', + 'friday_program_id', + 'saturday_program_id', + 'sunday_program_id', 'created_at', - 'bridge_client_session_id', - 'bridge_client_session_token', - 'pairing_code', - 'pairing_code_expires_at', - 'tailscale_hostname', - 'tailscale_auth_key', - 'bridge_client_name', - 'bridge_client_time_zone', - 'bridge_client_machine_identifier_key', - 'errors', - 'telemetry_token', - 'telemetry_token_expires_at', - 'telemetry_url', ], type: 'object', - 'x-route-path': '/seam/bridge/v1/bridge_client_sessions', - 'x-undocumented': 'Seam Bridge Client only.', }, - ok: { type: 'boolean' }, }, - required: ['bridge_client_session', 'ok'], + required: ['thermostat_weekly_program', 'ok'], type: 'object', }, }, @@ -28315,36 +29849,109 @@ export default { 400: { description: 'Bad Request' }, 401: { description: 'Unauthorized' }, }, - security: [{ bridge_client_session: [] }], - summary: - '/seam/bridge/v1/bridge_client_sessions/regenerate_pairing_code', - tags: [], - 'x-fern-sdk-group-name': [ - 'seam', - 'bridge', - 'v1', - 'bridge_client_sessions', + security: [ + { client_session: [] }, + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + { api_key: [] }, ], - 'x-fern-sdk-method-name': 'regenerate_pairing_code', - 'x-fern-sdk-return-value': 'bridge_client_session', - 'x-response-key': 'bridge_client_session', - 'x-title': 'Regenerate a Bridge Client Session Pairing Code', - 'x-undocumented': 'Seam Bridge Client only.', + summary: '/thermostats/activate_weekly_program', + tags: ['/thermostats'], + 'x-fern-sdk-group-name': ['thermostats'], + 'x-fern-sdk-method-name': 'activate_weekly_program', + 'x-fern-sdk-return-value': 'thermostat_weekly_program', + 'x-response-key': 'thermostat_weekly_program', + 'x-title': 'Activate a Thermostat Weekly Program', + 'x-undocumented': 'Unreleased.', }, }, - '/seam/bridge/v1/bridge_client_sessions/report_status': { + '/thermostats/clear_weekly_program': { post: { - description: "Report a Seam Bridge Bridge client's status.", - operationId: 'seamBridgeV1BridgeClientSessionsReportStatusPost', + description: 'Clears a thermostat weekly program.', + operationId: 'thermostatsClearWeeklyProgramPost', requestBody: { content: { 'application/json': { schema: { properties: { - is_tailscale_connected: { nullable: true, type: 'boolean' }, - tailscale_ip_v4: { nullable: true, type: 'string' }, + device_id: { + description: + 'ID of the thermostat device to clear the weekly program for.', + format: 'uuid', + type: 'string', + }, + }, + required: ['device_id'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { ok: { type: 'boolean' } }, + required: ['ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { client_session: [] }, + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + { api_key: [] }, + ], + summary: '/thermostats/clear_weekly_program', + tags: ['/thermostats'], + 'x-fern-sdk-group-name': ['thermostats'], + 'x-fern-sdk-method-name': 'clear_weekly_program', + 'x-response-key': null, + 'x-title': 'Clear a Thermostat Weekly Program', + 'x-undocumented': 'Unreleased.', + }, + }, + '/thermostats/cool': { + post: { + description: + 'Sets a specified [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) to [cool mode](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings).', + operationId: 'thermostatsCoolPost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + cooling_set_point_celsius: { + description: + 'Desired [cooling set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C. You must set one of the `cooling_set_point` parameters.', + format: 'float', + type: 'number', + }, + cooling_set_point_fahrenheit: { + description: + 'Desired [cooling set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F. You must set one of the `cooling_set_point` parameters.', + format: 'float', + type: 'number', + }, + device_id: { + description: 'ID of the desired thermostat device.', + format: 'uuid', + type: 'string', + }, + sync: { + default: false, + type: 'boolean', + 'x-undocumented': 'Only used internally.', + }, }, - required: ['is_tailscale_connected', 'tailscale_ip_v4'], + required: ['device_id'], type: 'object', }, }, @@ -28355,8 +29962,13 @@ export default { content: { 'application/json': { schema: { - properties: { ok: { type: 'boolean' } }, - required: ['ok'], + properties: { + action_attempt: { + $ref: '#/components/schemas/action_attempt', + }, + ok: { type: 'boolean' }, + }, + required: ['action_attempt', 'ok'], type: 'object', }, }, @@ -28366,141 +29978,108 @@ export default { 400: { description: 'Bad Request' }, 401: { description: 'Unauthorized' }, }, - security: [{ bridge_client_session: [] }], - summary: '/seam/bridge/v1/bridge_client_sessions/report_status', - tags: [], - 'x-fern-sdk-group-name': [ - 'seam', - 'bridge', - 'v1', - 'bridge_client_sessions', + security: [ + { client_session: [] }, + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + { api_key: [] }, ], - 'x-fern-sdk-method-name': 'report_status', - 'x-response-key': null, - 'x-title': "Report a Bridge Client's Status", - 'x-undocumented': 'Seam Bridge Client only.', + summary: '/thermostats/cool', + tags: ['/thermostats'], + 'x-action-attempt-type': 'SET_HVAC_MODE', + 'x-fern-sdk-group-name': ['thermostats'], + 'x-fern-sdk-method-name': 'cool', + 'x-fern-sdk-return-value': 'action_attempt', + 'x-response-key': 'action_attempt', + 'x-title': 'Set to Cool Mode', }, }, - '/seam/bridge/v1/bridge_connected_systems/list': { - get: { + '/thermostats/create_climate_preset': { + post: { description: - 'Returns the bridge connected systems associated with the session token used.', - operationId: 'seamBridgeV1BridgeConnectedSystemsListGet', - responses: { - 200: { - content: { - 'application/json': { - schema: { - properties: { - bridge_connected_systems: { - items: { - properties: { - acs_system_display_name: { type: 'string' }, - acs_system_id: { format: 'uuid', type: 'string' }, - bridge_created_at: { - format: 'date-time', - type: 'string', - }, - bridge_id: { format: 'uuid', type: 'string' }, - connected_account_created_at: { - format: 'date-time', - type: 'string', - }, - connected_account_id: { - format: 'uuid', - type: 'string', - }, - workspace_display_name: { type: 'string' }, - workspace_id: { format: 'uuid', type: 'string' }, - }, - required: [ - 'bridge_id', - 'bridge_created_at', - 'connected_account_id', - 'connected_account_created_at', - 'acs_system_id', - 'acs_system_display_name', - 'workspace_id', - 'workspace_display_name', - ], - type: 'object', - 'x-route-path': - '/seam/bridge/v1/bridge_connected_systems', - 'x-undocumented': 'Seam Bridge Client only.', - }, - type: 'array', - }, - ok: { type: 'boolean' }, + 'Creates a [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', + operationId: 'thermostatsCreateClimatePresetPost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + climate_preset_key: { + description: + 'Unique key to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets).', + type: 'string', + }, + cooling_set_point_celsius: { + description: + 'Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/latest/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/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).', + format: 'float', + type: 'number', + }, + device_id: { + description: 'ID of the desired thermostat device.', + format: 'uuid', + type: 'string', + }, + fan_mode_setting: { + description: + 'Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.', + enum: ['auto', 'on', 'circulate'], + type: 'string', + }, + heating_set_point_celsius: { + description: + 'Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/latest/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/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).', + format: 'float', + type: 'number', + }, + hvac_mode_setting: { + description: + 'Desired [HVAC mode](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.', + enum: ['off', 'heat', 'cool', 'heat_cool'], + type: 'string', + }, + manual_override_allowed: { + default: true, + deprecated: true, + description: + "Indicates whether a person at the thermostat or using the API can change the thermostat's settings.", + 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets).', + nullable: true, + type: 'string', }, - required: ['bridge_connected_systems', 'ok'], - type: 'object', }, + required: ['device_id', 'climate_preset_key'], + type: 'object', }, }, - description: 'OK', }, - 400: { description: 'Bad Request' }, - 401: { description: 'Unauthorized' }, }, - security: [{ bridge_client_session: [] }], - summary: '/seam/bridge/v1/bridge_connected_systems/list', - tags: [], - 'x-fern-ignore': true, - 'x-response-key': 'bridge_connected_systems', - 'x-title': 'List Bridge Connected Systems', - 'x-undocumented': 'Seam Bridge Client only.', - }, - post: { - description: - 'Returns the bridge connected systems associated with the session token used.', - operationId: 'seamBridgeV1BridgeConnectedSystemsListPost', responses: { 200: { content: { 'application/json': { schema: { - properties: { - bridge_connected_systems: { - items: { - properties: { - acs_system_display_name: { type: 'string' }, - acs_system_id: { format: 'uuid', type: 'string' }, - bridge_created_at: { - format: 'date-time', - type: 'string', - }, - bridge_id: { format: 'uuid', type: 'string' }, - connected_account_created_at: { - format: 'date-time', - type: 'string', - }, - connected_account_id: { - format: 'uuid', - type: 'string', - }, - workspace_display_name: { type: 'string' }, - workspace_id: { format: 'uuid', type: 'string' }, - }, - required: [ - 'bridge_id', - 'bridge_created_at', - 'connected_account_id', - 'connected_account_created_at', - 'acs_system_id', - 'acs_system_display_name', - 'workspace_id', - 'workspace_display_name', - ], - type: 'object', - 'x-route-path': - '/seam/bridge/v1/bridge_connected_systems', - 'x-undocumented': 'Seam Bridge Client only.', - }, - type: 'array', - }, - ok: { type: 'boolean' }, - }, - required: ['bridge_connected_systems', 'ok'], + properties: { ok: { type: 'boolean' } }, + required: ['ok'], type: 'object', }, }, @@ -28510,39 +30089,62 @@ export default { 400: { description: 'Bad Request' }, 401: { description: 'Unauthorized' }, }, - security: [{ bridge_client_session: [] }], - summary: '/seam/bridge/v1/bridge_connected_systems/list', - tags: [], - 'x-fern-sdk-group-name': [ - 'seam', - 'bridge', - 'v1', - 'bridge_connected_systems', + security: [ + { client_session: [] }, + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + { api_key: [] }, ], - 'x-fern-sdk-method-name': 'list', - 'x-fern-sdk-return-value': 'bridge_connected_systems', - 'x-response-key': 'bridge_connected_systems', - 'x-title': 'List Bridge Connected Systems', - 'x-undocumented': 'Seam Bridge Client only.', + summary: '/thermostats/create_climate_preset', + tags: ['/thermostats'], + 'x-fern-sdk-group-name': ['thermostats'], + 'x-fern-sdk-method-name': 'create_climate_preset', + 'x-response-key': null, + 'x-title': 'Create a Climate Preset', }, }, - '/seam/instant_key/v1/client_sessions/exchange_short_code': { + '/thermostats/daily_programs/create': { post: { - description: - 'Exchanges a short code for a Client Session Token (CST).\nThis endpoint is used by mobile apps to securely retrieve a client session token \nusing a short code obtained from an instant key URL.', - operationId: 'seamInstantKeyV1ClientSessionsExchangeShortCodePost', + description: 'Creates a thermostat daily program.', + operationId: 'thermostatsDailyProgramsCreatePost', requestBody: { content: { 'application/json': { schema: { properties: { - short_code: { + device_id: { + description: 'ID of the desired thermostat device.', + format: 'uuid', + type: 'string', + }, + name: { description: - 'The short code to exchange for a client session token', + 'User-friendly name to identify the thermostat daily program.', type: 'string', }, + periods: { + description: 'Array of thermostat daily program periods.', + items: { + properties: { + climate_preset_key: { + description: + 'Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time.', + type: 'string', + }, + starts_at_time: { + description: + 'Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', + pattern: '^([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)$', + type: 'string', + }, + }, + required: ['starts_at_time', 'climate_preset_key'], + type: 'object', + }, + type: 'array', + }, }, - required: ['short_code'], + required: ['device_id', 'periods'], type: 'object', }, }, @@ -28554,12 +30156,64 @@ export default { 'application/json': { schema: { properties: { - client_session: { - $ref: '#/components/schemas/client_session', - }, ok: { type: 'boolean' }, + thermostat_daily_program: { + properties: { + created_at: { + description: + 'Date and time at which the thermostat daily program was created.', + format: 'date-time', + type: 'string', + }, + device_id: { + description: 'ID of the desired thermostat device.', + format: 'uuid', + type: 'string', + }, + name: { + description: + 'User-friendly name to identify the thermostat daily program.', + type: 'string', + }, + periods: { + description: + 'Array of thermostat daily program periods.', + items: { + properties: { + climate_preset_key: { + description: + 'Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time.', + type: 'string', + }, + starts_at_time: { + description: + 'Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', + pattern: + '^([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)$', + type: 'string', + }, + }, + required: ['starts_at_time', 'climate_preset_key'], + type: 'object', + }, + type: 'array', + }, + thermostat_daily_program_id: { + description: 'ID of the thermostat daily program.', + format: 'uuid', + type: 'string', + }, + }, + required: [ + 'thermostat_daily_program_id', + 'device_id', + 'periods', + 'created_at', + ], + type: 'object', + }, }, - required: ['client_session', 'ok'], + required: ['thermostat_daily_program', 'ok'], type: 'object', }, }, @@ -28569,43 +30223,38 @@ export default { 400: { description: 'Bad Request' }, 401: { description: 'Unauthorized' }, }, - security: [{ certified_client: [] }], - summary: '/seam/instant_key/v1/client_sessions/exchange_short_code', - tags: ['/client_sessions'], - 'x-fern-sdk-group-name': [ - 'seam', - 'instant_key', - 'v1', - 'client_sessions', + security: [ + { client_session: [] }, + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + { api_key: [] }, ], - 'x-fern-sdk-method-name': 'exchange_short_code', - 'x-fern-sdk-return-value': 'client_session', - 'x-response-key': 'client_session', - 'x-title': 'Exchange Instant Key Short Code', + summary: '/thermostats/daily_programs/create', + tags: ['/thermostats'], + 'x-fern-sdk-group-name': ['thermostats', 'daily_programs'], + 'x-fern-sdk-method-name': 'create', + 'x-fern-sdk-return-value': 'thermostat_daily_program', + 'x-response-key': 'thermostat_daily_program', + 'x-title': 'Create a Thermostat Daily Program', + 'x-undocumented': 'Unreleased.', }, }, - '/thermostats/activate_climate_preset': { + '/thermostats/daily_programs/delete': { post: { - description: - 'Activates a specified [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', - operationId: 'thermostatsActivateClimatePresetPost', + description: 'Deletes a thermostat daily program.', + operationId: 'thermostatsDailyProgramsDeletePost', requestBody: { content: { 'application/json': { schema: { properties: { - climate_preset_key: { - description: - 'Climate preset key of the desired climate preset.', - type: 'string', - }, - device_id: { - description: 'ID of the desired thermostat device.', + thermostat_daily_program_id: { + description: 'ID of the desired thermostat schedule.', format: 'uuid', type: 'string', }, }, - required: ['device_id', 'climate_preset_key'], + required: ['thermostat_daily_program_id'], type: 'object', }, }, @@ -28616,13 +30265,8 @@ export default { content: { 'application/json': { schema: { - properties: { - action_attempt: { - $ref: '#/components/schemas/action_attempt', - }, - ok: { type: 'boolean' }, - }, - required: ['action_attempt', 'ok'], + properties: { ok: { type: 'boolean' } }, + required: ['ok'], type: 'object', }, }, @@ -28633,54 +30277,62 @@ export default { 401: { description: 'Unauthorized' }, }, security: [ + { client_session: [] }, { pat_with_workspace: [] }, { console_session_with_workspace: [] }, { api_key: [] }, ], - summary: '/thermostats/activate_climate_preset', + summary: '/thermostats/daily_programs/delete', tags: ['/thermostats'], - 'x-action-attempt-type': 'ACTIVATE_CLIMATE_PRESET', - 'x-fern-sdk-group-name': ['thermostats'], - 'x-fern-sdk-method-name': 'activate_climate_preset', - 'x-fern-sdk-return-value': 'action_attempt', - 'x-response-key': 'action_attempt', - 'x-title': 'Activate a Climate Preset', + 'x-fern-sdk-group-name': ['thermostats', 'daily_programs'], + 'x-fern-sdk-method-name': 'delete', + 'x-response-key': null, + 'x-title': 'Delete a Thermostat Daily Program', + 'x-undocumented': 'Unreleased.', }, }, - '/thermostats/cool': { - post: { - description: - 'Sets a specified [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) to [cool mode](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings).', - operationId: 'thermostatsCoolPost', + '/thermostats/daily_programs/update': { + patch: { + description: 'Updates a specified thermostat daily program.', + operationId: 'thermostatsDailyProgramsUpdatePatch', requestBody: { content: { 'application/json': { schema: { properties: { - cooling_set_point_celsius: { + name: { description: - 'Desired [cooling set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C. You must set one of the `cooling_set_point` parameters.', - format: 'float', - type: 'number', + 'User-friendly name to identify the thermostat daily program.', + type: 'string', }, - cooling_set_point_fahrenheit: { - description: - 'Desired [cooling set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F. You must set one of the `cooling_set_point` parameters.', - format: 'float', - type: 'number', + periods: { + description: 'Array of thermostat daily program periods.', + items: { + properties: { + climate_preset_key: { + description: + 'Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time.', + type: 'string', + }, + starts_at_time: { + description: + 'Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', + pattern: '^([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)$', + type: 'string', + }, + }, + required: ['starts_at_time', 'climate_preset_key'], + type: 'object', + }, + type: 'array', }, - device_id: { - description: 'ID of the desired thermostat device.', + thermostat_daily_program_id: { + description: 'ID of the desired thermostat daily program.', format: 'uuid', type: 'string', }, - sync: { - default: false, - type: 'boolean', - 'x-undocumented': 'Only used internally.', - }, }, - required: ['device_id'], + required: ['thermostat_daily_program_id', 'periods'], type: 'object', }, }, @@ -28691,13 +30343,8 @@ export default { content: { 'application/json': { schema: { - properties: { - action_attempt: { - $ref: '#/components/schemas/action_attempt', - }, - ok: { type: 'boolean' }, - }, - required: ['action_attempt', 'ok'], + properties: { ok: { type: 'boolean' } }, + required: ['ok'], type: 'object', }, }, @@ -28713,90 +30360,54 @@ export default { { console_session_with_workspace: [] }, { api_key: [] }, ], - summary: '/thermostats/cool', + summary: '/thermostats/daily_programs/update', tags: ['/thermostats'], - 'x-action-attempt-type': 'SET_HVAC_MODE', - 'x-fern-sdk-group-name': ['thermostats'], - 'x-fern-sdk-method-name': 'cool', - 'x-fern-sdk-return-value': 'action_attempt', - 'x-response-key': 'action_attempt', - 'x-title': 'Set to Cool Mode', + 'x-fern-ignore': true, + 'x-response-key': null, + 'x-title': 'Update a Thermostat Daily Program', + 'x-undocumented': 'Unreleased.', }, - }, - '/thermostats/create_climate_preset': { post: { - description: - 'Creates a [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) for a specified [thermostat](https://docs.seam.co/latest/capability-guides/thermostats).', - operationId: 'thermostatsCreateClimatePresetPost', + description: 'Updates a specified thermostat daily program.', + operationId: 'thermostatsDailyProgramsUpdatePost', requestBody: { content: { 'application/json': { schema: { properties: { - climate_preset_key: { + name: { description: - 'Unique key to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets).', + 'User-friendly name to identify the thermostat daily program.', type: 'string', }, - cooling_set_point_celsius: { - description: - 'Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/latest/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/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).', - format: 'float', - type: 'number', + periods: { + description: 'Array of thermostat daily program periods.', + items: { + properties: { + climate_preset_key: { + description: + 'Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time.', + type: 'string', + }, + starts_at_time: { + description: + 'Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', + pattern: '^([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)$', + type: 'string', + }, + }, + required: ['starts_at_time', 'climate_preset_key'], + type: 'object', + }, + type: 'array', }, - device_id: { - description: 'ID of the desired thermostat device.', + thermostat_daily_program_id: { + description: 'ID of the desired thermostat daily program.', format: 'uuid', type: 'string', }, - fan_mode_setting: { - description: - 'Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.', - enum: ['auto', 'on', 'circulate'], - type: 'string', - }, - heating_set_point_celsius: { - description: - 'Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/latest/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/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).', - format: 'float', - type: 'number', - }, - hvac_mode_setting: { - description: - 'Desired [HVAC mode](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.', - enum: ['off', 'heat', 'cool', 'heat_cool'], - type: 'string', - }, - manual_override_allowed: { - default: true, - deprecated: true, - description: - "Indicates whether a person at the thermostat or using the API can change the thermostat's settings.", - 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets).', - nullable: true, - type: 'string', - }, }, - required: ['device_id', 'climate_preset_key'], + required: ['thermostat_daily_program_id', 'periods'], type: 'object', }, }, @@ -28824,12 +30435,13 @@ export default { { console_session_with_workspace: [] }, { api_key: [] }, ], - summary: '/thermostats/create_climate_preset', + summary: '/thermostats/daily_programs/update', tags: ['/thermostats'], - 'x-fern-sdk-group-name': ['thermostats'], - 'x-fern-sdk-method-name': 'create_climate_preset', + 'x-fern-sdk-group-name': ['thermostats', 'daily_programs'], + 'x-fern-sdk-method-name': 'update', 'x-response-key': null, - 'x-title': 'Create a Climate Preset', + 'x-title': 'Update a Thermostat Daily Program', + 'x-undocumented': 'Unreleased.', }, }, '/thermostats/delete_climate_preset': { @@ -29388,15 +31000,14 @@ export default { type: 'string', }, is_override_allowed: { - default: false, 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/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", type: 'boolean', }, max_override_period_minutes: { - default: null, 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/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + exclusiveMinimum: true, minimum: 0, nullable: true, type: 'integer', @@ -29663,6 +31274,7 @@ export default { 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/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + exclusiveMinimum: true, minimum: 0, nullable: true, type: 'integer', @@ -29744,6 +31356,7 @@ export default { 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/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).", + exclusiveMinimum: true, minimum: 0, nullable: true, type: 'integer', @@ -31307,11 +32920,15 @@ export default { description: 'Display name of the access method.', type: 'string', }, + instant_key_url: { + description: + 'URL of instant key for mobile key access methods.', + type: 'string', + }, issued_at: { description: 'Date and time at which the access method was issued.', format: 'date-time', - nullable: true, type: 'string', }, mode: { @@ -31333,7 +32950,6 @@ export default { 'display_name', 'mode', 'created_at', - 'issued_at', ], type: 'object', 'x-undocumented': 'Unreleased.', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index f1a976db..d9c77b56 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -479,6 +479,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -2710,6 +2781,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -5509,6 +5651,24 @@ export interface Routes { } } } + '/access_codes/report_device_constraints': { + route: '/access_codes/report_device_constraints' + method: 'POST' + queryParams: {} + jsonBody: { + /** ID of the device to report constraints for. */ + device_id: string + /** Array of supported code lengths between 4 and 20 inclusive; cannot be provided with min_code_length or max_code_length. */ + supported_code_lengths?: number[] | undefined + /** Minimum supported code length between 4 and 20 inclusive; cannot be provided with supported_code_lengths. */ + min_code_length?: number | undefined + /** Maximum supported code length between 4 and 20 inclusive; cannot be provided with supported_code_lengths. */ + max_code_length?: number | undefined + } + commonParams: {} + formData: {} + jsonResponse: {} + } '/access_codes/simulate/create_unmanaged_access_code': { route: '/access_codes/simulate/create_unmanaged_access_code' method: 'POST' @@ -6480,6 +6640,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -8715,6 +8946,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -9767,14 +10069,6 @@ export interface Routes { user_identity_email_address?: (string | null) | undefined /** Phone number of the user identity associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) in E.164 format (for example, `+15555550100`). */ user_identity_phone_number?: (string | null) | undefined - /** */ - latest_desired_state_synced_with_provider_at?: - | (string | null) - | undefined - /** */ - is_latest_desired_state_synced_with_provider?: - | (boolean | null) - | undefined /** Warnings associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ warnings: Array< | { @@ -9837,21 +10131,27 @@ export interface Routes { error_code: 'failed_to_delete_on_acs_system' } > - /** */ + /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: | Array< | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'creating' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'deleting' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_user_information' from: { @@ -9866,7 +10166,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_access_schedule' from: { @@ -9879,7 +10181,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_suspension_state' from: { @@ -9890,13 +10194,19 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_group_membership' + /** Old access group membership. */ from: { + /** Old access group ID. */ acs_access_group_id: string | null } + /** New access group membership. */ to: { + /** New access group ID. */ acs_access_group_id: string | null } } @@ -11685,16 +11995,16 @@ export interface Routes { } } } - '/acs/encoders/encode_credential': { - route: '/acs/encoders/encode_credential' + '/acs/encoders/encode_access_method': { + route: '/acs/encoders/encode_access_method' method: 'POST' queryParams: {} jsonBody: {} commonParams: { - /** ID of the `acs_encoder` to use to encode the `acs_credential`. */ + /** ID of the `acs_encoder` to use to encode the `access_method`. */ acs_encoder_id: string - /** ID of the `acs_credential` to encode onto a card. */ - acs_credential_id: string + /** ID of the `access_method` to encode onto a card. */ + access_method_id: string } formData: {} jsonResponse: { @@ -12137,6 +12447,1343 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + /** If an encoding attempt was successful, includes the `acs_credential` data that was encoded onto the card. */ + result: + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'RESET_SANDBOX_WORKSPACE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SET_FAN_MODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SET_FAN_MODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SET_FAN_MODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SET_HVAC_MODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SET_HVAC_MODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SET_HVAC_MODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SYNC_ACCESS_CODES' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SYNC_ACCESS_CODES' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SYNC_ACCESS_CODES' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'CREATE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'CREATE_ACCESS_CODE' + result: { + access_code?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'CREATE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'DELETE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'DELETE_ACCESS_CODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'DELETE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UPDATE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UPDATE_ACCESS_CODE' + result: { + access_code?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UPDATE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'CREATE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'CREATE_NOISE_THRESHOLD' + result: { + noise_threshold?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'CREATE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'DELETE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'DELETE_NOISE_THRESHOLD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'DELETE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UPDATE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UPDATE_NOISE_THRESHOLD' + result: { + noise_threshold?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UPDATE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + } + } + '/acs/encoders/encode_credential': { + route: '/acs/encoders/encode_credential' + method: 'POST' + queryParams: {} + jsonBody: {} + commonParams: { + /** ID of the `acs_encoder` to use to encode the `acs_credential`. */ + acs_encoder_id: string + /** ID of the `acs_credential` to encode onto a card. */ + acs_credential_id: string + } + formData: {} + jsonResponse: { + /** */ + action_attempt: + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'LOCK_DOOR' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'LOCK_DOOR' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'LOCK_DOOR' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UNLOCK_DOOR' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UNLOCK_DOOR' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UNLOCK_DOOR' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SCAN_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SCAN_CREDENTIAL' + result: { + /** Snapshot of credential data read from physical encoder. */ + acs_credential_on_encoder: { + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string | null + is_issued: boolean | null + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) becomes usable. */ + starts_at: string | null + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) will stop being usable. */ + ends_at: string | null + /** A number or string that physically identifies the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number: string | null + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + /** Card ID for the Visionline card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_id: string + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is cancelled. */ + cancelled: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is discarded. */ + discarded: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is expired. */ + expired: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is overwritten. */ + overwritten: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is overridden. */ + overridden?: boolean | undefined + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is pending auto-update. */ + pending_auto_update: boolean + /** Format of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_format: 'TLCode' | 'rfid48' + /** Holden of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_holder?: string | undefined + /** Number of issued cards associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + number_of_issued_cards: number + /** IDs of the guest [entrances](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + guest_acs_entrance_ids?: string[] | undefined + /** IDs of the common [entrances](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + common_acs_entrance_ids?: string[] | undefined + } + | undefined + } | null + /** Matching acs_credential currently encoded on this card. */ + acs_credential_on_seam: + | ( + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: + | string[] + | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: + | string[] + | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + ) + | null + warnings: Array<{ + warning_code: + | 'acs_credential_on_encoder_out_of_sync' + | 'acs_credential_on_seam_not_found' + warning_message: string + }> + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SCAN_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -13427,6 +15074,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -14804,6 +16522,12 @@ export interface Routes { can_remove_acs_users_from_acs_access_groups?: boolean | undefined /** Indicates whether the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) supports [adding users to access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */ can_add_acs_users_to_acs_access_groups?: boolean | undefined + can_update_user_schedule?: boolean | undefined + can_create_user?: boolean | undefined + can_delete_user?: boolean | undefined + can_update_user_information?: boolean | undefined + can_update_user_supension_state?: boolean | undefined + can_update_user_group_membership?: boolean | undefined } } } @@ -14988,6 +16712,12 @@ export interface Routes { can_remove_acs_users_from_acs_access_groups?: boolean | undefined /** Indicates whether the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) supports [adding users to access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */ can_add_acs_users_to_acs_access_groups?: boolean | undefined + can_update_user_schedule?: boolean | undefined + can_create_user?: boolean | undefined + can_delete_user?: boolean | undefined + can_update_user_information?: boolean | undefined + can_update_user_supension_state?: boolean | undefined + can_update_user_group_membership?: boolean | undefined }> } } @@ -15172,6 +16902,12 @@ export interface Routes { can_remove_acs_users_from_acs_access_groups?: boolean | undefined /** Indicates whether the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) supports [adding users to access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */ can_add_acs_users_to_acs_access_groups?: boolean | undefined + can_update_user_schedule?: boolean | undefined + can_create_user?: boolean | undefined + can_delete_user?: boolean | undefined + can_update_user_information?: boolean | undefined + can_update_user_supension_state?: boolean | undefined + can_update_user_group_membership?: boolean | undefined }> } } @@ -15270,14 +17006,6 @@ export interface Routes { user_identity_email_address?: (string | null) | undefined /** Phone number of the user identity associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) in E.164 format (for example, `+15555550100`). */ user_identity_phone_number?: (string | null) | undefined - /** */ - latest_desired_state_synced_with_provider_at?: - | (string | null) - | undefined - /** */ - is_latest_desired_state_synced_with_provider?: - | (boolean | null) - | undefined /** Warnings associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ warnings: Array< | { @@ -15340,21 +17068,27 @@ export interface Routes { error_code: 'failed_to_delete_on_acs_system' } > - /** */ + /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: | Array< | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'creating' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'deleting' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_user_information' from: { @@ -15369,7 +17103,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_access_schedule' from: { @@ -15382,7 +17118,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_suspension_state' from: { @@ -15393,13 +17131,19 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_group_membership' + /** Old access group membership. */ from: { + /** Old access group ID. */ acs_access_group_id: string | null } + /** New access group membership. */ to: { + /** New access group ID. */ acs_access_group_id: string | null } } @@ -15491,14 +17235,6 @@ export interface Routes { user_identity_email_address?: (string | null) | undefined /** Phone number of the user identity associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) in E.164 format (for example, `+15555550100`). */ user_identity_phone_number?: (string | null) | undefined - /** */ - latest_desired_state_synced_with_provider_at?: - | (string | null) - | undefined - /** */ - is_latest_desired_state_synced_with_provider?: - | (boolean | null) - | undefined /** Warnings associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ warnings: Array< | { @@ -15561,21 +17297,27 @@ export interface Routes { error_code: 'failed_to_delete_on_acs_system' } > - /** */ + /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: | Array< | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'creating' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'deleting' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_user_information' from: { @@ -15590,7 +17332,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_access_schedule' from: { @@ -15603,7 +17347,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_suspension_state' from: { @@ -15614,13 +17360,19 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_group_membership' + /** Old access group membership. */ from: { + /** Old access group ID. */ acs_access_group_id: string | null } + /** New access group membership. */ to: { + /** New access group ID. */ acs_access_group_id: string | null } } @@ -15708,14 +17460,6 @@ export interface Routes { user_identity_email_address?: (string | null) | undefined /** Phone number of the user identity associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) in E.164 format (for example, `+15555550100`). */ user_identity_phone_number?: (string | null) | undefined - /** */ - latest_desired_state_synced_with_provider_at?: - | (string | null) - | undefined - /** */ - is_latest_desired_state_synced_with_provider?: - | (boolean | null) - | undefined /** Warnings associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ warnings: Array< | { @@ -15778,21 +17522,27 @@ export interface Routes { error_code: 'failed_to_delete_on_acs_system' } > - /** */ + /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: | Array< | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'creating' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'deleting' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_user_information' from: { @@ -15807,7 +17557,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_access_schedule' from: { @@ -15820,7 +17572,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_suspension_state' from: { @@ -15831,13 +17585,19 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_group_membership' + /** Old access group membership. */ from: { + /** Old access group ID. */ acs_access_group_id: string | null } + /** New access group membership. */ to: { + /** New access group ID. */ acs_access_group_id: string | null } } @@ -16057,14 +17817,6 @@ export interface Routes { user_identity_email_address?: (string | null) | undefined /** Phone number of the user identity associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) in E.164 format (for example, `+15555550100`). */ user_identity_phone_number?: (string | null) | undefined - /** */ - latest_desired_state_synced_with_provider_at?: - | (string | null) - | undefined - /** */ - is_latest_desired_state_synced_with_provider?: - | (boolean | null) - | undefined /** Warnings associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ warnings: Array< | { @@ -16127,21 +17879,27 @@ export interface Routes { error_code: 'failed_to_delete_on_acs_system' } > - /** */ + /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: | Array< | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'creating' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'deleting' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_user_information' from: { @@ -16156,7 +17914,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_access_schedule' from: { @@ -16169,7 +17929,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_suspension_state' from: { @@ -16180,13 +17942,19 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_group_membership' + /** Old access group membership. */ from: { + /** Old access group ID. */ acs_access_group_id: string | null } + /** New access group membership. */ to: { + /** New access group ID. */ acs_access_group_id: string | null } } @@ -16264,14 +18032,6 @@ export interface Routes { user_identity_email_address?: (string | null) | undefined /** Phone number of the user identity associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) in E.164 format (for example, `+15555550100`). */ user_identity_phone_number?: (string | null) | undefined - /** */ - latest_desired_state_synced_with_provider_at?: - | (string | null) - | undefined - /** */ - is_latest_desired_state_synced_with_provider?: - | (boolean | null) - | undefined /** Warnings associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ warnings: Array< | { @@ -16334,21 +18094,27 @@ export interface Routes { error_code: 'failed_to_delete_on_acs_system' } > - /** */ + /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: | Array< | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'creating' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'deleting' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_user_information' from: { @@ -16363,7 +18129,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_access_schedule' from: { @@ -16376,7 +18144,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_suspension_state' from: { @@ -16387,13 +18157,19 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_group_membership' + /** Old access group membership. */ from: { + /** Old access group ID. */ acs_access_group_id: string | null } + /** New access group membership. */ to: { + /** New access group ID. */ acs_access_group_id: string | null } } @@ -16902,6 +18678,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -18093,6 +19940,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -20138,6 +22056,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -20177,6 +22097,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -20214,6 +22136,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -20254,7 +22178,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -20268,6 +22192,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -20513,6 +22478,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -21252,6 +23223,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -21291,6 +23264,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -21328,6 +23303,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -21368,7 +23345,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -21382,6 +23359,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -21627,6 +23645,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -22056,6 +24080,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -22592,6 +24622,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -23008,6 +25044,114 @@ export interface Routes { connected_account_id: string event_type: 'access_code.unmanaged.removed' } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access grant. */ + access_grant_id: string + event_type: 'access_grant.created' + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access grant. */ + access_grant_id: string + event_type: 'access_grant.deleted' + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access grant. */ + access_grant_id: string + event_type: 'access_grant.access_granted_to_all_doors' + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access grant. */ + access_grant_id: string + event_type: 'access_grant.access_granted_to_door' + /** ID of the door, an [ACS entrance](https://docs.seam.co/latest/capability-guides/retrieving-entrance-details). */ + acs_entrance_id: string + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access grant. */ + access_grant_id: string + event_type: 'access_grant.access_to_door_lost' + /** ID of the door, an [ACS entrance](https://docs.seam.co/latest/capability-guides/retrieving-entrance-details). */ + acs_entrance_id: string + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access method. */ + access_method_id: string + event_type: 'access_method.issued' + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access method. */ + access_method_id: string + event_type: 'access_method.revoked' + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access method. */ + access_method_id: string + event_type: 'access_method.card_encoding_required' + } | { /** ID of the event. */ event_id: string @@ -24111,6 +26255,14 @@ export interface Routes { | 'access_code.unmanaged.failed_to_convert_to_managed' | 'access_code.unmanaged.created' | 'access_code.unmanaged.removed' + | 'access_grant.created' + | 'access_grant.deleted' + | 'access_grant.access_granted_to_all_doors' + | 'access_grant.access_granted_to_door' + | 'access_grant.access_to_door_lost' + | 'access_method.issued' + | 'access_method.revoked' + | 'access_method.card_encoding_required' | 'acs_system.connected' | 'acs_system.added' | 'acs_system.disconnected' @@ -24195,6 +26347,14 @@ export interface Routes { | 'access_code.unmanaged.failed_to_convert_to_managed' | 'access_code.unmanaged.created' | 'access_code.unmanaged.removed' + | 'access_grant.created' + | 'access_grant.deleted' + | 'access_grant.access_granted_to_all_doors' + | 'access_grant.access_granted_to_door' + | 'access_grant.access_to_door_lost' + | 'access_method.issued' + | 'access_method.revoked' + | 'access_method.card_encoding_required' | 'acs_system.connected' | 'acs_system.added' | 'acs_system.disconnected' @@ -24564,6 +26724,114 @@ export interface Routes { connected_account_id: string event_type: 'access_code.unmanaged.removed' } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access grant. */ + access_grant_id: string + event_type: 'access_grant.created' + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access grant. */ + access_grant_id: string + event_type: 'access_grant.deleted' + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access grant. */ + access_grant_id: string + event_type: 'access_grant.access_granted_to_all_doors' + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access grant. */ + access_grant_id: string + event_type: 'access_grant.access_granted_to_door' + /** ID of the door, an [ACS entrance](https://docs.seam.co/latest/capability-guides/retrieving-entrance-details). */ + acs_entrance_id: string + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access grant. */ + access_grant_id: string + event_type: 'access_grant.access_to_door_lost' + /** ID of the door, an [ACS entrance](https://docs.seam.co/latest/capability-guides/retrieving-entrance-details). */ + acs_entrance_id: string + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access method. */ + access_method_id: string + event_type: 'access_method.issued' + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access method. */ + access_method_id: string + event_type: 'access_method.revoked' + } + | { + /** ID of the event. */ + event_id: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces). */ + workspace_id: string + /** Date and time at which the event was created. */ + created_at: string + /** Date and time at which the event occurred. */ + occurred_at: string + /** ID of the access method. */ + access_method_id: string + event_type: 'access_method.card_encoding_required' + } | { /** ID of the event. */ event_id: string @@ -26165,6 +28433,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -26204,6 +28474,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -26241,6 +28513,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -26281,7 +28555,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -26295,6 +28569,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -26540,6 +28855,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -27091,6 +29412,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -27130,6 +29453,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -27167,6 +29492,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -27207,7 +29534,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -27221,6 +29548,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -27466,6 +29834,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -28173,6 +30547,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -28212,6 +30588,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -28249,6 +30627,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -28289,7 +30669,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -28303,6 +30683,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -28548,6 +30969,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -29098,6 +31525,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -29137,6 +31566,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -29174,6 +31605,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -29214,7 +31647,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -29228,6 +31661,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -29473,6 +31947,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -29943,6 +32423,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -31136,6 +33687,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -32328,6 +34950,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -33521,6 +36214,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -34898,6 +37662,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -34937,6 +37703,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -34974,6 +37742,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -35014,7 +37784,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -35028,6 +37798,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -35273,6 +38084,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -35823,6 +38640,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -35862,6 +38681,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -35899,6 +38720,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -35939,7 +38762,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -35953,6 +38776,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -36198,6 +39062,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -36673,6 +39543,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -37877,6 +40818,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -39120,6 +42132,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -40821,6 +43904,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -41564,6 +44718,65 @@ export interface Routes { } } } + '/thermostats/activate_weekly_program': { + route: '/thermostats/activate_weekly_program' + method: 'POST' + queryParams: {} + jsonBody: { + /** ID of the thermostat device that the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id?: string | undefined + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id?: string | undefined + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id?: string | undefined + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id?: string | undefined + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id?: string | undefined + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id?: string | undefined + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id?: string | undefined + } + commonParams: {} + formData: {} + jsonResponse: { + thermostat_weekly_program: { + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } + } + } + '/thermostats/clear_weekly_program': { + route: '/thermostats/clear_weekly_program' + method: 'POST' + queryParams: {} + jsonBody: {} + commonParams: { + /** ID of the thermostat device to clear the weekly program for. */ + device_id: string + } + formData: {} + jsonResponse: {} + } '/thermostats/cool': { route: '/thermostats/cool' method: 'POST' @@ -42020,6 +45233,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -42794,6 +46078,78 @@ export interface Routes { formData: {} jsonResponse: {} } + '/thermostats/daily_programs/create': { + route: '/thermostats/daily_programs/create' + method: 'POST' + queryParams: {} + jsonBody: { + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + } + commonParams: {} + formData: {} + jsonResponse: { + thermostat_daily_program: { + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + } + } + } + '/thermostats/daily_programs/delete': { + route: '/thermostats/daily_programs/delete' + method: 'DELETE' | 'POST' + queryParams: {} + jsonBody: {} + commonParams: { + /** ID of the desired thermostat schedule. */ + thermostat_daily_program_id: string + } + formData: {} + jsonResponse: {} + } + '/thermostats/daily_programs/update': { + route: '/thermostats/daily_programs/update' + method: 'PATCH' | 'POST' + queryParams: {} + jsonBody: { + /** ID of the desired thermostat daily program. */ + thermostat_daily_program_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + } + commonParams: {} + formData: {} + jsonResponse: {} + } '/thermostats/delete_climate_preset': { route: '/thermostats/delete_climate_preset' method: 'POST' | 'DELETE' @@ -43354,6 +46710,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -43393,6 +46751,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -43430,6 +46790,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -43470,7 +46832,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -43484,6 +46846,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -43729,6 +47132,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -44205,6 +47614,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -45408,6 +48888,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -46766,6 +50317,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -46805,6 +50358,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -46842,6 +50397,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -46882,7 +50439,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -46896,6 +50453,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -47141,6 +50739,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -47691,6 +51295,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -47730,6 +51336,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -47767,6 +51375,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -47807,7 +51417,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -47821,6 +51431,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -48066,6 +51717,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -48538,6 +52195,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -49293,13 +53021,13 @@ export interface Routes { /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the thermostat schedule. */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ - max_override_period_minutes?: number | null + max_override_period_minutes?: (number | null) | undefined /** Date and time at which the thermostat schedule starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Date and time at which the thermostat schedule ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** 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/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ - is_override_allowed?: boolean + is_override_allowed?: boolean | undefined } commonParams: {} formData: {} @@ -49319,7 +53047,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -49372,7 +53100,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -49414,7 +53142,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -49923,6 +53651,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -51149,6 +54948,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -52193,7 +56063,9 @@ export interface Routes { /** Date and time at which the access method was created. */ created_at: string /** Date and time at which the access method was issued. */ - issued_at: string | null + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined }> } } @@ -53175,6 +57047,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -53214,6 +57088,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -53251,6 +57127,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -53291,7 +57169,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -53305,6 +57183,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -53550,6 +57469,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -54102,6 +58027,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -54141,6 +58068,8 @@ export interface Routes { can_edit?: boolean | undefined /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete?: boolean | undefined + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program?: boolean | undefined /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: ((string | null) | undefined) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -54178,6 +58107,8 @@ export interface Routes { can_edit: boolean /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. */ can_delete: boolean + /** Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. */ + can_program: boolean /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ name?: (string | null) | undefined /** Display name for the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ @@ -54218,7 +58149,7 @@ export interface Routes { /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ starts_at: string /** Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. */ - unstable_is_override_allowed?: boolean | undefined + is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ @@ -54232,6 +58163,47 @@ export interface Routes { }> } | null) | undefined + thermostat_daily_programs?: + | (Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> | null) + | undefined + thermostat_weekly_program?: + | ({ + /** ID of the thermostat device the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined max_cooling_set_point_celsius?: number | undefined @@ -54477,6 +58449,12 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'unknown_issue_with_phone' } + | { + message: string + created_at: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'lockly_timezone_not_configured' + } > /** Date and time at which the device object was created. */ created_at: string @@ -54678,6 +58656,12 @@ export interface Routes { can_remove_acs_users_from_acs_access_groups?: boolean | undefined /** Indicates whether the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) supports [adding users to access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems). */ can_add_acs_users_to_acs_access_groups?: boolean | undefined + can_update_user_schedule?: boolean | undefined + can_create_user?: boolean | undefined + can_delete_user?: boolean | undefined + can_update_user_information?: boolean | undefined + can_update_user_supension_state?: boolean | undefined + can_update_user_group_membership?: boolean | undefined }> } } @@ -54737,14 +58721,6 @@ export interface Routes { user_identity_email_address?: (string | null) | undefined /** Phone number of the user identity associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) in E.164 format (for example, `+15555550100`). */ user_identity_phone_number?: (string | null) | undefined - /** */ - latest_desired_state_synced_with_provider_at?: - | (string | null) - | undefined - /** */ - is_latest_desired_state_synced_with_provider?: - | (boolean | null) - | undefined /** Warnings associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ warnings: Array< | { @@ -54807,21 +58783,27 @@ export interface Routes { error_code: 'failed_to_delete_on_acs_system' } > - /** */ + /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: | Array< | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'creating' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'deleting' } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_user_information' from: { @@ -54836,7 +58818,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_access_schedule' from: { @@ -54849,7 +58833,9 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_suspension_state' from: { @@ -54860,13 +58846,19 @@ export interface Routes { } } | { + /** Date and time at which the mutation was created. */ created_at: string + /** Detailed description of the mutation. */ message: string mutation_code: 'updating_group_membership' + /** Old access group membership. */ from: { + /** Old access group ID. */ acs_access_group_id: string | null } + /** New access group membership. */ to: { + /** New access group ID. */ acs_access_group_id: string | null } } @@ -55570,6 +59562,77 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string diff --git a/src/lib/seam/connect/schemas.ts b/src/lib/seam/connect/schemas.ts index f46ca755..f1f3c1f5 100644 --- a/src/lib/seam/connect/schemas.ts +++ b/src/lib/seam/connect/schemas.ts @@ -22,7 +22,9 @@ export { noise_threshold, pagination, seam_event, + thermostat_daily_program, thermostat_schedule, + thermostat_weekly_program, unmanaged_access_code, unmanaged_acs_access_group, unmanaged_acs_credential, From 4a44b5463a219529ec6345d82ddddc1c7d7c9e1c Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Tue, 6 May 2025 11:08:31 -0700 Subject: [PATCH 12/52] Update via seamapi/seam-connect@a060c555d6ffb5f1244bc8e1e60c39487cec8746 (#1833) --- .../models/access-grants/access-method.ts | 6 + src/lib/seam/connect/openapi.ts | 338 +++++++++++++++++- src/lib/seam/connect/route-types.ts | 137 ++++++- 3 files changed, 466 insertions(+), 15 deletions(-) diff --git a/src/lib/seam/connect/models/access-grants/access-method.ts b/src/lib/seam/connect/models/access-grants/access-method.ts index a18abce5..7aea880d 100644 --- a/src/lib/seam/connect/models/access-grants/access-method.ts +++ b/src/lib/seam/connect/models/access-grants/access-method.ts @@ -27,6 +27,12 @@ export const access_method = z.object({ .string() .optional() .describe('URL of instant key for mobile key access methods.'), + is_card_encoding_required: z + .boolean() + .optional() + .describe( + 'Whether card encoding is required for plastic card access methods.', + ), }).describe(` --- undocumented: Unreleased. diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index f85e2d76..adad992f 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -4646,6 +4646,11 @@ export default { 'URL of instant key for mobile key access methods.', type: 'string', }, + is_card_encoding_required: { + description: + 'Whether card encoding is required for plastic card access methods.', + type: 'boolean', + }, issued_at: { description: 'Date and time at which the access method was issued.', @@ -19273,7 +19278,7 @@ export default { '/access_codes/report_device_constraints': { post: { description: - 'Allows clients to report supported code length constraints for a SmartThings lock device.', + 'Enables you to report access code-related constraints for a device. Currently, supports reporting supported code length constraints for SmartThings devices.', operationId: 'accessCodesReportDeviceConstraintsPost', requestBody: { content: { @@ -19281,27 +19286,28 @@ export default { schema: { properties: { device_id: { - description: 'ID of the device to report constraints for.', + description: + 'ID of the device for which to report constraints.', format: 'uuid', type: 'string', }, max_code_length: { description: - 'Maximum supported code length between 4 and 20 inclusive; cannot be provided with supported_code_lengths.', + 'Maximum supported code length as an integer between 4 and 20, inclusive. You can specify either `min_code_length`/`max_code_length` or `supported_code_lengths`.', maximum: 20, minimum: 4, type: 'integer', }, min_code_length: { description: - 'Minimum supported code length between 4 and 20 inclusive; cannot be provided with supported_code_lengths.', + 'Minimum supported code length as an integer between 4 and 20, inclusive. You can specify either `min_code_length`/`max_code_length` or `supported_code_lengths`.', maximum: 20, minimum: 4, type: 'integer', }, supported_code_lengths: { description: - 'Array of supported code lengths between 4 and 20 inclusive; cannot be provided with min_code_length or max_code_length.', + 'Array of supported code lengths as integers between 4 and 20, inclusive. You can specify either `supported_code_lengths` or `min_code_length`/`max_code_length`.', items: { maximum: 20, minimum: 4, type: 'integer' }, minItems: 1, type: 'array', @@ -19340,7 +19346,7 @@ export default { 'x-fern-sdk-group-name': ['access_codes'], 'x-fern-sdk-method-name': 'report_device_constraints', 'x-response-key': null, - 'x-title': 'Report Device Code Constraints', + 'x-title': 'Report Device Access Code Constraints', }, }, '/access_codes/simulate/create_unmanaged_access_code': { @@ -22988,6 +22994,12 @@ export default { properties: { acs_credential_id: { format: 'uuid', type: 'string' }, acs_system_id: { format: 'uuid', type: 'string' }, + location_id: { + format: 'uuid', + nullable: true, + type: 'string', + 'x-undocumented': 'Experimental locations.', + }, }, type: 'object', }, @@ -25826,6 +25838,12 @@ export default { ], type: 'string', }, + page_cursor: { + description: + "Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.", + nullable: true, + type: 'string', + }, unstable_location_id: { format: 'uuid', nullable: true, @@ -25854,8 +25872,9 @@ export default { type: 'array', }, ok: { type: 'boolean' }, + pagination: { $ref: '#/components/schemas/pagination' }, }, - required: ['devices', 'ok'], + required: ['devices', 'pagination', 'ok'], type: 'object', }, }, @@ -26367,6 +26386,12 @@ export default { ], type: 'string', }, + page_cursor: { + description: + "Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.", + nullable: true, + type: 'string', + }, unstable_location_id: { format: 'uuid', nullable: true, @@ -27197,6 +27222,12 @@ export default { ], type: 'string', }, + page_cursor: { + description: + "Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.", + nullable: true, + type: 'string', + }, unstable_location_id: { format: 'uuid', nullable: true, @@ -27664,6 +27695,12 @@ export default { enum: ['noiseaware', 'minut'], type: 'string', }, + page_cursor: { + description: + "Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.", + nullable: true, + type: 'string', + }, unstable_location_id: { format: 'uuid', nullable: true, @@ -30853,6 +30890,12 @@ export default { enum: ['ecobee', 'nest', 'honeywell_resideo', 'tado'], type: 'string', }, + page_cursor: { + description: + "Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.", + nullable: true, + type: 'string', + }, unstable_location_id: { format: 'uuid', nullable: true, @@ -32873,6 +32916,116 @@ export default { 'x-undocumented': 'Unreleased.', }, }, + '/unstable_access_methods/get': { + post: { + description: 'Get an access method.', + operationId: 'unstableAccessMethodsGetPost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + access_method_id: { + description: 'ID of access method to get.', + format: 'uuid', + type: 'string', + }, + }, + required: ['access_method_id'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { + access_method: { + properties: { + access_method_id: { + description: 'ID of the access method.', + format: 'uuid', + type: 'string', + }, + created_at: { + description: + 'Date and time at which the access method was created.', + format: 'date-time', + type: 'string', + }, + display_name: { + description: 'Display name of the access method.', + type: 'string', + }, + instant_key_url: { + description: + 'URL of instant key for mobile key access methods.', + type: 'string', + }, + is_card_encoding_required: { + description: + 'Whether card encoding is required for plastic card access methods.', + type: 'boolean', + }, + issued_at: { + description: + 'Date and time at which the access method was issued.', + format: 'date-time', + type: 'string', + }, + mode: { + description: + 'Access method mode. Supported values: `code`, `card`, `mobile_key`.', + enum: ['code', 'card', 'mobile_key'], + type: 'string', + }, + workspace_id: { + description: + 'Unique identifier for the Seam workspace associated with the access grant.', + format: 'uuid', + type: 'string', + }, + }, + required: [ + 'workspace_id', + 'access_method_id', + 'display_name', + 'mode', + 'created_at', + ], + type: 'object', + 'x-undocumented': 'Unreleased.', + }, + ok: { type: 'boolean' }, + }, + required: ['access_method', 'ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + { api_key: [] }, + ], + summary: '/unstable_access_methods/get', + tags: [], + 'x-fern-sdk-group-name': ['unstable_access_methods'], + 'x-fern-sdk-method-name': 'get', + 'x-fern-sdk-return-value': 'access_method', + 'x-response-key': 'access_method', + 'x-title': 'Get an Access Method', + 'x-undocumented': 'Unreleased.', + }, + }, '/unstable_access_methods/list': { post: { description: @@ -32925,6 +33078,11 @@ export default { 'URL of instant key for mobile key access methods.', type: 'string', }, + is_card_encoding_required: { + description: + 'Whether card encoding is required for plastic card access methods.', + type: 'boolean', + }, issued_at: { description: 'Date and time at which the access method was issued.', @@ -32983,10 +33141,110 @@ export default { 'x-undocumented': 'Unreleased.', }, }, + '/unstable_locations/add_acs_entrances': { + post: { + description: 'Add entrances to a specific location.', + operationId: 'unstableLocationsAddAcsEntrancesPost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + acs_entrance_ids: { + items: { format: 'uuid', type: 'string' }, + minItems: 1, + type: 'array', + }, + location_id: { format: 'uuid', type: 'string' }, + }, + required: ['location_id', 'acs_entrance_ids'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { ok: { type: 'boolean' } }, + required: ['ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + { api_key: [] }, + ], + summary: '/unstable_locations/add_acs_entrances', + tags: [], + 'x-fern-sdk-group-name': ['unstable_locations'], + 'x-fern-sdk-method-name': 'add_acs_entrances', + 'x-response-key': null, + 'x-title': 'Add ACS Entrances', + 'x-undocumented': 'Experimental locations.', + }, + put: { + description: 'Add entrances to a specific location.', + operationId: 'unstableLocationsAddAcsEntrancesPut', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + acs_entrance_ids: { + items: { format: 'uuid', type: 'string' }, + minItems: 1, + type: 'array', + }, + location_id: { format: 'uuid', type: 'string' }, + }, + required: ['location_id', 'acs_entrance_ids'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { ok: { type: 'boolean' } }, + required: ['ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + { api_key: [] }, + ], + summary: '/unstable_locations/add_acs_entrances', + tags: [], + 'x-fern-ignore': true, + 'x-response-key': null, + 'x-title': 'Add ACS Entrances', + 'x-undocumented': 'Experimental locations.', + }, + }, '/unstable_locations/add_devices': { post: { - description: - 'Add devices to a specific location. If a device already belongs to a location it will be moved.', + description: 'Add devices to a specific location.', operationId: 'unstableLocationsAddDevicesPost', requestBody: { content: { @@ -33036,8 +33294,7 @@ export default { 'x-undocumented': 'Experimental locations.', }, put: { - description: - 'Add devices to a specific location. If a device already belongs to a location it will be moved.', + description: 'Add devices to a specific location.', operationId: 'unstableLocationsAddDevicesPut', requestBody: { content: { @@ -33095,6 +33352,14 @@ export default { 'application/json': { schema: { properties: { + acs_entrance_ids: { + items: { format: 'uuid', type: 'string' }, + type: 'array', + }, + device_ids: { + items: { format: 'uuid', type: 'string' }, + type: 'array', + }, geolocation: { properties: { latitude: { format: 'float', type: 'number' }, @@ -33516,6 +33781,57 @@ export default { 'x-undocumented': 'Experimental locations.', }, }, + '/unstable_locations/remove_acs_entrances': { + post: { + description: 'Remove entrances from a specific location.', + operationId: 'unstableLocationsRemoveAcsEntrancesPost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + acs_entrance_ids: { + items: { format: 'uuid', type: 'string' }, + type: 'array', + }, + location_id: { format: 'uuid', type: 'string' }, + }, + required: ['location_id', 'acs_entrance_ids'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { ok: { type: 'boolean' } }, + required: ['ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { pat_with_workspace: [] }, + { console_session_with_workspace: [] }, + { api_key: [] }, + ], + summary: '/unstable_locations/remove_acs_entrances', + tags: [], + 'x-fern-sdk-group-name': ['unstable_locations'], + 'x-fern-sdk-method-name': 'remove_acs_entrances', + 'x-response-key': null, + 'x-title': 'Remove ACS Entrances', + 'x-undocumented': 'Experimental locations.', + }, + }, '/unstable_locations/remove_devices': { post: { description: 'Remove devices from a specific location.', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index d9c77b56..49db0d38 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -514,6 +514,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -2816,6 +2818,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -5656,13 +5660,13 @@ export interface Routes { method: 'POST' queryParams: {} jsonBody: { - /** ID of the device to report constraints for. */ + /** ID of the device for which to report constraints. */ device_id: string - /** Array of supported code lengths between 4 and 20 inclusive; cannot be provided with min_code_length or max_code_length. */ + /** Array of supported code lengths as integers between 4 and 20, inclusive. You can specify either `supported_code_lengths` or `min_code_length`/`max_code_length`. */ supported_code_lengths?: number[] | undefined - /** Minimum supported code length between 4 and 20 inclusive; cannot be provided with supported_code_lengths. */ + /** Minimum supported code length as an integer between 4 and 20, inclusive. You can specify either `min_code_length`/`max_code_length` or `supported_code_lengths`. */ min_code_length?: number | undefined - /** Maximum supported code length between 4 and 20 inclusive; cannot be provided with supported_code_lengths. */ + /** Maximum supported code length as an integer between 4 and 20, inclusive. You can specify either `min_code_length`/`max_code_length` or `supported_code_lengths`. */ max_code_length?: number | undefined } commonParams: {} @@ -6675,6 +6679,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -8981,6 +8987,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -12482,6 +12490,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -13748,6 +13758,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -15109,6 +15121,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -16096,6 +16110,8 @@ export interface Routes { commonParams: { acs_system_id?: string | undefined acs_credential_id?: string | undefined + /** */ + location_id?: (string | null) | undefined } formData: {} jsonResponse: { @@ -18713,6 +18729,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -19975,6 +19993,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -22654,6 +22674,8 @@ export interface Routes { user_identifier_key?: string | undefined /** Set of key:value [custom metadata](https://docs.seam.co/latest/core-concepts/devices/adding-custom-metadata-to-a-device) pairs by which you want to filter devices. */ custom_metadata_has?: Record | undefined + /** Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. */ + page_cursor?: (string | undefined) | null /** */ include_if?: | Array< @@ -23669,6 +23691,15 @@ export interface Routes { can_simulate_connection?: boolean | undefined can_simulate_disconnection?: boolean | undefined }> + /** Information about the current page of results. */ + pagination: { + /** Opaque value that can be used to select the next page of results via the `page_cursor` parameter. */ + next_page_cursor: string | null + /** Indicates whether there is another page of results after this one. */ + has_next_page: boolean + /** URL to get the next page of results. */ + next_page_url: string | null + } } } '/devices/list_device_providers': { @@ -24310,6 +24341,8 @@ export interface Routes { user_identifier_key?: string | undefined /** Set of key:value [custom metadata](https://docs.seam.co/latest/core-concepts/devices/adding-custom-metadata-to-a-device) pairs by which you want to filter devices. */ custom_metadata_has?: Record | undefined + /** Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. */ + page_cursor?: (string | undefined) | null /** */ include_if?: | Array< @@ -29978,6 +30011,8 @@ export interface Routes { user_identifier_key?: string | undefined /** Set of key:value [custom metadata](https://docs.seam.co/latest/core-concepts/devices/adding-custom-metadata-to-a-device) pairs by which you want to filter devices. */ custom_metadata_has?: Record | undefined + /** Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. */ + page_cursor?: (string | undefined) | null /** */ include_if?: | Array< @@ -32458,6 +32493,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -33722,6 +33759,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -34985,6 +35024,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -36249,6 +36290,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -37093,6 +37136,8 @@ export interface Routes { user_identifier_key?: string | undefined /** Set of key:value [custom metadata](https://docs.seam.co/latest/core-concepts/devices/adding-custom-metadata-to-a-device) pairs by which you want to filter devices. */ custom_metadata_has?: Record | undefined + /** Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. */ + page_cursor?: (string | undefined) | null /** */ include_if?: | Array< @@ -39578,6 +39623,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -40853,6 +40900,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -42167,6 +42216,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -43939,6 +43990,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -45268,6 +45321,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -47649,6 +47704,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -48923,6 +48980,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -49748,6 +49807,8 @@ export interface Routes { user_identifier_key?: string | undefined /** Set of key:value [custom metadata](https://docs.seam.co/latest/core-concepts/devices/adding-custom-metadata-to-a-device) pairs by which you want to filter devices. */ custom_metadata_has?: Record | undefined + /** Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. */ + page_cursor?: (string | undefined) | null /** */ include_if?: | Array< @@ -52230,6 +52291,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -53686,6 +53749,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -54983,6 +55048,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { @@ -56040,6 +56107,38 @@ export interface Routes { }> } } + '/unstable_access_methods/get': { + route: '/unstable_access_methods/get' + method: 'GET' | 'POST' + queryParams: {} + jsonBody: {} + commonParams: { + /** ID of access method to get. */ + access_method_id: string + } + formData: {} + jsonResponse: { + /** */ + access_method: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined + } + } + } '/unstable_access_methods/list': { route: '/unstable_access_methods/list' method: 'GET' | 'POST' @@ -56066,9 +56165,23 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined }> } } + '/unstable_locations/add_acs_entrances': { + route: '/unstable_locations/add_acs_entrances' + method: 'POST' | 'PUT' + queryParams: {} + jsonBody: { + location_id: string + acs_entrance_ids: string[] + } + commonParams: {} + formData: {} + jsonResponse: {} + } '/unstable_locations/add_devices': { route: '/unstable_locations/add_devices' method: 'POST' | 'PUT' @@ -56094,6 +56207,8 @@ export interface Routes { } | undefined time_zone?: string | undefined + device_ids?: string[] | undefined + acs_entrance_ids?: string[] | undefined } commonParams: {} formData: {} @@ -56196,6 +56311,18 @@ export interface Routes { }> } } + '/unstable_locations/remove_acs_entrances': { + route: '/unstable_locations/remove_acs_entrances' + method: 'POST' | 'DELETE' + queryParams: {} + jsonBody: {} + commonParams: { + location_id: string + acs_entrance_ids: string[] + } + formData: {} + jsonResponse: {} + } '/unstable_locations/remove_devices': { route: '/unstable_locations/remove_devices' method: 'POST' | 'DELETE' @@ -59597,6 +59724,8 @@ export interface Routes { issued_at?: string | undefined /** URL of instant key for mobile key access methods. */ instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined } } | { From d6bf12473218db60dba93b8cb56c0393bac9cd88 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Tue, 6 May 2025 18:26:23 -0700 Subject: [PATCH 13/52] fix: Name of lockly_time_zone_not_configured warning (#1834) Update via seamapi/seam-connect@e64ed0d7a07cd17fca753ad3950bc1748fad2f87 --- src/lib/seam/connect/models/devices/device.ts | 10 +++---- src/lib/seam/connect/openapi.ts | 8 ++--- src/lib/seam/connect/route-types.ts | 30 +++++++++---------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/lib/seam/connect/models/devices/device.ts b/src/lib/seam/connect/models/devices/device.ts index c5677ef5..3b57d0ec 100644 --- a/src/lib/seam/connect/models/devices/device.ts +++ b/src/lib/seam/connect/models/devices/device.ts @@ -306,14 +306,14 @@ const device_has_flaky_connection = common_device_warning }) .describe('Device has flaky connection.') -const lockly_timezone_not_configured = common_device_warning +const lockly_time_zone_not_configured = common_device_warning .extend({ warning_code: z - .literal('lockly_timezone_not_configured') + .literal('lockly_time_zone_not_configured') .describe(warning_code_description), }) .describe( - 'We detected that this device does not have a timezone configured. Time bound codes may not work as expected.', + 'We detected that this device does not have a time zone configured. Time bound codes may not work as expected.', ) export const unknown_issue_with_phone = common_device_warning @@ -343,7 +343,7 @@ const device_warning = z.discriminatedUnion('warning_code', [ salto_ks_privacy_mode, salto_ks_subscription_limit_almost_reached, unknown_issue_with_phone, - lockly_timezone_not_configured, + lockly_time_zone_not_configured, ]) export type DeviceWarning = z.infer @@ -387,7 +387,7 @@ export const device_warning_map = z.object({ salto_ks_subscription_limit_almost_reached: salto_ks_subscription_limit_almost_reached.optional().nullable(), unknown_issue_with_phone: unknown_issue_with_phone.optional().nullable(), - lockly_timezone_not_configured: lockly_timezone_not_configured + lockly_time_zone_not_configured: lockly_time_zone_not_configured .optional() .nullable(), }) diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index adad992f..3a0f01ea 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -9515,14 +9515,14 @@ export default { }, { description: - 'We detected that this device does not have a timezone configured. Time bound codes may not work as expected.', + 'We detected that this device does not have a time zone configured. Time bound codes may not work as expected.', properties: { created_at: { format: 'date-time', type: 'string' }, message: { type: 'string' }, warning_code: { description: 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', - enum: ['lockly_timezone_not_configured'], + enum: ['lockly_time_zone_not_configured'], type: 'string', }, }, @@ -18341,14 +18341,14 @@ export default { }, { description: - 'We detected that this device does not have a timezone configured. Time bound codes may not work as expected.', + 'We detected that this device does not have a time zone configured. Time bound codes may not work as expected.', properties: { created_at: { format: 'date-time', type: 'string' }, message: { type: 'string' }, warning_code: { description: 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', - enum: ['lockly_timezone_not_configured'], + enum: ['lockly_time_zone_not_configured'], type: 'string', }, }, diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 49db0d38..7050a68b 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -22502,7 +22502,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -23671,7 +23671,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -24115,7 +24115,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -24659,7 +24659,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -28892,7 +28892,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -29871,7 +29871,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -31008,7 +31008,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -31986,7 +31986,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -38133,7 +38133,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -39111,7 +39111,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -47191,7 +47191,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -50804,7 +50804,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -51782,7 +51782,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -57600,7 +57600,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ @@ -58580,7 +58580,7 @@ export interface Routes { message: string created_at: string /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'lockly_timezone_not_configured' + warning_code: 'lockly_time_zone_not_configured' } > /** Date and time at which the device object was created. */ From 31986c3ba9e8c1d4fbc4c507edc8ac1adb893a33 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 7 May 2025 01:27:19 +0000 Subject: [PATCH 14/52] 1.386.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4d5a2eaa..02e1b2af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.386.0", + "version": "1.386.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.386.0", + "version": "1.386.1", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.40.0", diff --git a/package.json b/package.json index e9df73c2..6e265acb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.386.0", + "version": "1.386.1", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From 296ad03238df258d18719ceb10ca3fb7a2d75526 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Tue, 6 May 2025 18:32:17 -0700 Subject: [PATCH 15/52] fix: Mark seam endpoint undocumented (#1835) Update via seamapi/seam-connect@6adbc987670fdfb0fb299532d0e0b45d156ee83b Co-authored-by: Evan Sosenko --- src/lib/seam/connect/openapi.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 3a0f01ea..db3c1e2d 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -29609,7 +29609,7 @@ export default { '/seam/instant_key/v1/client_sessions/exchange_short_code': { post: { description: - 'Exchanges a short code for a Client Session Token (CST).\nThis endpoint is used by mobile apps to securely retrieve a client session token \nusing a short code obtained from an instant key URL.', + 'Exchanges a short code for a Client Session Token (CST).\nThis endpoint is used by mobile apps to securely retrieve a client session token\nusing a short code obtained from an instant key URL.', operationId: 'seamInstantKeyV1ClientSessionsExchangeShortCodePost', requestBody: { content: { @@ -29662,6 +29662,7 @@ export default { 'x-fern-sdk-return-value': 'client_session', 'x-response-key': 'client_session', 'x-title': 'Exchange Instant Key Short Code', + 'x-undocumented': 'Seam Instant Key only.', }, }, '/thermostats/activate_climate_preset': { From c5ab3a204cbc3c2f728ff43a4ee5a5ee25671625 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 7 May 2025 01:33:08 +0000 Subject: [PATCH 16/52] 1.386.2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 02e1b2af..9c0c2639 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.386.1", + "version": "1.386.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.386.1", + "version": "1.386.2", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.40.0", diff --git a/package.json b/package.json index 6e265acb..64b37e61 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.386.1", + "version": "1.386.2", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From c9483bf7fcd1681d35a847cf07fe4fc89fda12f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 08:57:35 +0000 Subject: [PATCH 17/52] test(deps-dev): bump @seamapi/blueprint from 0.40.0 to 0.40.1 in the seam group (#1836) test(deps-dev): bump @seamapi/blueprint in the seam group Bumps the seam group with 1 update: [@seamapi/blueprint](https://github.com/seamapi/blueprint). Updates `@seamapi/blueprint` from 0.40.0 to 0.40.1 - [Release notes](https://github.com/seamapi/blueprint/releases) - [Changelog](https://github.com/seamapi/blueprint/blob/main/.releaserc.json) - [Commits](https://github.com/seamapi/blueprint/compare/v0.40.0...v0.40.1) --- updated-dependencies: - dependency-name: "@seamapi/blueprint" dependency-version: 0.40.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: seam ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c0c2639..1064193a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1130,9 +1130,9 @@ "peer": true }, "node_modules/@seamapi/blueprint": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-0.40.0.tgz", - "integrity": "sha512-eCWAVVcqP1x+xmbcPj5yB/w1aflF/Uo3d27E27N2CrK/KcOU2QtuSHXHuHO01KttSBG10d+4ncWiRijhwFZ18A==", + "version": "0.40.1", + "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-0.40.1.tgz", + "integrity": "sha512-Xwpc39dReqYQCnIcWcmaPWnkW8aYL5f8wbk3FWRwWKVd8qDUcun3mdsqzcnS7lqwyuqhgUS02xyPR203fGOLjA==", "dev": true, "license": "MIT", "dependencies": { From f02d3b5e679284b8614793802baa877ea7eeb272 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 7 May 2025 13:33:42 -0700 Subject: [PATCH 18/52] feat: Add pagination to /access_codes/list --- src/lib/seam/connect/openapi.ts | 16 +++++++++++++++- src/lib/seam/connect/route-types.ts | 13 +++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index db3c1e2d..55f9db1c 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -19167,6 +19167,19 @@ export default { format: 'uuid', type: 'string', }, + limit: { + default: 55_000, + description: + 'Numerical limit on the number of access codes to return.', + format: 'float', + type: 'number', + }, + page_cursor: { + description: + "Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.", + nullable: true, + type: 'string', + }, user_identifier_key: { description: 'Your user ID for the user by which to filter access codes.', @@ -19189,8 +19202,9 @@ export default { type: 'array', }, ok: { type: 'boolean' }, + pagination: { $ref: '#/components/schemas/pagination' }, }, - required: ['access_codes', 'ok'], + required: ['access_codes', 'pagination', 'ok'], type: 'object', }, }, diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 7050a68b..762f561a 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -4144,6 +4144,10 @@ export interface Routes { access_code_ids?: string[] | undefined /** Your user ID for the user by which to filter access codes. */ user_identifier_key?: string | undefined + /** Numerical limit on the number of access codes to return. */ + limit?: number + /** Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. */ + page_cursor?: (string | undefined) | null } formData: {} jsonResponse: { @@ -4640,6 +4644,15 @@ export interface Routes { /** Indicates whether the access code is intended for use in offline scenarios. If `true`, this code can be created on a device without a network connection. */ is_offline_access_code: boolean }> + /** Information about the current page of results. */ + pagination: { + /** Opaque value that can be used to select the next page of results via the `page_cursor` parameter. */ + next_page_cursor: string | null + /** Indicates whether there is another page of results after this one. */ + has_next_page: boolean + /** URL to get the next page of results. */ + next_page_url: string | null + } } } '/access_codes/pull_backup_access_code': { From 0b25361a30de23081bdd3e92803374ef4a308533 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 7 May 2025 20:34:47 +0000 Subject: [PATCH 19/52] 1.387.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1064193a..22d28fbf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.386.2", + "version": "1.387.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.386.2", + "version": "1.387.0", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.40.0", diff --git a/package.json b/package.json index 64b37e61..c285f80e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.386.2", + "version": "1.387.0", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From 7f29fb5018b8a91bc7f10b0c110728a74ba6e285 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 7 May 2025 13:38:29 -0700 Subject: [PATCH 20/52] feat: Add latch_resident_user warning (#1840) Update via seamapi/seam-connect@cc0e497d1b27e7f2675a4fbc23d7813a3e2349b5 Co-authored-by: Evan Sosenko --- .../connect/models/acs/acs-users/acs-user.ts | 10 ++++ src/lib/seam/connect/openapi.ts | 46 +++++++++++++++++ src/lib/seam/connect/route-types.ts | 49 +++++++++++++++++++ 3 files changed, 105 insertions(+) diff --git a/src/lib/seam/connect/models/acs/acs-users/acs-user.ts b/src/lib/seam/connect/models/acs/acs-users/acs-user.ts index ece27d4d..35297f62 100644 --- a/src/lib/seam/connect/models/acs/acs-users/acs-user.ts +++ b/src/lib/seam/connect/models/acs/acs-users/acs-user.ts @@ -133,6 +133,14 @@ export const unknown_issue_with_acs_user = common_acs_user_warning 'An unknown issue occurred while syncing the state of this [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user.', ) +export const latch_resident_user = common_acs_user_warning + .extend({ + warning_code: z.literal('latch_resident_user'), + }) + .describe( + 'Indicates that the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user.', + ) + export const acs_users_warning_map = z.object({ being_deleted: acs_users_being_deleted.optional().nullable(), salto_ks_user_not_subscribed: acs_users_salto_ks_user_not_subscribed @@ -141,6 +149,7 @@ export const acs_users_warning_map = z.object({ unknown_issue_with_acs_user: unknown_issue_with_acs_user .optional() .nullable(), + latch_resident_user: latch_resident_user.optional().nullable(), }) export const acs_users_warnings = z @@ -148,6 +157,7 @@ export const acs_users_warnings = z acs_users_being_deleted, acs_users_salto_ks_user_not_subscribed, unknown_issue_with_acs_user, + latch_resident_user, ]) .describe( 'Warnings associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management).', diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 55f9db1c..6ad285fd 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -3281,6 +3281,29 @@ export default { required: ['created_at', 'message', 'warning_code'], type: 'object', }, + { + description: + 'Indicates that the [ACS user](https://docs.seam.co/latest/capability-guides/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.', + format: 'date-time', + type: 'string', + }, + message: { + description: + 'Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.', + type: 'string', + }, + warning_code: { + enum: ['latch_resident_user'], + type: 'string', + }, + }, + required: ['created_at', 'message', 'warning_code'], + type: 'object', + }, ], }, type: 'array', @@ -17477,6 +17500,29 @@ export default { required: ['created_at', 'message', 'warning_code'], type: 'object', }, + { + description: + 'Indicates that the [ACS user](https://docs.seam.co/latest/capability-guides/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.', + format: 'date-time', + type: 'string', + }, + message: { + description: + 'Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.', + type: 'string', + }, + warning_code: { + enum: ['latch_resident_user'], + type: 'string', + }, + }, + required: ['created_at', 'message', 'warning_code'], + type: 'object', + }, ], }, type: 'array', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 762f561a..b31b2c73 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -10113,6 +10113,13 @@ export interface Routes { message: string warning_code: 'unknown_issue_with_acs_user' } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + warning_code: 'latch_resident_user' + } > /** Errors associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ errors: Array< @@ -17058,6 +17065,13 @@ export interface Routes { message: string warning_code: 'unknown_issue_with_acs_user' } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + warning_code: 'latch_resident_user' + } > /** Errors associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ errors: Array< @@ -17287,6 +17301,13 @@ export interface Routes { message: string warning_code: 'unknown_issue_with_acs_user' } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + warning_code: 'latch_resident_user' + } > /** Errors associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ errors: Array< @@ -17512,6 +17533,13 @@ export interface Routes { message: string warning_code: 'unknown_issue_with_acs_user' } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + warning_code: 'latch_resident_user' + } > /** Errors associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ errors: Array< @@ -17869,6 +17897,13 @@ export interface Routes { message: string warning_code: 'unknown_issue_with_acs_user' } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + warning_code: 'latch_resident_user' + } > /** Errors associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ errors: Array< @@ -18084,6 +18119,13 @@ export interface Routes { message: string warning_code: 'unknown_issue_with_acs_user' } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + warning_code: 'latch_resident_user' + } > /** Errors associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ errors: Array< @@ -58884,6 +58926,13 @@ export interface Routes { message: string warning_code: 'unknown_issue_with_acs_user' } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + warning_code: 'latch_resident_user' + } > /** Errors associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ errors: Array< From 03992b1a5ff5ad56683e6b63dda01fcf663ea298 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 7 May 2025 20:39:27 +0000 Subject: [PATCH 21/52] 1.388.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 22d28fbf..723b66ac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.387.0", + "version": "1.388.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.387.0", + "version": "1.388.0", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.40.0", diff --git a/package.json b/package.json index c285f80e..06d1eabd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.387.0", + "version": "1.388.0", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From e123c502264befa9ddc8bbef94627e75af43ab2d Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 7 May 2025 14:06:35 -0700 Subject: [PATCH 22/52] feat: Add latch_access external type (#1843) Update via seamapi/seam-connect@ca74ad26bb19e2ed64298c791a61c0ca7219a106 Co-authored-by: Evan Sosenko --- .../seam/connect/models/acs/acs-credential.ts | 1 + src/lib/seam/connect/openapi.ts | 6 + src/lib/seam/connect/route-types.ts | 106 ++++++++++++++++++ 3 files changed, 113 insertions(+) diff --git a/src/lib/seam/connect/models/acs/acs-credential.ts b/src/lib/seam/connect/models/acs/acs-credential.ts index e0c29793..7bda94fe 100644 --- a/src/lib/seam/connect/models/acs/acs-credential.ts +++ b/src/lib/seam/connect/models/acs/acs-credential.ts @@ -14,6 +14,7 @@ export const acs_credential_external_type = z.enum([ 'salto_ks_credential', 'assa_abloy_vostio_key', 'salto_space_key', + 'latch_access', ]) export const acs_credential_access_method_type = z.enum([ diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 6ad285fd..97f7a662 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -1715,6 +1715,7 @@ export default { 'salto_ks_credential', 'assa_abloy_vostio_key', 'salto_space_key', + 'latch_access', ], type: 'string', }, @@ -3787,6 +3788,7 @@ export default { 'salto_ks_credential', 'assa_abloy_vostio_key', 'salto_space_key', + 'latch_access', ], type: 'string', }, @@ -4182,6 +4184,7 @@ export default { 'salto_ks_credential', 'assa_abloy_vostio_key', 'salto_space_key', + 'latch_access', ], type: 'string', }, @@ -4978,6 +4981,7 @@ export default { 'salto_ks_credential', 'assa_abloy_vostio_key', 'salto_space_key', + 'latch_access', ], type: 'string', }, @@ -5371,6 +5375,7 @@ export default { 'salto_ks_credential', 'assa_abloy_vostio_key', 'salto_space_key', + 'latch_access', ], type: 'string', }, @@ -16666,6 +16671,7 @@ export default { 'salto_ks_credential', 'assa_abloy_vostio_key', 'salto_space_key', + 'latch_access', ], type: 'string', }, diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index b31b2c73..31c08304 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -200,6 +200,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -339,6 +340,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -607,6 +609,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -744,6 +747,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -2504,6 +2508,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -2643,6 +2648,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -2911,6 +2917,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -3048,6 +3055,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -6378,6 +6386,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -6517,6 +6526,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -6785,6 +6795,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -6922,6 +6933,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -8686,6 +8698,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -8825,6 +8838,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -9093,6 +9107,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -9230,6 +9245,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -10483,6 +10499,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -10685,6 +10702,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -10848,6 +10866,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -11015,6 +11034,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -11188,6 +11208,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -11443,6 +11464,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -11594,6 +11616,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -11759,6 +11782,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -11918,6 +11942,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -12196,6 +12221,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -12335,6 +12361,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -12603,6 +12630,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -12740,6 +12768,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -13464,6 +13493,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -13603,6 +13633,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -13871,6 +13902,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -14008,6 +14040,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -14827,6 +14860,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -14966,6 +15000,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -15234,6 +15269,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -15371,6 +15407,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -16267,6 +16304,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -18470,6 +18508,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -18609,6 +18648,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -18877,6 +18917,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -19014,6 +19055,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -19734,6 +19776,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -19873,6 +19916,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -20141,6 +20185,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -20278,6 +20323,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -32234,6 +32280,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -32373,6 +32420,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -32641,6 +32689,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -32778,6 +32827,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -33500,6 +33550,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -33639,6 +33690,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -33907,6 +33959,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -34044,6 +34097,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -34765,6 +34819,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -34904,6 +34959,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -35172,6 +35228,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -35309,6 +35366,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -36031,6 +36089,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -36170,6 +36229,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -36438,6 +36498,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -36575,6 +36636,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -39364,6 +39426,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -39503,6 +39566,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -39771,6 +39835,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -39908,6 +39973,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -40641,6 +40707,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -40780,6 +40847,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -41048,6 +41116,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -41185,6 +41254,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -41957,6 +42027,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -42096,6 +42167,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -42364,6 +42436,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -42501,6 +42574,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -43731,6 +43805,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -43870,6 +43945,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -44138,6 +44214,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -44275,6 +44352,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -45062,6 +45140,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -45201,6 +45280,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -45469,6 +45549,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -45606,6 +45687,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -47445,6 +47527,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -47584,6 +47667,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -47852,6 +47936,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -47989,6 +48074,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -48721,6 +48807,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -48860,6 +48947,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -49128,6 +49216,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -49265,6 +49354,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -52032,6 +52122,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -52171,6 +52262,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -52439,6 +52531,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -52576,6 +52669,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -53490,6 +53584,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -53629,6 +53724,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -53897,6 +53993,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -54034,6 +54131,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -54789,6 +54887,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -54928,6 +55027,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -55196,6 +55296,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -55333,6 +55434,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -59472,6 +59574,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -59611,6 +59714,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -59879,6 +59983,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -60016,6 +60121,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ From ddeaa795c5ae805505b782469824d700400f2de1 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 7 May 2025 21:07:37 +0000 Subject: [PATCH 23/52] 1.389.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 723b66ac..e49b7277 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.388.0", + "version": "1.389.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.388.0", + "version": "1.389.0", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.40.0", diff --git a/package.json b/package.json index 06d1eabd..f6d1d7dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.388.0", + "version": "1.389.0", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From 93ce54015c29b83661dc5c86d7cafe0d798d1623 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 May 2025 09:08:26 +0000 Subject: [PATCH 24/52] test(deps-dev): bump @seamapi/blueprint from 0.40.1 to 0.40.2 in the seam group (#1846) test(deps-dev): bump @seamapi/blueprint in the seam group Bumps the seam group with 1 update: [@seamapi/blueprint](https://github.com/seamapi/blueprint). Updates `@seamapi/blueprint` from 0.40.1 to 0.40.2 - [Release notes](https://github.com/seamapi/blueprint/releases) - [Changelog](https://github.com/seamapi/blueprint/blob/main/.releaserc.json) - [Commits](https://github.com/seamapi/blueprint/compare/v0.40.1...v0.40.2) --- updated-dependencies: - dependency-name: "@seamapi/blueprint" dependency-version: 0.40.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: seam ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e49b7277..6f7d367a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1130,9 +1130,9 @@ "peer": true }, "node_modules/@seamapi/blueprint": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-0.40.1.tgz", - "integrity": "sha512-Xwpc39dReqYQCnIcWcmaPWnkW8aYL5f8wbk3FWRwWKVd8qDUcun3mdsqzcnS7lqwyuqhgUS02xyPR203fGOLjA==", + "version": "0.40.2", + "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-0.40.2.tgz", + "integrity": "sha512-LNJIZ+E8urW4SZWVe94/7+ESo+cbjEoqeZIWQyCEj2q/mv2XX8xpXkQE0uvfj/gu31A3tYIBE0HHfs456RQ/Yw==", "dev": true, "license": "MIT", "dependencies": { From 72ee97c9d1544e53e3da84ace7df07f3e401c197 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 8 May 2025 10:28:50 -0700 Subject: [PATCH 25/52] feat: Add thermostat program action attempt --- .../models/action-attempts/action-attempt.ts | 2 + .../push-thermostat-programs.ts | 36 + src/lib/seam/connect/openapi.ts | 223 +- src/lib/seam/connect/route-types.ts | 5546 +++++++++++++++-- 4 files changed, 5234 insertions(+), 573 deletions(-) create mode 100644 src/lib/seam/connect/models/action-attempts/push-thermostat-programs.ts diff --git a/src/lib/seam/connect/models/action-attempts/action-attempt.ts b/src/lib/seam/connect/models/action-attempts/action-attempt.ts index 652c5962..62ee8cd0 100644 --- a/src/lib/seam/connect/models/action-attempts/action-attempt.ts +++ b/src/lib/seam/connect/models/action-attempts/action-attempt.ts @@ -5,6 +5,7 @@ import { deprecated_action_attempts } from './deprecated.js' import { encode_access_method_action_attempt } from './encode-access-method.js' import { encode_credential_action_attempt } from './encode-credential.js' import { lock_door_action_attempt } from './lock-door.js' +import { push_thermostat_programs_action_attempt } from './push-thermostat-programs.js' import { reset_sandbox_workspace_action_attempt } from './reset-sandbox-workspace.js' import { scan_credential_action_attempt } from './scan-credential.js' import { set_fan_mode_action_attempt } from './set-fan-mode.js' @@ -25,6 +26,7 @@ export const action_attempt = z.union([ ...activate_climate_preset_action_attempt.options, ...simulate_keypad_code_entry_action_attempt.options, ...simulate_manual_lock_via_keypad_action_attempt.options, + ...push_thermostat_programs_action_attempt.options, ...deprecated_action_attempts, ]).describe(` --- diff --git a/src/lib/seam/connect/models/action-attempts/push-thermostat-programs.ts b/src/lib/seam/connect/models/action-attempts/push-thermostat-programs.ts new file mode 100644 index 00000000..f3efe8ee --- /dev/null +++ b/src/lib/seam/connect/models/action-attempts/push-thermostat-programs.ts @@ -0,0 +1,36 @@ +import { z } from 'zod' + +import { + common_failed_action_attempt, + common_pending_action_attempt, + common_succeeded_action_attempt, +} from './common.js' + +const action_type = z.literal('PUSH_THERMOSTAT_PROGRAMS') + +const error = z.object({ + type: z.string(), + message: z.string(), +}) + +const result = z.object({}) + +export const push_thermostat_programs_action_attempt = z.discriminatedUnion( + 'status', + [ + common_pending_action_attempt + .extend({ + action_type, + }) + .describe('Pushing thermostat weekly programs.'), + common_succeeded_action_attempt + .extend({ + action_type, + result, + }) + .describe('Pushing thermostat weekly programs succeeded.'), + common_failed_action_attempt + .extend({ action_type, error }) + .describe('Pushing thermostat weekly programs failed.'), + ], +) diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 97f7a662..f76115af 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -6353,6 +6353,104 @@ export default { ], type: 'object', }, + { + description: 'Pushing thermostat weekly programs.', + properties: { + action_attempt_id: { + description: 'ID of the action attempt.', + format: 'uuid', + type: 'string', + }, + action_type: { + enum: ['PUSH_THERMOSTAT_PROGRAMS'], + type: 'string', + }, + error: { + description: + 'Errors associated with the action attempt. Null for pending action attempts.', + nullable: true, + }, + result: { + description: + 'Result of the action attempt. Null for pending action attempts.', + nullable: true, + }, + status: { enum: ['pending'], type: 'string' }, + }, + required: [ + 'action_attempt_id', + 'status', + 'result', + 'error', + 'action_type', + ], + type: 'object', + }, + { + description: 'Pushing thermostat weekly programs succeeded.', + properties: { + action_attempt_id: { + description: 'ID of the action attempt.', + format: 'uuid', + type: 'string', + }, + action_type: { + enum: ['PUSH_THERMOSTAT_PROGRAMS'], + type: 'string', + }, + error: { + description: + 'Errors associated with the action attempt. Null for successful action attempts.', + nullable: true, + }, + result: { properties: {}, type: 'object' }, + status: { enum: ['success'], type: 'string' }, + }, + required: [ + 'action_attempt_id', + 'status', + 'error', + 'action_type', + 'result', + ], + type: 'object', + }, + { + description: 'Pushing thermostat weekly programs failed.', + properties: { + action_attempt_id: { + description: 'ID of the action attempt.', + format: 'uuid', + type: 'string', + }, + action_type: { + enum: ['PUSH_THERMOSTAT_PROGRAMS'], + type: 'string', + }, + error: { + properties: { + message: { type: 'string' }, + type: { type: 'string' }, + }, + required: ['type', 'message'], + type: 'object', + }, + result: { + description: + 'Result of the action attempt. Null for failed action attempts.', + nullable: true, + }, + status: { enum: ['error'], type: 'string' }, + }, + required: [ + 'action_attempt_id', + 'status', + 'result', + 'action_type', + 'error', + ], + type: 'object', + }, { properties: { action_attempt_id: { @@ -29864,86 +29962,12 @@ export default { 'application/json': { schema: { properties: { - ok: { type: 'boolean' }, - thermostat_weekly_program: { - properties: { - created_at: { - description: - 'Date and time at which the thermostat weekly program was created.', - format: 'date-time', - type: 'string', - }, - device_id: { - description: - 'ID of the thermostat device the weekly program is for.', - format: 'uuid', - type: 'string', - }, - friday_program_id: { - description: - 'ID of the thermostat daily program to run on Fridays.', - format: 'uuid', - nullable: true, - type: 'string', - }, - monday_program_id: { - description: - 'ID of the thermostat daily program to run on Mondays.', - format: 'uuid', - nullable: true, - type: 'string', - }, - saturday_program_id: { - description: - 'ID of the thermostat daily program to run on Saturdays.', - format: 'uuid', - nullable: true, - type: 'string', - }, - sunday_program_id: { - description: - 'ID of the thermostat daily program to run on Sundays.', - format: 'uuid', - nullable: true, - type: 'string', - }, - thursday_program_id: { - description: - 'ID of the thermostat daily program to run on Thursdays.', - format: 'uuid', - nullable: true, - type: 'string', - }, - tuesday_program_id: { - description: - 'ID of the thermostat daily program to run on Tuesdays.', - format: 'uuid', - nullable: true, - type: 'string', - }, - wednesday_program_id: { - description: - 'ID of the thermostat daily program to run on Wednesdays.', - format: 'uuid', - nullable: true, - type: 'string', - }, - }, - required: [ - 'device_id', - 'monday_program_id', - 'tuesday_program_id', - 'wednesday_program_id', - 'thursday_program_id', - 'friday_program_id', - 'saturday_program_id', - 'sunday_program_id', - 'created_at', - ], - type: 'object', + action_attempt: { + $ref: '#/components/schemas/action_attempt', }, + ok: { type: 'boolean' }, }, - required: ['thermostat_weekly_program', 'ok'], + required: ['action_attempt', 'ok'], type: 'object', }, }, @@ -29961,10 +29985,11 @@ export default { ], summary: '/thermostats/activate_weekly_program', tags: ['/thermostats'], + 'x-action-attempt-type': 'PUSH_THERMOSTAT_PROGRAMS', 'x-fern-sdk-group-name': ['thermostats'], 'x-fern-sdk-method-name': 'activate_weekly_program', - 'x-fern-sdk-return-value': 'thermostat_weekly_program', - 'x-response-key': 'thermostat_weekly_program', + 'x-fern-sdk-return-value': 'action_attempt', + 'x-response-key': 'action_attempt', 'x-title': 'Activate a Thermostat Weekly Program', 'x-undocumented': 'Unreleased.', }, @@ -29996,8 +30021,13 @@ export default { content: { 'application/json': { schema: { - properties: { ok: { type: 'boolean' } }, - required: ['ok'], + properties: { + action_attempt: { + $ref: '#/components/schemas/action_attempt', + }, + ok: { type: 'boolean' }, + }, + required: ['action_attempt', 'ok'], type: 'object', }, }, @@ -30015,9 +30045,11 @@ export default { ], summary: '/thermostats/clear_weekly_program', tags: ['/thermostats'], + 'x-action-attempt-type': 'PUSH_THERMOSTAT_PROGRAMS', 'x-fern-sdk-group-name': ['thermostats'], 'x-fern-sdk-method-name': 'clear_weekly_program', - 'x-response-key': null, + 'x-fern-sdk-return-value': 'action_attempt', + 'x-response-key': 'action_attempt', 'x-title': 'Clear a Thermostat Weekly Program', 'x-undocumented': 'Unreleased.', }, @@ -30447,8 +30479,13 @@ export default { content: { 'application/json': { schema: { - properties: { ok: { type: 'boolean' } }, - required: ['ok'], + properties: { + action_attempt: { + $ref: '#/components/schemas/action_attempt', + }, + ok: { type: 'boolean' }, + }, + required: ['action_attempt', 'ok'], type: 'object', }, }, @@ -30466,8 +30503,9 @@ export default { ], summary: '/thermostats/daily_programs/update', tags: ['/thermostats'], + 'x-action-attempt-type': 'PUSH_THERMOSTAT_PROGRAMS', 'x-fern-ignore': true, - 'x-response-key': null, + 'x-response-key': 'action_attempt', 'x-title': 'Update a Thermostat Daily Program', 'x-undocumented': 'Unreleased.', }, @@ -30522,8 +30560,13 @@ export default { content: { 'application/json': { schema: { - properties: { ok: { type: 'boolean' } }, - required: ['ok'], + properties: { + action_attempt: { + $ref: '#/components/schemas/action_attempt', + }, + ok: { type: 'boolean' }, + }, + required: ['action_attempt', 'ok'], type: 'object', }, }, @@ -30541,9 +30584,11 @@ export default { ], summary: '/thermostats/daily_programs/update', tags: ['/thermostats'], + 'x-action-attempt-type': 'PUSH_THERMOSTAT_PROGRAMS', 'x-fern-sdk-group-name': ['thermostats', 'daily_programs'], 'x-fern-sdk-method-name': 'update', - 'x-response-key': null, + 'x-fern-sdk-return-value': 'action_attempt', + 'x-response-key': 'action_attempt', 'x-title': 'Update a Thermostat Daily Program', 'x-undocumented': 'Unreleased.', }, diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 31c08304..21032b51 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -1072,6 +1072,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -3380,6 +3411,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -7258,6 +7320,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -9570,6 +9663,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -13093,6 +13217,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -14365,6 +14520,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -15732,6 +15918,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -19380,6 +19597,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -20648,6 +20896,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -33152,6 +33431,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -34422,6 +34732,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -35691,6 +36032,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -36961,6 +37333,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -40298,6 +40701,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -41579,6 +42013,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -42899,6 +43364,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -44167,8 +44663,4254 @@ export interface Routes { result: null /** Errors associated with the action attempt. Null for pending action attempts. */ error: null - /** Type of action that the action attempt tracks. */ - action_type: 'ENCODE_CREDENTIAL' + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + /** If an encoding attempt was successful, includes the `acs_credential` data that was encoded onto the card. */ + result: + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + | 'latch_access' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + | 'latch_access' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'RESET_SANDBOX_WORKSPACE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SET_FAN_MODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SET_FAN_MODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SET_FAN_MODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SET_HVAC_MODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SET_HVAC_MODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SET_HVAC_MODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SYNC_ACCESS_CODES' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SYNC_ACCESS_CODES' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SYNC_ACCESS_CODES' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'CREATE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'CREATE_ACCESS_CODE' + result: { + access_code?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'CREATE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'DELETE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'DELETE_ACCESS_CODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'DELETE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UPDATE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UPDATE_ACCESS_CODE' + result: { + access_code?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UPDATE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'CREATE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'CREATE_NOISE_THRESHOLD' + result: { + noise_threshold?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'CREATE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'DELETE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'DELETE_NOISE_THRESHOLD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'DELETE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UPDATE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UPDATE_NOISE_THRESHOLD' + result: { + noise_threshold?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UPDATE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + } + } + '/thermostats/activate_weekly_program': { + route: '/thermostats/activate_weekly_program' + method: 'POST' + queryParams: {} + jsonBody: { + /** ID of the thermostat device that the weekly program is for. */ + device_id: string + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id?: string | undefined + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id?: string | undefined + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id?: string | undefined + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id?: string | undefined + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id?: string | undefined + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id?: string | undefined + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id?: string | undefined + } + commonParams: {} + formData: {} + jsonResponse: { + /** */ + action_attempt: + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'LOCK_DOOR' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'LOCK_DOOR' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'LOCK_DOOR' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UNLOCK_DOOR' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UNLOCK_DOOR' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UNLOCK_DOOR' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SCAN_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SCAN_CREDENTIAL' + result: { + /** Snapshot of credential data read from physical encoder. */ + acs_credential_on_encoder: { + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string | null + is_issued: boolean | null + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) becomes usable. */ + starts_at: string | null + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) will stop being usable. */ + ends_at: string | null + /** A number or string that physically identifies the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number: string | null + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + /** Card ID for the Visionline card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_id: string + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is cancelled. */ + cancelled: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is discarded. */ + discarded: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is expired. */ + expired: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is overwritten. */ + overwritten: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is overridden. */ + overridden?: boolean | undefined + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is pending auto-update. */ + pending_auto_update: boolean + /** Format of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_format: 'TLCode' | 'rfid48' + /** Holden of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_holder?: string | undefined + /** Number of issued cards associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + number_of_issued_cards: number + /** IDs of the guest [entrances](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + guest_acs_entrance_ids?: string[] | undefined + /** IDs of the common [entrances](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + common_acs_entrance_ids?: string[] | undefined + } + | undefined + } | null + /** Matching acs_credential currently encoded on this card. */ + acs_credential_on_seam: + | ( + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: + | string[] + | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: + | string[] + | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + ) + | null + warnings: Array<{ + warning_code: + | 'acs_credential_on_encoder_out_of_sync' + | 'acs_credential_on_seam_not_found' + warning_message: string + }> + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SCAN_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + /** If an encoding attempt was successful, includes the `acs_credential` data that was encoded onto the card. */ + result: + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'RESET_SANDBOX_WORKSPACE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SET_FAN_MODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SET_FAN_MODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SET_FAN_MODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SET_HVAC_MODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SET_HVAC_MODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SET_HVAC_MODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SYNC_ACCESS_CODES' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SYNC_ACCESS_CODES' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SYNC_ACCESS_CODES' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'CREATE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'CREATE_ACCESS_CODE' + result: { + access_code?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'CREATE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'DELETE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'DELETE_ACCESS_CODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'DELETE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UPDATE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UPDATE_ACCESS_CODE' + result: { + access_code?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UPDATE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'CREATE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'CREATE_NOISE_THRESHOLD' + result: { + noise_threshold?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'CREATE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'DELETE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'DELETE_NOISE_THRESHOLD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'DELETE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UPDATE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UPDATE_NOISE_THRESHOLD' + result: { + noise_threshold?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UPDATE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + } + } + '/thermostats/clear_weekly_program': { + route: '/thermostats/clear_weekly_program' + method: 'POST' + queryParams: {} + jsonBody: {} + commonParams: { + /** ID of the thermostat device to clear the weekly program for. */ + device_id: string + } + formData: {} + jsonResponse: { + /** */ + action_attempt: + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'LOCK_DOOR' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'LOCK_DOOR' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'LOCK_DOOR' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UNLOCK_DOOR' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UNLOCK_DOOR' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UNLOCK_DOOR' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SCAN_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SCAN_CREDENTIAL' + result: { + /** Snapshot of credential data read from physical encoder. */ + acs_credential_on_encoder: { + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string | null + is_issued: boolean | null + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) becomes usable. */ + starts_at: string | null + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) will stop being usable. */ + ends_at: string | null + /** A number or string that physically identifies the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number: string | null + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + /** Card ID for the Visionline card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_id: string + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is cancelled. */ + cancelled: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is discarded. */ + discarded: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is expired. */ + expired: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is overwritten. */ + overwritten: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is overridden. */ + overridden?: boolean | undefined + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is pending auto-update. */ + pending_auto_update: boolean + /** Format of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_format: 'TLCode' | 'rfid48' + /** Holden of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_holder?: string | undefined + /** Number of issued cards associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + number_of_issued_cards: number + /** IDs of the guest [entrances](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + guest_acs_entrance_ids?: string[] | undefined + /** IDs of the common [entrances](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + common_acs_entrance_ids?: string[] | undefined + } + | undefined + } | null + /** Matching acs_credential currently encoded on this card. */ + acs_credential_on_seam: + | ( + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: + | string[] + | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: + | string[] + | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + ) + | null + warnings: Array<{ + warning_code: + | 'acs_credential_on_encoder_out_of_sync' + | 'acs_credential_on_seam_not_found' + warning_message: string + }> + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SCAN_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + /** If an encoding attempt was successful, includes the `acs_credential` data that was encoded onto the card. */ + result: + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'RESET_SANDBOX_WORKSPACE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SET_FAN_MODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SET_FAN_MODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SET_FAN_MODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SET_HVAC_MODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SET_HVAC_MODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SET_HVAC_MODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'ACTIVATE_CLIMATE_PRESET' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SYNC_ACCESS_CODES' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SYNC_ACCESS_CODES' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SYNC_ACCESS_CODES' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'CREATE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'CREATE_ACCESS_CODE' + result: { + access_code?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'CREATE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'DELETE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'DELETE_ACCESS_CODE' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'DELETE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UPDATE_ACCESS_CODE' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UPDATE_ACCESS_CODE' + result: { + access_code?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UPDATE_ACCESS_CODE' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'CREATE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'CREATE_NOISE_THRESHOLD' + result: { + noise_threshold?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'CREATE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'DELETE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'DELETE_NOISE_THRESHOLD' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'DELETE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UPDATE_NOISE_THRESHOLD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UPDATE_NOISE_THRESHOLD' + result: { + noise_threshold?: any + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UPDATE_NOISE_THRESHOLD' + error: { + type: string + message: string + } + } + } + } + '/thermostats/cool': { + route: '/thermostats/cool' + method: 'POST' + queryParams: {} + jsonBody: { + /** ID of the desired thermostat device. */ + device_id: string + /** Desired [cooling set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C. You must set one of the `cooling_set_point` parameters. */ + cooling_set_point_celsius?: number | undefined + /** Desired [cooling set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F. You must set one of the `cooling_set_point` parameters. */ + cooling_set_point_fahrenheit?: number | undefined + /** */ + sync?: boolean + } + commonParams: {} + formData: {} + jsonResponse: { + /** */ + action_attempt: + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'LOCK_DOOR' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'LOCK_DOOR' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'LOCK_DOOR' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'UNLOCK_DOOR' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'UNLOCK_DOOR' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'UNLOCK_DOOR' + error: { + type: string + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'SCAN_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'SCAN_CREDENTIAL' + result: { + /** Snapshot of credential data read from physical encoder. */ + acs_credential_on_encoder: { + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string | null + is_issued: boolean | null + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) becomes usable. */ + starts_at: string | null + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) will stop being usable. */ + ends_at: string | null + /** A number or string that physically identifies the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number: string | null + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + /** Card ID for the Visionline card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_id: string + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is cancelled. */ + cancelled: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is discarded. */ + discarded: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is expired. */ + expired: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is overwritten. */ + overwritten: boolean + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is overridden. */ + overridden?: boolean | undefined + /** Indicates whether the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is pending auto-update. */ + pending_auto_update: boolean + /** Format of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_format: 'TLCode' | 'rfid48' + /** Holden of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_holder?: string | undefined + /** Number of issued cards associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + number_of_issued_cards: number + /** IDs of the guest [entrances](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + guest_acs_entrance_ids?: string[] | undefined + /** IDs of the common [entrances](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + common_acs_entrance_ids?: string[] | undefined + } + | undefined + } | null + /** Matching acs_credential currently encoded on this card. */ + acs_credential_on_seam: + | ( + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + | 'latch_access' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: + | string[] + | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + | 'latch_access' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: + | string[] + | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + ) + | null + warnings: Array<{ + warning_code: + | 'acs_credential_on_encoder_out_of_sync' + | 'acs_credential_on_seam_not_found' + warning_message: string + }> + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'SCAN_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + /** If an encoding attempt was successful, includes the `access_method` data that was encoded onto the card. */ + result: { + /** Unique identifier for the Seam workspace associated with the access grant. */ + workspace_id: string + /** ID of the access method. */ + access_method_id: string + /** Display name of the access method. */ + display_name: string + /** Access method mode. Supported values: `code`, `card`, `mobile_key`. */ + mode: 'code' | 'card' | 'mobile_key' + /** Date and time at which the access method was created. */ + created_at: string + /** Date and time at which the access method was issued. */ + issued_at?: string | undefined + /** URL of instant key for mobile key access methods. */ + instant_key_url?: string | undefined + /** Whether card encoding is required for plastic card access methods. */ + is_card_encoding_required?: boolean | undefined + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_ACCESS_METHOD' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + /** If an encoding attempt was successful, includes the `acs_credential` data that was encoded onto the card. */ + result: + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + | 'latch_access' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + } + | { + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + | 'latch_access' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: false + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + /** Type of action that the action attempt tracks. */ + action_type: 'ENCODE_CREDENTIAL' + error: + | { + /** Type of the error associated with the action attempt. */ + type: 'uncategorized_error' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + /** Type of the error associated with the action attempt. */ + type: 'action_attempt_expired' + /** Message for the error associated with the action attempt. */ + message: string + } + | { + type: 'no_credential_on_encoder' + message: string + } + | { + type: 'incompatible_card_format' + message: string + } + | { + type: 'credential_cannot_be_reissued' + message: string + } + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'RESET_SANDBOX_WORKSPACE' } | { /** ID of the action attempt. */ @@ -44176,286 +48918,8 @@ export interface Routes { status: 'success' /** Errors associated with the action attempt. Null for successful action attempts. */ error: null - /** Type of action that the action attempt tracks. */ - action_type: 'ENCODE_CREDENTIAL' - /** If an encoding attempt was successful, includes the `acs_credential` data that was encoded onto the card. */ - result: - | { - /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - acs_credential_id: string - /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ - acs_user_id?: string | undefined - acs_credential_pool_id?: string | undefined - /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - acs_system_id: string - /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - parent_acs_credential_id?: string | undefined - /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ - display_name: string - /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - code?: (string | undefined) | null - /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ - is_one_time_use?: boolean | undefined - /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - card_number?: (string | undefined) | null - /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ - is_issued?: boolean | undefined - /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ - issued_at?: (string | undefined) | null - /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ - access_method: 'code' | 'card' | 'mobile_key' - /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ - external_type?: - | ( - | 'pti_card' - | 'brivo_credential' - | 'hid_credential' - | 'visionline_card' - | 'salto_ks_credential' - | 'assa_abloy_vostio_key' - | 'salto_space_key' - | 'latch_access' - ) - | undefined - /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ - external_type_display_name?: string | undefined - /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ - created_at: string - /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - workspace_id: string - /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at?: string | undefined - /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ - ends_at?: string | undefined - /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - errors: Array<{ - error_code: string - message: string - }> - /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - warnings: Array< - | { - /** Date and time at which Seam created the warning. */ - created_at: string - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'waiting_to_be_issued' - } - | { - /** Date and time at which Seam created the warning. */ - created_at: string - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schedule_externally_modified' - } - | { - /** Date and time at which Seam created the warning. */ - created_at: string - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schedule_modified' - } - | { - /** Date and time at which Seam created the warning. */ - created_at: string - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'being_deleted' - } - | { - /** Date and time at which Seam created the warning. */ - created_at: string - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'unknown_issue_with_acs_credential' - } - | { - /** Date and time at which Seam created the warning. */ - created_at: string - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'needs_to_be_reissued' - } - > - /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ - is_multi_phone_sync_credential?: boolean | undefined - /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ - is_latest_desired_state_synced_with_provider?: - | (boolean | null) - | undefined - /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ - latest_desired_state_synced_with_provider_at?: - | (string | null) - | undefined - /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - visionline_metadata?: - | { - card_function_type: 'guest' | 'staff' - joiner_acs_credential_ids?: string[] | undefined - guest_acs_entrance_ids?: string[] | undefined - common_acs_entrance_ids?: string[] | undefined - is_valid?: boolean | undefined - auto_join?: boolean | undefined - card_id?: string | undefined - credential_id?: string | undefined - } - | undefined - /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - assa_abloy_vostio_metadata?: - | { - override_guest_acs_entrance_ids?: string[] | undefined - key_id?: string | undefined - key_issuing_request_id?: string | undefined - door_names?: string[] | undefined - endpoint_id?: string | undefined - } - | undefined - is_managed: true - } - | { - /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - acs_credential_id: string - /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ - acs_user_id?: string | undefined - acs_credential_pool_id?: string | undefined - /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - acs_system_id: string - /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - parent_acs_credential_id?: string | undefined - /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ - display_name: string - /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - code?: (string | undefined) | null - /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ - is_one_time_use?: boolean | undefined - /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - card_number?: (string | undefined) | null - /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ - is_issued?: boolean | undefined - /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ - issued_at?: (string | undefined) | null - /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ - access_method: 'code' | 'card' | 'mobile_key' - /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ - external_type?: - | ( - | 'pti_card' - | 'brivo_credential' - | 'hid_credential' - | 'visionline_card' - | 'salto_ks_credential' - | 'assa_abloy_vostio_key' - | 'salto_space_key' - | 'latch_access' - ) - | undefined - /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ - external_type_display_name?: string | undefined - /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ - created_at: string - /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - workspace_id: string - /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at?: string | undefined - /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ - ends_at?: string | undefined - /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - errors: Array<{ - error_code: string - message: string - }> - /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - warnings: Array< - | { - /** Date and time at which Seam created the warning. */ - created_at: string - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'waiting_to_be_issued' - } - | { - /** Date and time at which Seam created the warning. */ - created_at: string - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schedule_externally_modified' - } - | { - /** Date and time at which Seam created the warning. */ - created_at: string - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schedule_modified' - } - | { - /** Date and time at which Seam created the warning. */ - created_at: string - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'being_deleted' - } - | { - /** Date and time at which Seam created the warning. */ - created_at: string - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'unknown_issue_with_acs_credential' - } - | { - /** Date and time at which Seam created the warning. */ - created_at: string - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'needs_to_be_reissued' - } - > - /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ - is_multi_phone_sync_credential?: boolean | undefined - /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ - is_latest_desired_state_synced_with_provider?: - | (boolean | null) - | undefined - /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ - latest_desired_state_synced_with_provider_at?: - | (string | null) - | undefined - /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - visionline_metadata?: - | { - card_function_type: 'guest' | 'staff' - joiner_acs_credential_ids?: string[] | undefined - guest_acs_entrance_ids?: string[] | undefined - common_acs_entrance_ids?: string[] | undefined - is_valid?: boolean | undefined - auto_join?: boolean | undefined - card_id?: string | undefined - credential_id?: string | undefined - } - | undefined - /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ - assa_abloy_vostio_metadata?: - | { - override_guest_acs_entrance_ids?: string[] | undefined - key_id?: string | undefined - key_issuing_request_id?: string | undefined - door_names?: string[] | undefined - endpoint_id?: string | undefined - } - | undefined - is_managed: false - } + action_type: 'RESET_SANDBOX_WORKSPACE' + result: {} } | { /** ID of the action attempt. */ @@ -44463,33 +48927,11 @@ export interface Routes { status: 'error' /** Result of the action attempt. Null for failed action attempts. */ result: null - /** Type of action that the action attempt tracks. */ - action_type: 'ENCODE_CREDENTIAL' - error: - | { - /** Type of the error associated with the action attempt. */ - type: 'uncategorized_error' - /** Message for the error associated with the action attempt. */ - message: string - } - | { - /** Type of the error associated with the action attempt. */ - type: 'action_attempt_expired' - /** Message for the error associated with the action attempt. */ - message: string - } - | { - type: 'no_credential_on_encoder' - message: string - } - | { - type: 'incompatible_card_format' - message: string - } - | { - type: 'credential_cannot_be_reissued' - message: string - } + action_type: 'RESET_SANDBOX_WORKSPACE' + error: { + type: string + message: string + } } | { /** ID of the action attempt. */ @@ -44499,7 +48941,7 @@ export interface Routes { result: null /** Errors associated with the action attempt. Null for pending action attempts. */ error: null - action_type: 'RESET_SANDBOX_WORKSPACE' + action_type: 'SET_FAN_MODE' } | { /** ID of the action attempt. */ @@ -44507,7 +48949,7 @@ export interface Routes { status: 'success' /** Errors associated with the action attempt. Null for successful action attempts. */ error: null - action_type: 'RESET_SANDBOX_WORKSPACE' + action_type: 'SET_FAN_MODE' result: {} } | { @@ -44516,7 +48958,7 @@ export interface Routes { status: 'error' /** Result of the action attempt. Null for failed action attempts. */ result: null - action_type: 'RESET_SANDBOX_WORKSPACE' + action_type: 'SET_FAN_MODE' error: { type: string message: string @@ -44530,7 +48972,7 @@ export interface Routes { result: null /** Errors associated with the action attempt. Null for pending action attempts. */ error: null - action_type: 'SET_FAN_MODE' + action_type: 'SET_HVAC_MODE' } | { /** ID of the action attempt. */ @@ -44538,7 +48980,7 @@ export interface Routes { status: 'success' /** Errors associated with the action attempt. Null for successful action attempts. */ error: null - action_type: 'SET_FAN_MODE' + action_type: 'SET_HVAC_MODE' result: {} } | { @@ -44547,7 +48989,7 @@ export interface Routes { status: 'error' /** Result of the action attempt. Null for failed action attempts. */ result: null - action_type: 'SET_FAN_MODE' + action_type: 'SET_HVAC_MODE' error: { type: string message: string @@ -44561,7 +49003,7 @@ export interface Routes { result: null /** Errors associated with the action attempt. Null for pending action attempts. */ error: null - action_type: 'SET_HVAC_MODE' + action_type: 'ACTIVATE_CLIMATE_PRESET' } | { /** ID of the action attempt. */ @@ -44569,7 +49011,7 @@ export interface Routes { status: 'success' /** Errors associated with the action attempt. Null for successful action attempts. */ error: null - action_type: 'SET_HVAC_MODE' + action_type: 'ACTIVATE_CLIMATE_PRESET' result: {} } | { @@ -44578,7 +49020,7 @@ export interface Routes { status: 'error' /** Result of the action attempt. Null for failed action attempts. */ result: null - action_type: 'SET_HVAC_MODE' + action_type: 'ACTIVATE_CLIMATE_PRESET' error: { type: string message: string @@ -44592,7 +49034,7 @@ export interface Routes { result: null /** Errors associated with the action attempt. Null for pending action attempts. */ error: null - action_type: 'ACTIVATE_CLIMATE_PRESET' + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' } | { /** ID of the action attempt. */ @@ -44600,7 +49042,7 @@ export interface Routes { status: 'success' /** Errors associated with the action attempt. Null for successful action attempts. */ error: null - action_type: 'ACTIVATE_CLIMATE_PRESET' + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' result: {} } | { @@ -44609,7 +49051,7 @@ export interface Routes { status: 'error' /** Result of the action attempt. Null for failed action attempts. */ result: null - action_type: 'ACTIVATE_CLIMATE_PRESET' + action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' error: { type: string message: string @@ -44623,7 +49065,7 @@ export interface Routes { result: null /** Errors associated with the action attempt. Null for pending action attempts. */ error: null - action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' } | { /** ID of the action attempt. */ @@ -44631,7 +49073,7 @@ export interface Routes { status: 'success' /** Errors associated with the action attempt. Null for successful action attempts. */ error: null - action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' result: {} } | { @@ -44640,7 +49082,7 @@ export interface Routes { status: 'error' /** Result of the action attempt. Null for failed action attempts. */ result: null - action_type: 'SIMULATE_KEYPAD_CODE_ENTRY' + action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' error: { type: string message: string @@ -44654,7 +49096,7 @@ export interface Routes { result: null /** Errors associated with the action attempt. Null for pending action attempts. */ error: null - action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + action_type: 'PUSH_THERMOSTAT_PROGRAMS' } | { /** ID of the action attempt. */ @@ -44662,7 +49104,7 @@ export interface Routes { status: 'success' /** Errors associated with the action attempt. Null for successful action attempts. */ error: null - action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + action_type: 'PUSH_THERMOSTAT_PROGRAMS' result: {} } | { @@ -44671,7 +49113,7 @@ export interface Routes { status: 'error' /** Result of the action attempt. Null for failed action attempts. */ result: null - action_type: 'SIMULATE_MANUAL_LOCK_VIA_KEYPAD' + action_type: 'PUSH_THERMOSTAT_PROGRAMS' error: { type: string message: string @@ -44904,78 +49346,104 @@ export interface Routes { } } } - '/thermostats/activate_weekly_program': { - route: '/thermostats/activate_weekly_program' + '/thermostats/create_climate_preset': { + route: '/thermostats/create_climate_preset' method: 'POST' queryParams: {} jsonBody: { - /** ID of the thermostat device that the weekly program is for. */ + /** ID of the desired thermostat device. */ device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id?: string | undefined - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id?: string | undefined - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id?: string | undefined - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id?: string | undefined - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id?: string | undefined - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id?: string | undefined - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id?: string | undefined + /** Indicates whether a person at the thermostat or using the API can change the thermostat's settings. + * @deprecated Use 'thermostat_schedule.is_override_allowed' */ + manual_override_allowed?: boolean + /** Unique key to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ + climate_preset_key: string + /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ + name?: (string | null) | undefined + /** Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. */ + fan_mode_setting?: ('auto' | 'on' | 'circulate') | undefined + /** Desired [HVAC mode](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. */ + hvac_mode_setting?: ('off' | 'heat' | 'cool' | 'heat_cool') | undefined + /** Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points). */ + cooling_set_point_celsius?: number | undefined + /** Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points). */ + heating_set_point_celsius?: number | undefined + /** Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points). */ + cooling_set_point_fahrenheit?: number | undefined + /** Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points). */ + heating_set_point_fahrenheit?: number | undefined + } + commonParams: {} + formData: {} + jsonResponse: {} + } + '/thermostats/daily_programs/create': { + route: '/thermostats/daily_programs/create' + method: 'POST' + queryParams: {} + jsonBody: { + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> } commonParams: {} formData: {} jsonResponse: { - thermostat_weekly_program: { - /** ID of the thermostat device the weekly program is for. */ + thermostat_daily_program: { + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** Date and time at which the thermostat daily program was created. */ created_at: string } } } - '/thermostats/clear_weekly_program': { - route: '/thermostats/clear_weekly_program' - method: 'POST' + '/thermostats/daily_programs/delete': { + route: '/thermostats/daily_programs/delete' + method: 'DELETE' | 'POST' queryParams: {} jsonBody: {} commonParams: { - /** ID of the thermostat device to clear the weekly program for. */ - device_id: string + /** ID of the desired thermostat schedule. */ + thermostat_daily_program_id: string } formData: {} jsonResponse: {} } - '/thermostats/cool': { - route: '/thermostats/cool' - method: 'POST' + '/thermostats/daily_programs/update': { + route: '/thermostats/daily_programs/update' + method: 'PATCH' | 'POST' queryParams: {} jsonBody: { - /** ID of the desired thermostat device. */ - device_id: string - /** Desired [cooling set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C. You must set one of the `cooling_set_point` parameters. */ - cooling_set_point_celsius?: number | undefined - /** Desired [cooling set point](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F. You must set one of the `cooling_set_point` parameters. */ - cooling_set_point_fahrenheit?: number | undefined - /** */ - sync?: boolean + /** ID of the desired thermostat daily program. */ + thermostat_daily_program_id: string + /** User-friendly name to identify the thermostat daily program. */ + name?: string | undefined + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> } commonParams: {} formData: {} @@ -45140,7 +49608,6 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' - | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -45280,7 +49747,6 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' - | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -45549,7 +50015,6 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' - | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -45687,7 +50152,6 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' - | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -46012,6 +50476,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -46239,109 +50734,6 @@ export interface Routes { } } } - '/thermostats/create_climate_preset': { - route: '/thermostats/create_climate_preset' - method: 'POST' - queryParams: {} - jsonBody: { - /** ID of the desired thermostat device. */ - device_id: string - /** Indicates whether a person at the thermostat or using the API can change the thermostat's settings. - * @deprecated Use 'thermostat_schedule.is_override_allowed' */ - manual_override_allowed?: boolean - /** Unique key to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ - climate_preset_key: string - /** User-friendly name to identify the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets). */ - name?: (string | null) | undefined - /** Desired [fan mode setting](https://docs.seam.co/latest/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. */ - fan_mode_setting?: ('auto' | 'on' | 'circulate') | undefined - /** Desired [HVAC mode](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. */ - hvac_mode_setting?: ('off' | 'heat' | 'cool' | 'heat_cool') | undefined - /** Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points). */ - cooling_set_point_celsius?: number | undefined - /** Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points). */ - heating_set_point_celsius?: number | undefined - /** Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points). */ - cooling_set_point_fahrenheit?: number | undefined - /** Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points). */ - heating_set_point_fahrenheit?: number | undefined - } - commonParams: {} - formData: {} - jsonResponse: {} - } - '/thermostats/daily_programs/create': { - route: '/thermostats/daily_programs/create' - method: 'POST' - queryParams: {} - jsonBody: { - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - } - commonParams: {} - formData: {} - jsonResponse: { - thermostat_daily_program: { - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - } - } - } - '/thermostats/daily_programs/delete': { - route: '/thermostats/daily_programs/delete' - method: 'DELETE' | 'POST' - queryParams: {} - jsonBody: {} - commonParams: { - /** ID of the desired thermostat schedule. */ - thermostat_daily_program_id: string - } - formData: {} - jsonResponse: {} - } - '/thermostats/daily_programs/update': { - route: '/thermostats/daily_programs/update' - method: 'PATCH' | 'POST' - queryParams: {} - jsonBody: { - /** ID of the desired thermostat daily program. */ - thermostat_daily_program_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - } - commonParams: {} - formData: {} - jsonResponse: {} - } '/thermostats/delete_climate_preset': { route: '/thermostats/delete_climate_preset' method: 'POST' | 'DELETE' @@ -48399,6 +52791,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -49679,6 +54102,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -52994,6 +57448,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -54456,6 +58941,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -55759,6 +60275,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string @@ -60446,6 +64993,37 @@ export interface Routes { message: string } } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'pending' + /** Result of the action attempt. Null for pending action attempts. */ + result: null + /** Errors associated with the action attempt. Null for pending action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'success' + /** Errors associated with the action attempt. Null for successful action attempts. */ + error: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + result: {} + } + | { + /** ID of the action attempt. */ + action_attempt_id: string + status: 'error' + /** Result of the action attempt. Null for failed action attempts. */ + result: null + action_type: 'PUSH_THERMOSTAT_PROGRAMS' + error: { + type: string + message: string + } + } | { /** ID of the action attempt. */ action_attempt_id: string From a88bdccd5a0d9c66ffa242aff807afc013a6aa3a Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 8 May 2025 17:29:42 +0000 Subject: [PATCH 26/52] 1.390.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6f7d367a..9034edd4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.389.0", + "version": "1.390.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.389.0", + "version": "1.390.0", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.40.0", diff --git a/package.json b/package.json index f6d1d7dd..296b5f73 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.389.0", + "version": "1.390.0", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From 418e6cb8fa452965e3ec3f15754b59e239db43fd Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 8 May 2025 11:20:29 -0700 Subject: [PATCH 27/52] feat: Add schlage_detected_duplicate_code_name warning (#1850) Update via seamapi/seam-connect@a09f037fdc3a4401b03355ca703a4b1ec18a7083 Co-authored-by: Evan Sosenko --- .../access-codes/managed-access-code.ts | 12 ++++ src/lib/seam/connect/openapi.ts | 48 +++++++++++++ src/lib/seam/connect/route-types.ts | 72 +++++++++++++++++++ 3 files changed, 132 insertions(+) diff --git a/src/lib/seam/connect/models/access-codes/managed-access-code.ts b/src/lib/seam/connect/models/access-codes/managed-access-code.ts index 8c61cbfb..a926107f 100644 --- a/src/lib/seam/connect/models/access-codes/managed-access-code.ts +++ b/src/lib/seam/connect/models/access-codes/managed-access-code.ts @@ -372,6 +372,14 @@ const schlage_detected_duplicate = common_access_code_warning }) .describe('Duplicate access code detected.') +const schlage_detected_duplicate_code_name = common_access_code_warning + .extend({ + warning_code: z + .literal('schlage_detected_duplicate_code_name') + .describe(warning_code_description), + }) + .describe('Duplicate access code name detected.') + const schlage_creation_outage = common_access_code_warning .extend({ warning_code: z @@ -434,6 +442,7 @@ const access_code_warning = z .discriminatedUnion('warning_code', [ smartthings_failed_to_set_access_code_warning, schlage_detected_duplicate, + schlage_detected_duplicate_code_name, schlage_creation_outage, code_modified_external_to_seam_warning, delay_in_setting_on_device, @@ -455,6 +464,9 @@ const access_code_warning_map = z.object({ smartthings_failed_to_set_access_code: smartthings_failed_to_set_access_code_warning.optional().nullable(), schlage_detected_duplicate: schlage_detected_duplicate.optional().nullable(), + schlage_duplicate_code_name: schlage_detected_duplicate_code_name + .optional() + .nullable(), schlage_creation_outage: schlage_creation_outage.optional().nullable(), code_modified_external_to_seam_warning: code_modified_external_to_seam_warning .optional() diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index f76115af..d6ed7429 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -1236,6 +1236,30 @@ export default { required: ['message', 'warning_code'], type: 'object', }, + { + description: 'Duplicate access code name detected.', + properties: { + created_at: { + description: + 'Date and time at which Seam created the warning.', + format: 'date-time', + type: 'string', + }, + message: { + description: + 'Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.', + type: 'string', + }, + warning_code: { + description: + 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', + enum: ['schlage_detected_duplicate_code_name'], + type: 'string', + }, + }, + required: ['message', 'warning_code'], + type: 'object', + }, { description: 'Received an error when attempting to create this code.', @@ -16297,6 +16321,30 @@ export default { required: ['message', 'warning_code'], type: 'object', }, + { + description: 'Duplicate access code name detected.', + properties: { + created_at: { + description: + 'Date and time at which Seam created the warning.', + format: 'date-time', + type: 'string', + }, + message: { + description: + 'Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.', + type: 'string', + }, + warning_code: { + description: + 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', + enum: ['schlage_detected_duplicate_code_name'], + type: 'string', + }, + }, + required: ['message', 'warning_code'], + type: 'object', + }, { description: 'Received an error when attempting to create this code.', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 21032b51..b57d1f3d 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -1726,6 +1726,14 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } + | { + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Date and time at which Seam created the warning. */ + created_at?: string | undefined + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schlage_detected_duplicate_code_name' + } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -2260,6 +2268,14 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } + | { + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Date and time at which Seam created the warning. */ + created_at?: string | undefined + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schlage_detected_duplicate_code_name' + } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -4098,6 +4114,14 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } + | { + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Date and time at which Seam created the warning. */ + created_at?: string | undefined + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schlage_detected_duplicate_code_name' + } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -4612,6 +4636,14 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } + | { + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Date and time at which Seam created the warning. */ + created_at?: string | undefined + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schlage_detected_duplicate_code_name' + } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -5134,6 +5166,14 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } + | { + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Date and time at which Seam created the warning. */ + created_at?: string | undefined + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schlage_detected_duplicate_code_name' + } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -5634,6 +5674,14 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } + | { + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Date and time at which Seam created the warning. */ + created_at?: string | undefined + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schlage_detected_duplicate_code_name' + } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -6163,6 +6211,14 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } + | { + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Date and time at which Seam created the warning. */ + created_at?: string | undefined + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schlage_detected_duplicate_code_name' + } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -7985,6 +8041,14 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } + | { + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Date and time at which Seam created the warning. */ + created_at?: string | undefined + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schlage_detected_duplicate_code_name' + } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -8475,6 +8539,14 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } + | { + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Date and time at which Seam created the warning. */ + created_at?: string | undefined + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schlage_detected_duplicate_code_name' + } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string From f00ea31e2df590f8a82f255a01e42daaf500403d Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 8 May 2025 18:21:17 +0000 Subject: [PATCH 28/52] 1.391.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9034edd4..3a9e3c78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.390.0", + "version": "1.391.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.390.0", + "version": "1.391.0", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.40.0", diff --git a/package.json b/package.json index 296b5f73..a8399f43 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.390.0", + "version": "1.391.0", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From 3be508afd5d484d6febc2ec76191906ff6ad8480 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 8 May 2025 12:44:42 -0700 Subject: [PATCH 29/52] fix: Remove schlage_detected_duplicate_code_name (#1858) Update via seamapi/seam-connect@fbcb78979ba14183a35a0007619c0581a4dacb97 --- .../access-codes/managed-access-code.ts | 12 --- src/lib/seam/connect/openapi.ts | 48 ----------- src/lib/seam/connect/route-types.ts | 84 +++---------------- 3 files changed, 12 insertions(+), 132 deletions(-) diff --git a/src/lib/seam/connect/models/access-codes/managed-access-code.ts b/src/lib/seam/connect/models/access-codes/managed-access-code.ts index a926107f..8c61cbfb 100644 --- a/src/lib/seam/connect/models/access-codes/managed-access-code.ts +++ b/src/lib/seam/connect/models/access-codes/managed-access-code.ts @@ -372,14 +372,6 @@ const schlage_detected_duplicate = common_access_code_warning }) .describe('Duplicate access code detected.') -const schlage_detected_duplicate_code_name = common_access_code_warning - .extend({ - warning_code: z - .literal('schlage_detected_duplicate_code_name') - .describe(warning_code_description), - }) - .describe('Duplicate access code name detected.') - const schlage_creation_outage = common_access_code_warning .extend({ warning_code: z @@ -442,7 +434,6 @@ const access_code_warning = z .discriminatedUnion('warning_code', [ smartthings_failed_to_set_access_code_warning, schlage_detected_duplicate, - schlage_detected_duplicate_code_name, schlage_creation_outage, code_modified_external_to_seam_warning, delay_in_setting_on_device, @@ -464,9 +455,6 @@ const access_code_warning_map = z.object({ smartthings_failed_to_set_access_code: smartthings_failed_to_set_access_code_warning.optional().nullable(), schlage_detected_duplicate: schlage_detected_duplicate.optional().nullable(), - schlage_duplicate_code_name: schlage_detected_duplicate_code_name - .optional() - .nullable(), schlage_creation_outage: schlage_creation_outage.optional().nullable(), code_modified_external_to_seam_warning: code_modified_external_to_seam_warning .optional() diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index d6ed7429..f76115af 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -1236,30 +1236,6 @@ export default { required: ['message', 'warning_code'], type: 'object', }, - { - description: 'Duplicate access code name detected.', - properties: { - created_at: { - description: - 'Date and time at which Seam created the warning.', - format: 'date-time', - type: 'string', - }, - message: { - description: - 'Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.', - type: 'string', - }, - warning_code: { - description: - 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', - enum: ['schlage_detected_duplicate_code_name'], - type: 'string', - }, - }, - required: ['message', 'warning_code'], - type: 'object', - }, { description: 'Received an error when attempting to create this code.', @@ -16321,30 +16297,6 @@ export default { required: ['message', 'warning_code'], type: 'object', }, - { - description: 'Duplicate access code name detected.', - properties: { - created_at: { - description: - 'Date and time at which Seam created the warning.', - format: 'date-time', - type: 'string', - }, - message: { - description: - 'Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.', - type: 'string', - }, - warning_code: { - description: - 'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.', - enum: ['schlage_detected_duplicate_code_name'], - type: 'string', - }, - }, - required: ['message', 'warning_code'], - type: 'object', - }, { description: 'Received an error when attempting to create this code.', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index b57d1f3d..617fad02 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -1726,14 +1726,6 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } - | { - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Date and time at which Seam created the warning. */ - created_at?: string | undefined - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schlage_detected_duplicate_code_name' - } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -2268,14 +2260,6 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } - | { - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Date and time at which Seam created the warning. */ - created_at?: string | undefined - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schlage_detected_duplicate_code_name' - } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -4114,14 +4098,6 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } - | { - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Date and time at which Seam created the warning. */ - created_at?: string | undefined - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schlage_detected_duplicate_code_name' - } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -4636,14 +4612,6 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } - | { - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Date and time at which Seam created the warning. */ - created_at?: string | undefined - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schlage_detected_duplicate_code_name' - } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -5166,14 +5134,6 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } - | { - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Date and time at which Seam created the warning. */ - created_at?: string | undefined - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schlage_detected_duplicate_code_name' - } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -5674,14 +5634,6 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } - | { - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Date and time at which Seam created the warning. */ - created_at?: string | undefined - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schlage_detected_duplicate_code_name' - } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -6211,14 +6163,6 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } - | { - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Date and time at which Seam created the warning. */ - created_at?: string | undefined - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schlage_detected_duplicate_code_name' - } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -8041,14 +7985,6 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } - | { - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Date and time at which Seam created the warning. */ - created_at?: string | undefined - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schlage_detected_duplicate_code_name' - } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -8539,14 +8475,6 @@ export interface Routes { /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ warning_code: 'schlage_detected_duplicate' } - | { - /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Date and time at which Seam created the warning. */ - created_at?: string | undefined - /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ - warning_code: 'schlage_detected_duplicate_code_name' - } | { /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -45688,6 +45616,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -45827,6 +45756,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -46095,6 +46025,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -46232,6 +46163,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -46985,6 +46917,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -47124,6 +47057,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -47392,6 +47326,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -47529,6 +47464,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -49680,6 +49616,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -49819,6 +49756,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -50087,6 +50025,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ @@ -50224,6 +50163,7 @@ export interface Routes { | 'salto_ks_credential' | 'assa_abloy_vostio_key' | 'salto_space_key' + | 'latch_access' ) | undefined /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ From 17316d173f94f63f330d625c0f48494edf07b338 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 8 May 2025 19:45:31 +0000 Subject: [PATCH 30/52] 1.391.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3a9e3c78..9f99a0c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.391.0", + "version": "1.391.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.391.0", + "version": "1.391.1", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.40.0", diff --git a/package.json b/package.json index a8399f43..99c1baa0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.391.0", + "version": "1.391.1", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From 3a52851097a311e072821dbd2fb9d8cfdd124621 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 8 May 2025 15:22:41 -0700 Subject: [PATCH 31/52] feat: Add auto_join for vostio (#1860) Update via seamapi/seam-connect@aa1c343e9322470f74b0c8187ab68e002777d245 --- .../models/acs/metadata/assa-abloy-vostio.ts | 1 + src/lib/seam/connect/openapi.ts | 7 ++ src/lib/seam/connect/route-types.ts | 107 ++++++++++++++++++ 3 files changed, 115 insertions(+) diff --git a/src/lib/seam/connect/models/acs/metadata/assa-abloy-vostio.ts b/src/lib/seam/connect/models/acs/metadata/assa-abloy-vostio.ts index 1d12eb76..29198b4a 100644 --- a/src/lib/seam/connect/models/acs/metadata/assa-abloy-vostio.ts +++ b/src/lib/seam/connect/models/acs/metadata/assa-abloy-vostio.ts @@ -13,6 +13,7 @@ export type AcsEntranceAssaAbloyVostioMetadata = z.infer< > export const acs_credential_vostio_metadata = z.object({ + auto_join: z.boolean().optional(), override_guest_acs_entrance_ids: z.string().array().optional(), key_id: z.string().optional(), key_issuing_request_id: z.string().optional(), diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index f76115af..9e7bb435 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -1651,6 +1651,7 @@ export default { description: 'Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', properties: { + auto_join: { type: 'boolean' }, door_names: { items: { type: 'string' }, type: 'array' }, endpoint_id: { type: 'string' }, key_id: { type: 'string' }, @@ -3721,6 +3722,7 @@ export default { description: 'Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', properties: { + auto_join: { type: 'boolean' }, door_names: { items: { type: 'string' }, type: 'array', @@ -4117,6 +4119,7 @@ export default { description: 'Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', properties: { + auto_join: { type: 'boolean' }, door_names: { items: { type: 'string' }, type: 'array', @@ -4914,6 +4917,7 @@ export default { description: 'Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', properties: { + auto_join: { type: 'boolean' }, door_names: { items: { type: 'string' }, type: 'array', @@ -5308,6 +5312,7 @@ export default { description: 'Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', properties: { + auto_join: { type: 'boolean' }, door_names: { items: { type: 'string' }, type: 'array', @@ -16705,6 +16710,7 @@ export default { description: 'Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials).', properties: { + auto_join: { type: 'boolean' }, door_names: { items: { type: 'string' }, type: 'array' }, endpoint_id: { type: 'string' }, key_id: { type: 'string' }, @@ -21438,6 +21444,7 @@ export default { description: 'Vostio-specific metadata for the new credential.', properties: { + auto_join: { type: 'boolean' }, join_all_guest_acs_entrances: { type: 'boolean' }, override_all_guest_acs_entrances: { type: 'boolean' }, override_guest_acs_entrance_ids: { diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 617fad02..960cf3a8 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -295,6 +295,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -435,6 +436,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -704,6 +706,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -842,6 +845,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -2634,6 +2638,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -2774,6 +2779,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -3043,6 +3049,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -3181,6 +3188,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -6543,6 +6551,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -6683,6 +6692,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -6952,6 +6962,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -7090,6 +7101,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -8886,6 +8898,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -9026,6 +9039,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -9295,6 +9309,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -9433,6 +9448,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -10718,6 +10734,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -10768,6 +10785,7 @@ export interface Routes { /** Vostio-specific metadata for the new credential. */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_all_guest_acs_entrances?: boolean | undefined join_all_guest_acs_entrances?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined @@ -10921,6 +10939,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -11085,6 +11104,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -11253,6 +11273,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -11427,6 +11448,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -11683,6 +11705,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -11835,6 +11858,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -12001,6 +12025,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -12161,6 +12186,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -12440,6 +12466,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -12580,6 +12607,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -12849,6 +12877,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -12987,6 +13016,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -13743,6 +13773,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -13883,6 +13914,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -14152,6 +14184,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -14290,6 +14323,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -15141,6 +15175,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -15281,6 +15316,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -15550,6 +15586,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -15688,6 +15725,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -16616,6 +16654,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -18820,6 +18859,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -18960,6 +19000,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -19229,6 +19270,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -19367,6 +19409,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -20119,6 +20162,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -20259,6 +20303,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -20528,6 +20573,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -20666,6 +20712,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -32654,6 +32701,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -32794,6 +32842,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -33063,6 +33112,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -33201,6 +33251,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -33955,6 +34006,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -34095,6 +34147,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -34364,6 +34417,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -34502,6 +34556,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -35255,6 +35310,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -35395,6 +35451,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -35664,6 +35721,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -35802,6 +35860,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -36556,6 +36615,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -36696,6 +36756,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -36965,6 +37026,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -37103,6 +37165,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -39924,6 +39987,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -40064,6 +40128,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -40333,6 +40398,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -40471,6 +40537,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -41236,6 +41303,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -41376,6 +41444,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -41645,6 +41714,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -41783,6 +41853,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -42587,6 +42658,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -42727,6 +42799,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -42996,6 +43069,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -43134,6 +43208,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -44396,6 +44471,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -44536,6 +44612,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -44805,6 +44882,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -44943,6 +45021,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -48319,6 +48398,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -48459,6 +48539,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -48728,6 +48809,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -48866,6 +48948,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -52026,6 +52109,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -52166,6 +52250,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -52435,6 +52520,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -52573,6 +52659,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -53337,6 +53424,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -53477,6 +53565,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -53746,6 +53835,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -53884,6 +53974,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -56683,6 +56774,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -56823,6 +56915,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -57092,6 +57185,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -57230,6 +57324,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -58176,6 +58271,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -58316,6 +58412,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -58585,6 +58682,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -58723,6 +58821,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -59510,6 +59609,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -59650,6 +59750,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -59919,6 +60020,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -60057,6 +60159,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -64228,6 +64331,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -64368,6 +64472,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -64637,6 +64742,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -64775,6 +64881,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined From 85f570cc586c7194c5c87e81efbd2f9065fc7113 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 8 May 2025 22:23:26 +0000 Subject: [PATCH 32/52] 1.392.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9f99a0c0..3a238bb9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.391.1", + "version": "1.392.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.391.1", + "version": "1.392.0", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.40.0", diff --git a/package.json b/package.json index 99c1baa0..f94980b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.391.1", + "version": "1.392.0", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From 4754d819d1c67c6ab775e23d0297639b2e46cd8d Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 8 May 2025 15:41:36 -0700 Subject: [PATCH 33/52] Update via seamapi/seam-connect@261e4ed8d244e0f38a5a3ace01d13c95da261878 (#1861) Co-authored-by: Evan Sosenko --- src/lib/seam/connect/openapi.ts | 1 + src/lib/seam/connect/route-types.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 9e7bb435..e99c65d1 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -21829,6 +21829,7 @@ export default { required: ['user_identity_id'], type: 'object', }, + { properties: {}, type: 'object' }, ], }, { diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 960cf3a8..76fd9265 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -11309,6 +11309,7 @@ export interface Routes { /** ID of the user identity for which you want to retrieve all credentials. */ user_identity_id: string } + | {} ) & { /** Number of credentials to return. */ limit?: number From 143bac575db3646d66eed67f4cceff500476c594 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 8 May 2025 22:42:18 +0000 Subject: [PATCH 34/52] 1.392.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3a238bb9..14c88e3e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.392.0", + "version": "1.392.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.392.0", + "version": "1.392.1", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.40.0", diff --git a/package.json b/package.json index f94980b8..6c04dd67 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.392.0", + "version": "1.392.1", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From 070da5cb1b80a59d40f06f16440c3bf3baca13f2 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 8 May 2025 17:42:34 -0700 Subject: [PATCH 35/52] Update via seamapi/seam-connect@1edf9b8dd745c9dbd611fb82132463cd0324c0fa (#1863) --- .../models/acs/metadata/assa-abloy-vostio.ts | 1 + src/lib/seam/connect/openapi.ts | 48 ++++++ src/lib/seam/connect/route-types.ts | 161 ++++++++++++++++++ 3 files changed, 210 insertions(+) diff --git a/src/lib/seam/connect/models/acs/metadata/assa-abloy-vostio.ts b/src/lib/seam/connect/models/acs/metadata/assa-abloy-vostio.ts index 29198b4a..87b3af30 100644 --- a/src/lib/seam/connect/models/acs/metadata/assa-abloy-vostio.ts +++ b/src/lib/seam/connect/models/acs/metadata/assa-abloy-vostio.ts @@ -13,6 +13,7 @@ export type AcsEntranceAssaAbloyVostioMetadata = z.infer< > export const acs_credential_vostio_metadata = z.object({ + // auto_join does not exist in the Vostio API and is an abstraction made by Seam auto_join: z.boolean().optional(), override_guest_acs_entrance_ids: z.string().array().optional(), key_id: z.string().optional(), diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index e99c65d1..28583560 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -29837,6 +29837,54 @@ export default { 'x-undocumented': 'Seam Instant Key only.', }, }, + '/seam/mobile_sdk/v1/acs/credentials/list': { + post: { + description: 'Returns a list of all ACS credentials.', + operationId: 'seamMobileSdkV1AcsCredentialsListPost', + requestBody: { + content: { + 'application/json': { schema: { properties: {}, type: 'object' } }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { + acs_credentials: { + items: { $ref: '#/components/schemas/acs_credential' }, + type: 'array', + }, + ok: { type: 'boolean' }, + }, + required: ['acs_credentials', 'ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [{ client_session: [] }], + summary: '/seam/mobile_sdk/v1/acs/credentials/list', + tags: ['/acs'], + 'x-fern-sdk-group-name': [ + 'seam', + 'mobile_sdk', + 'v1', + 'acs', + 'credentials', + ], + 'x-fern-sdk-method-name': 'list', + 'x-fern-sdk-return-value': 'acs_credentials', + 'x-response-key': 'acs_credentials', + 'x-title': 'List Credentials', + 'x-undocumented': 'Mobile SDK only.', + }, + }, '/thermostats/activate_climate_preset': { post: { description: diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 76fd9265..f416376b 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -44204,6 +44204,155 @@ export interface Routes { } } } + '/seam/mobile_sdk/v1/acs/credentials/list': { + route: '/seam/mobile_sdk/v1/acs/credentials/list' + method: 'GET' | 'POST' + queryParams: {} + jsonBody: {} + commonParams: {} + formData: {} + jsonResponse: { + acs_credentials: Array<{ + /** ID of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_credential_id: string + /** ID of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) to whom the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) belongs. */ + acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined + /** ID of the [access control system](https://docs.seam.co/latest/capability-guides/access-systems) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + acs_system_id: string + /** ID of the parent [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + parent_acs_credential_id?: string | undefined + /** Display name that corresponds to the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + display_name: string + /** Access (PIN) code for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + code?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. */ + is_one_time_use?: boolean | undefined + /** Number of the card associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + card_number?: (string | undefined) | null + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been encoded onto a card. */ + is_issued?: boolean | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was encoded onto a card. */ + issued_at?: (string | undefined) | null + /** Access method for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`. */ + access_method: 'code' | 'card' | 'mobile_key' + /** Brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. */ + external_type?: + | ( + | 'pti_card' + | 'brivo_credential' + | 'hid_credential' + | 'visionline_card' + | 'salto_ks_credential' + | 'assa_abloy_vostio_key' + | 'salto_space_key' + | 'latch_access' + ) + | undefined + /** Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) type. */ + external_type_display_name?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was created. */ + created_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + workspace_id: string + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at?: string | undefined + /** Date and time at which the [credential](https://docs.seam.co/latest/capability-guides/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`. */ + ends_at?: string | undefined + /** Errors associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + errors: Array<{ + error_code: string + message: string + }> + /** Warnings associated with the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + warnings: Array< + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'waiting_to_be_issued' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_externally_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'schedule_modified' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'being_deleted' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'unknown_issue_with_acs_credential' + } + | { + /** Date and time at which Seam created the warning. */ + created_at: string + /** Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. */ + warning_code: 'needs_to_be_reissued' + } + > + /** Indicates whether the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). */ + is_multi_phone_sync_credential?: boolean | undefined + /** Indicates whether the latest state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) has been synced from Seam to the provider. */ + is_latest_desired_state_synced_with_provider?: + | (boolean | null) + | undefined + /** Date and time at which the state of the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials) was most recently synced from Seam to the provider. */ + latest_desired_state_synced_with_provider_at?: + | (string | null) + | undefined + /** Visionline-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + visionline_metadata?: + | { + card_function_type: 'guest' | 'staff' + joiner_acs_credential_ids?: string[] | undefined + guest_acs_entrance_ids?: string[] | undefined + common_acs_entrance_ids?: string[] | undefined + is_valid?: boolean | undefined + auto_join?: boolean | undefined + card_id?: string | undefined + credential_id?: string | undefined + } + | undefined + /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ + assa_abloy_vostio_metadata?: + | { + auto_join?: boolean | undefined + override_guest_acs_entrance_ids?: string[] | undefined + key_id?: string | undefined + key_issuing_request_id?: string | undefined + door_names?: string[] | undefined + endpoint_id?: string | undefined + } + | undefined + is_managed: true + }> + } + } '/thermostats/activate_climate_preset': { route: '/thermostats/activate_climate_preset' method: 'POST' @@ -45791,6 +45940,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -45931,6 +46081,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -46200,6 +46351,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -46338,6 +46490,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -47092,6 +47245,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -47232,6 +47386,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -47501,6 +47656,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -47639,6 +47795,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -49795,6 +49952,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -49935,6 +50093,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: | string[] | undefined @@ -50204,6 +50363,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined @@ -50342,6 +50502,7 @@ export interface Routes { /** Vostio-specific metadata for the [credential](https://docs.seam.co/latest/capability-guides/access-systems/managing-credentials). */ assa_abloy_vostio_metadata?: | { + auto_join?: boolean | undefined override_guest_acs_entrance_ids?: string[] | undefined key_id?: string | undefined key_issuing_request_id?: string | undefined From 647359c8a0c768115c3948fdfdb40b9689148949 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Fri, 9 May 2025 11:04:53 -0700 Subject: [PATCH 36/52] feat: Add latch_conflict_with_resident_user warning (#1864) Update via seamapi/seam-connect@336d98812889145d3150072ea8a2fed7c1e0138b --- .../connect/models/acs/acs-users/acs-user.ts | 12 +++++ src/lib/seam/connect/openapi.ts | 46 +++++++++++++++++ src/lib/seam/connect/route-types.ts | 49 +++++++++++++++++++ 3 files changed, 107 insertions(+) diff --git a/src/lib/seam/connect/models/acs/acs-users/acs-user.ts b/src/lib/seam/connect/models/acs/acs-users/acs-user.ts index 35297f62..ca03c3d2 100644 --- a/src/lib/seam/connect/models/acs/acs-users/acs-user.ts +++ b/src/lib/seam/connect/models/acs/acs-users/acs-user.ts @@ -68,6 +68,14 @@ const acs_users_failed_to_delete_on_acs_system = common_acs_user_error `Indicates that the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) was not deleted on the [access control system](https://docs.seam.co/latest/capability-guides/access-systems). This is likely due to an internal unexpected error. Contact Seam [support](mailto:support@seam.co).`, ) +const acs_users_latch_conflict_with_resident_user = common_acs_user_error + .extend({ + error_code: z.literal('latch_conflict_with_resident_user'), + }) + .describe( + `Indicates that the [ACS user](https://docs.seam.co/latest/capability-guides/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).`, + ) + const acs_user_errors = z .discriminatedUnion('error_code', [ acs_users_deleted_externally, @@ -75,6 +83,7 @@ const acs_user_errors = z acs_users_failed_to_create_on_acs_system, acs_users_failed_to_update_on_acs_system, acs_users_failed_to_delete_on_acs_system, + acs_users_latch_conflict_with_resident_user, ]) .describe( 'Errors associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management).', @@ -93,6 +102,9 @@ export const acs_users_error_map = z.object({ failed_to_delete_on_acs_system: acs_users_failed_to_delete_on_acs_system .optional() .nullable(), + latch_conflict_with_resident_user: acs_users_latch_conflict_with_resident_user + .optional() + .nullable(), }) export type AcsUsersErrorMap = z.infer diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 28583560..8a67ab34 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -2895,6 +2895,29 @@ export default { required: ['created_at', 'message', 'error_code'], type: 'object', }, + { + description: + 'Indicates that the [ACS user](https://docs.seam.co/latest/capability-guides/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).', + properties: { + created_at: { + description: + 'Date and time at which Seam created the error.', + format: 'date-time', + type: 'string', + }, + error_code: { + enum: ['latch_conflict_with_resident_user'], + type: 'string', + }, + message: { + description: + 'Detailed description of the error. Provides insights into the issue and potentially how to rectify it.', + type: 'string', + }, + }, + required: ['created_at', 'message', 'error_code'], + type: 'object', + }, ], }, type: 'array', @@ -17222,6 +17245,29 @@ export default { required: ['created_at', 'message', 'error_code'], type: 'object', }, + { + description: + 'Indicates that the [ACS user](https://docs.seam.co/latest/capability-guides/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).', + properties: { + created_at: { + description: + 'Date and time at which Seam created the error.', + format: 'date-time', + type: 'string', + }, + error_code: { + enum: ['latch_conflict_with_resident_user'], + type: 'string', + }, + message: { + description: + 'Detailed description of the error. Provides insights into the issue and potentially how to rectify it.', + type: 'string', + }, + }, + required: ['created_at', 'message', 'error_code'], + type: 'object', + }, ], }, type: 'array', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index f416376b..373efa99 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -10314,6 +10314,13 @@ export interface Routes { message: string error_code: 'failed_to_delete_on_acs_system' } + | { + /** Date and time at which Seam created the error. */ + created_at: string + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + error_code: 'latch_conflict_with_resident_user' + } > /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: @@ -17405,6 +17412,13 @@ export interface Routes { message: string error_code: 'failed_to_delete_on_acs_system' } + | { + /** Date and time at which Seam created the error. */ + created_at: string + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + error_code: 'latch_conflict_with_resident_user' + } > /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: @@ -17641,6 +17655,13 @@ export interface Routes { message: string error_code: 'failed_to_delete_on_acs_system' } + | { + /** Date and time at which Seam created the error. */ + created_at: string + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + error_code: 'latch_conflict_with_resident_user' + } > /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: @@ -17873,6 +17894,13 @@ export interface Routes { message: string error_code: 'failed_to_delete_on_acs_system' } + | { + /** Date and time at which Seam created the error. */ + created_at: string + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + error_code: 'latch_conflict_with_resident_user' + } > /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: @@ -18237,6 +18265,13 @@ export interface Routes { message: string error_code: 'failed_to_delete_on_acs_system' } + | { + /** Date and time at which Seam created the error. */ + created_at: string + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + error_code: 'latch_conflict_with_resident_user' + } > /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: @@ -18459,6 +18494,13 @@ export interface Routes { message: string error_code: 'failed_to_delete_on_acs_system' } + | { + /** Date and time at which Seam created the error. */ + created_at: string + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + error_code: 'latch_conflict_with_resident_user' + } > /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: @@ -63897,6 +63939,13 @@ export interface Routes { message: string error_code: 'failed_to_delete_on_acs_system' } + | { + /** Date and time at which Seam created the error. */ + created_at: string + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + error_code: 'latch_conflict_with_resident_user' + } > /** Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. */ pending_mutations?: From c329b20e65b05e95f377c9d66d73e67baac93759 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Fri, 9 May 2025 18:05:40 +0000 Subject: [PATCH 37/52] 1.393.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 14c88e3e..0b8ea5fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.392.1", + "version": "1.393.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.392.1", + "version": "1.393.0", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.40.0", diff --git a/package.json b/package.json index 6c04dd67..b4c13eee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.392.1", + "version": "1.393.0", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From 8fde507c08ddfeef190e460124def3f605db89f2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 May 2025 08:57:55 +0000 Subject: [PATCH 38/52] test(deps-dev): bump @seamapi/blueprint from 0.40.2 to 0.41.0 in the seam group (#1866) test(deps-dev): bump @seamapi/blueprint in the seam group Bumps the seam group with 1 update: [@seamapi/blueprint](https://github.com/seamapi/blueprint). Updates `@seamapi/blueprint` from 0.40.2 to 0.41.0 - [Release notes](https://github.com/seamapi/blueprint/releases) - [Changelog](https://github.com/seamapi/blueprint/blob/main/.releaserc.json) - [Commits](https://github.com/seamapi/blueprint/compare/v0.40.2...v0.41.0) --- updated-dependencies: - dependency-name: "@seamapi/blueprint" dependency-version: 0.41.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: seam ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0b8ea5fd..e53dd79d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.393.0", "license": "MIT", "devDependencies": { - "@seamapi/blueprint": "^0.40.0", + "@seamapi/blueprint": "^0.41.0", "@types/node": "^20.8.10", "concurrently": "^8.2.0", "del-cli": "^5.0.0", @@ -1130,9 +1130,9 @@ "peer": true }, "node_modules/@seamapi/blueprint": { - "version": "0.40.2", - "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-0.40.2.tgz", - "integrity": "sha512-LNJIZ+E8urW4SZWVe94/7+ESo+cbjEoqeZIWQyCEj2q/mv2XX8xpXkQE0uvfj/gu31A3tYIBE0HHfs456RQ/Yw==", + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-0.41.0.tgz", + "integrity": "sha512-kf//qq3tA1xFvNMJrO4V0rN7x2FHEDGKiCQafzI6keTKhQtjghZl1M8hS64QicuQG7DrcUZXiVQS7ZexSLeGGw==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index b4c13eee..6a8e2b0e 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "zod": "^3.24.0" }, "devDependencies": { - "@seamapi/blueprint": "^0.40.0", + "@seamapi/blueprint": "^0.41.0", "@types/node": "^20.8.10", "concurrently": "^8.2.0", "del-cli": "^5.0.0", From 0c78164a949a2b8f1c4de61c6fa938b46d0bdc44 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Mon, 12 May 2025 12:06:14 -0700 Subject: [PATCH 39/52] feat: Add acs_user.last_successful_sync_at --- .../connect/models/acs/acs-users/acs-user.ts | 6 ++++++ src/lib/seam/connect/openapi.ts | 18 ++++++++++++++++++ src/lib/seam/connect/route-types.ts | 14 ++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/src/lib/seam/connect/models/acs/acs-users/acs-user.ts b/src/lib/seam/connect/models/acs/acs-users/acs-user.ts index ca03c3d2..b7c2e46c 100644 --- a/src/lib/seam/connect/models/acs/acs-users/acs-user.ts +++ b/src/lib/seam/connect/models/acs/acs-users/acs-user.ts @@ -337,6 +337,12 @@ const common_acs_user = z .describe( 'Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.', ), + last_successful_sync_at: z.string().datetime().nullable().describe(` + --- + undocumented: Only used internally. + --- + The last time an internal sync job completed for this ACS user. + `), }) .merge(user_fields) diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 8a67ab34..f63d730f 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -2954,6 +2954,14 @@ export default { 'Indicates whether the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) is currently [suspended](https://docs.seam.co/latest/capability-guides/access-systems/user-management/suspending-and-unsuspending-users).', type: 'boolean', }, + last_successful_sync_at: { + description: + 'The last time an internal sync job completed for this ACS user.', + format: 'date-time', + nullable: true, + type: 'string', + 'x-undocumented': 'Only used internally.', + }, pending_mutations: { description: 'Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.', @@ -3348,6 +3356,7 @@ export default { 'display_name', 'warnings', 'errors', + 'last_successful_sync_at', 'is_managed', ], type: 'object', @@ -17304,6 +17313,14 @@ export default { 'Indicates whether the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) is currently [suspended](https://docs.seam.co/latest/capability-guides/access-systems/user-management/suspending-and-unsuspending-users).', type: 'boolean', }, + last_successful_sync_at: { + description: + 'The last time an internal sync job completed for this ACS user.', + format: 'date-time', + nullable: true, + type: 'string', + 'x-undocumented': 'Only used internally.', + }, pending_mutations: { description: 'Pending mutations associated with the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.', @@ -17698,6 +17715,7 @@ export default { 'display_name', 'warnings', 'errors', + 'last_successful_sync_at', 'is_managed', ], type: 'object', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 373efa99..364d8768 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -10403,6 +10403,8 @@ export interface Routes { } > | undefined + /** The last time an internal sync job completed for this ACS user. */ + last_successful_sync_at: string | null /** Full name of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ full_name?: string | undefined /** @@ -17501,6 +17503,8 @@ export interface Routes { } > | undefined + /** The last time an internal sync job completed for this ACS user. */ + last_successful_sync_at: string | null /** Full name of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ full_name?: string | undefined /** @@ -17744,6 +17748,8 @@ export interface Routes { } > | undefined + /** The last time an internal sync job completed for this ACS user. */ + last_successful_sync_at: string | null /** Full name of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ full_name?: string | undefined /** @@ -17983,6 +17989,8 @@ export interface Routes { } > | undefined + /** The last time an internal sync job completed for this ACS user. */ + last_successful_sync_at: string | null /** Full name of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ full_name?: string | undefined /** @@ -18354,6 +18362,8 @@ export interface Routes { } > | undefined + /** The last time an internal sync job completed for this ACS user. */ + last_successful_sync_at: string | null /** Full name of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ full_name?: string | undefined /** @@ -18583,6 +18593,8 @@ export interface Routes { } > | undefined + /** The last time an internal sync job completed for this ACS user. */ + last_successful_sync_at: string | null /** Full name of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ full_name?: string | undefined /** @@ -64028,6 +64040,8 @@ export interface Routes { } > | undefined + /** The last time an internal sync job completed for this ACS user. */ + last_successful_sync_at: string | null /** Full name of the [ACS user](https://docs.seam.co/latest/capability-guides/access-systems/user-management). */ full_name?: string | undefined /** From 97b0013baa524381562e0686a11f08547f667d1d Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Mon, 12 May 2025 19:07:36 +0000 Subject: [PATCH 40/52] 1.394.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e53dd79d..6af91ed4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.393.0", + "version": "1.394.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.393.0", + "version": "1.394.0", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.41.0", diff --git a/package.json b/package.json index 6a8e2b0e..eb25c931 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.393.0", + "version": "1.394.0", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From eb3ff451c0b1d7643f66d12e0ab7654ef58b147f Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Mon, 12 May 2025 12:11:17 -0700 Subject: [PATCH 41/52] Update via seamapi/seam-connect@7cb9ad11537287784d65bdd565a923b2d2e4cdeb (#1871) Co-authored-by: Evan Sosenko --- .../connect/models/devices/capability-properties/access-code.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/seam/connect/models/devices/capability-properties/access-code.ts b/src/lib/seam/connect/models/devices/capability-properties/access-code.ts index ebb63960..2b28e0bc 100644 --- a/src/lib/seam/connect/models/devices/capability-properties/access-code.ts +++ b/src/lib/seam/connect/models/devices/capability-properties/access-code.ts @@ -5,7 +5,7 @@ export const access_code_code_constraint = z.object({ 'no_zeros', // Nuki 'cannot_start_with_12', // Nuki 'no_triple_consecutive_ints', // Brivo - 'cannot_specify_pin_code', // Lockly + 'cannot_specify_pin_code', // Dormakaba? 'pin_code_matches_existing_set', // Salto 'start_date_in_future', // Kwikset 'no_ascending_or_descending_sequence', // Tedee From 4651afc7bb87b7d6bf1a4d730a74a737cdc67692 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Tue, 13 May 2025 13:20:52 -0700 Subject: [PATCH 42/52] Update via seamapi/seam-connect@9b79413d0affb81d9bff6d4369f69f8cf79208d2 (#1874) --- .../access-codes/managed-access-code.ts | 12 +++ src/lib/seam/connect/openapi.ts | 64 +++++++++++++ src/lib/seam/connect/route-types.ts | 90 +++++++++++++++++++ 3 files changed, 166 insertions(+) diff --git a/src/lib/seam/connect/models/access-codes/managed-access-code.ts b/src/lib/seam/connect/models/access-codes/managed-access-code.ts index 8c61cbfb..b88486fe 100644 --- a/src/lib/seam/connect/models/access-codes/managed-access-code.ts +++ b/src/lib/seam/connect/models/access-codes/managed-access-code.ts @@ -123,6 +123,15 @@ const igloohome_offline_access_code_no_variance_available = }) .describe('Lock has reached maximum amount of codes.') +const schlage_lock_exceeds_maximum_number_of_access_codes = + common_access_code_error + .extend({ + error_code: z + .literal('schlage_lock_exceeds_maximum_number_of_access_codes') + .describe(error_code_description), + }) + .describe('Lock has reached maximum amount of codes.') + const august_lock_invalid_code_length = common_access_code_error .extend({ error_code: z @@ -231,6 +240,7 @@ const access_code_error = z igloohome_bridge_too_many_pending_jobs, igloohome_bridge_offline, igloohome_offline_access_code_no_variance_available, + schlage_lock_exceeds_maximum_number_of_access_codes, kwikset_unable_to_confirm_code, kwikset_unable_to_confirm_deletion, code_modified_external_to_seam_error, @@ -310,6 +320,8 @@ const access_code_error_map = z.object({ dormakaba_oracode_no_valid_user_level: dormakaba_oracode_no_valid_user_level .optional() .nullable(), + schlage_lock_exceeds_maximum_number_of_access_codes: + schlage_lock_exceeds_maximum_number_of_access_codes.optional().nullable(), }) export type AccessCodeErrorMap = z.infer diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index f63d730f..83cfa9a7 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -352,6 +352,38 @@ export default { required: ['message', 'is_access_code_error', 'error_code'], type: 'object', }, + { + description: 'Lock has reached maximum amount of codes.', + properties: { + created_at: { + description: + 'Date and time at which Seam created the error.', + format: 'date-time', + type: 'string', + }, + error_code: { + description: + 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', + enum: [ + 'schlage_lock_exceeds_maximum_number_of_access_codes', + ], + type: 'string', + }, + is_access_code_error: { + description: + 'Indicates that this is an access code error.', + enum: [true], + type: 'boolean', + }, + message: { + description: + 'Detailed description of the error. Provides insights into the issue and potentially how to rectify it.', + type: 'string', + }, + }, + required: ['message', 'is_access_code_error', 'error_code'], + type: 'object', + }, { description: 'Unable to confirm that the access code is set on Kwikset device.', @@ -15491,6 +15523,38 @@ export default { required: ['message', 'is_access_code_error', 'error_code'], type: 'object', }, + { + description: 'Lock has reached maximum amount of codes.', + properties: { + created_at: { + description: + 'Date and time at which Seam created the error.', + format: 'date-time', + type: 'string', + }, + error_code: { + description: + 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', + enum: [ + 'schlage_lock_exceeds_maximum_number_of_access_codes', + ], + type: 'string', + }, + is_access_code_error: { + description: + 'Indicates that this is an access code error.', + enum: [true], + type: 'boolean', + }, + message: { + description: + 'Detailed description of the error. Provides insights into the issue and potentially how to rectify it.', + type: 'string', + }, + }, + required: ['message', 'is_access_code_error', 'error_code'], + type: 'object', + }, { description: 'Unable to confirm that the access code is set on Kwikset device.', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 364d8768..933814cc 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -1460,6 +1460,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -1994,6 +2004,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -3836,6 +3856,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -4350,6 +4380,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -4872,6 +4912,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -5372,6 +5422,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -5901,6 +5961,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -7727,6 +7797,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -8217,6 +8297,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string From cc3c0393ca079135649622d7466df3f388775dcc Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Tue, 13 May 2025 13:24:12 -0700 Subject: [PATCH 43/52] feat: Add no_space_for_access_code_on_device error (#1877) Update via seamapi/seam-connect@e6373846193a599da2139f823bbc9c64aec1714f Co-authored-by: Evan Sosenko --- .../access-codes/managed-access-code.ts | 12 +++ src/lib/seam/connect/openapi.ts | 60 +++++++++++++ src/lib/seam/connect/route-types.ts | 90 +++++++++++++++++++ 3 files changed, 162 insertions(+) diff --git a/src/lib/seam/connect/models/access-codes/managed-access-code.ts b/src/lib/seam/connect/models/access-codes/managed-access-code.ts index b88486fe..fcec7f3f 100644 --- a/src/lib/seam/connect/models/access-codes/managed-access-code.ts +++ b/src/lib/seam/connect/models/access-codes/managed-access-code.ts @@ -80,6 +80,14 @@ const duplicate_code_attempt_prevented = common_access_code_error }) .describe('An attempt to modify this access code was prevented.') +const no_space_for_access_code_on_device = common_access_code_error + .extend({ + error_code: z + .literal('no_space_for_access_code_on_device') + .describe(error_code_description), + }) + .describe('No space for access code on device.') + const igloohome_bridge_too_many_pending_jobs = common_access_code_error .extend({ error_code: z @@ -237,6 +245,7 @@ const access_code_error = z failed_to_remove_from_device, duplicate_code_on_device, duplicate_code_attempt_prevented, + no_space_for_access_code_on_device, igloohome_bridge_too_many_pending_jobs, igloohome_bridge_offline, igloohome_offline_access_code_no_variance_available, @@ -274,6 +283,9 @@ const access_code_error_map = z.object({ failed_to_remove_from_device: failed_to_remove_from_device .optional() .nullable(), + no_space_for_access_code_on_device: no_space_for_access_code_on_device + .optional() + .nullable(), duplicate_code_on_device: duplicate_code_on_device.optional().nullable(), duplicate_code_attempt_prevented: duplicate_code_attempt_prevented .optional() diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 83cfa9a7..8ae04803 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -259,6 +259,36 @@ export default { required: ['message', 'is_access_code_error', 'error_code'], type: 'object', }, + { + description: 'No space for access code on device.', + properties: { + created_at: { + description: + 'Date and time at which Seam created the error.', + format: 'date-time', + type: 'string', + }, + error_code: { + description: + 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', + enum: ['no_space_for_access_code_on_device'], + type: 'string', + }, + is_access_code_error: { + description: + 'Indicates that this is an access code error.', + enum: [true], + type: 'boolean', + }, + message: { + description: + 'Detailed description of the error. Provides insights into the issue and potentially how to rectify it.', + type: 'string', + }, + }, + required: ['message', 'is_access_code_error', 'error_code'], + type: 'object', + }, { description: 'Igloohome bridge has too many pending jobs in the queue.', @@ -15430,6 +15460,36 @@ export default { required: ['message', 'is_access_code_error', 'error_code'], type: 'object', }, + { + description: 'No space for access code on device.', + properties: { + created_at: { + description: + 'Date and time at which Seam created the error.', + format: 'date-time', + type: 'string', + }, + error_code: { + description: + 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', + enum: ['no_space_for_access_code_on_device'], + type: 'string', + }, + is_access_code_error: { + description: + 'Indicates that this is an access code error.', + enum: [true], + type: 'boolean', + }, + message: { + description: + 'Detailed description of the error. Provides insights into the issue and potentially how to rectify it.', + type: 'string', + }, + }, + required: ['message', 'is_access_code_error', 'error_code'], + type: 'object', + }, { description: 'Igloohome bridge has too many pending jobs in the queue.', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 933814cc..ade10282 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -1430,6 +1430,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'duplicate_code_attempt_prevented' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'no_space_for_access_code_on_device' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -1974,6 +1984,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'duplicate_code_attempt_prevented' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'no_space_for_access_code_on_device' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -3826,6 +3846,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'duplicate_code_attempt_prevented' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'no_space_for_access_code_on_device' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -4350,6 +4380,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'duplicate_code_attempt_prevented' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'no_space_for_access_code_on_device' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -4882,6 +4922,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'duplicate_code_attempt_prevented' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'no_space_for_access_code_on_device' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -5392,6 +5442,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'duplicate_code_attempt_prevented' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'no_space_for_access_code_on_device' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -5931,6 +5991,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'duplicate_code_attempt_prevented' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'no_space_for_access_code_on_device' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -7767,6 +7837,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'duplicate_code_attempt_prevented' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'no_space_for_access_code_on_device' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -8267,6 +8347,16 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'duplicate_code_attempt_prevented' } + | { + /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ + message: string + /** Indicates that this is an access code error. */ + is_access_code_error: true + /** Date and time at which Seam created the error. */ + created_at?: string | undefined + /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ + error_code: 'no_space_for_access_code_on_device' + } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string From 4b0aed827310cebef23ffc5f3606cf8b82dcf88f Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Tue, 13 May 2025 20:25:05 +0000 Subject: [PATCH 44/52] 1.395.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6af91ed4..8e19fbb1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.394.0", + "version": "1.395.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.394.0", + "version": "1.395.0", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.41.0", diff --git a/package.json b/package.json index eb25c931..3e0ad65d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.394.0", + "version": "1.395.0", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From f350529e341679c0dbef205c344ca8a77388ff47 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Tue, 13 May 2025 13:47:09 -0700 Subject: [PATCH 45/52] Update via seamapi/seam-connect@cbaab1084b5b2a65d92fed106a7a09f565eeaaa8 (#1885) --- .../access-codes/managed-access-code.ts | 12 --- src/lib/seam/connect/openapi.ts | 64 ------------- src/lib/seam/connect/route-types.ts | 90 ------------------- 3 files changed, 166 deletions(-) diff --git a/src/lib/seam/connect/models/access-codes/managed-access-code.ts b/src/lib/seam/connect/models/access-codes/managed-access-code.ts index fcec7f3f..54577cf5 100644 --- a/src/lib/seam/connect/models/access-codes/managed-access-code.ts +++ b/src/lib/seam/connect/models/access-codes/managed-access-code.ts @@ -131,15 +131,6 @@ const igloohome_offline_access_code_no_variance_available = }) .describe('Lock has reached maximum amount of codes.') -const schlage_lock_exceeds_maximum_number_of_access_codes = - common_access_code_error - .extend({ - error_code: z - .literal('schlage_lock_exceeds_maximum_number_of_access_codes') - .describe(error_code_description), - }) - .describe('Lock has reached maximum amount of codes.') - const august_lock_invalid_code_length = common_access_code_error .extend({ error_code: z @@ -249,7 +240,6 @@ const access_code_error = z igloohome_bridge_too_many_pending_jobs, igloohome_bridge_offline, igloohome_offline_access_code_no_variance_available, - schlage_lock_exceeds_maximum_number_of_access_codes, kwikset_unable_to_confirm_code, kwikset_unable_to_confirm_deletion, code_modified_external_to_seam_error, @@ -332,8 +322,6 @@ const access_code_error_map = z.object({ dormakaba_oracode_no_valid_user_level: dormakaba_oracode_no_valid_user_level .optional() .nullable(), - schlage_lock_exceeds_maximum_number_of_access_codes: - schlage_lock_exceeds_maximum_number_of_access_codes.optional().nullable(), }) export type AccessCodeErrorMap = z.infer diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 8ae04803..0a003702 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -382,38 +382,6 @@ export default { required: ['message', 'is_access_code_error', 'error_code'], type: 'object', }, - { - description: 'Lock has reached maximum amount of codes.', - properties: { - created_at: { - description: - 'Date and time at which Seam created the error.', - format: 'date-time', - type: 'string', - }, - error_code: { - description: - 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', - enum: [ - 'schlage_lock_exceeds_maximum_number_of_access_codes', - ], - type: 'string', - }, - is_access_code_error: { - description: - 'Indicates that this is an access code error.', - enum: [true], - type: 'boolean', - }, - message: { - description: - 'Detailed description of the error. Provides insights into the issue and potentially how to rectify it.', - type: 'string', - }, - }, - required: ['message', 'is_access_code_error', 'error_code'], - type: 'object', - }, { description: 'Unable to confirm that the access code is set on Kwikset device.', @@ -15583,38 +15551,6 @@ export default { required: ['message', 'is_access_code_error', 'error_code'], type: 'object', }, - { - description: 'Lock has reached maximum amount of codes.', - properties: { - created_at: { - description: - 'Date and time at which Seam created the error.', - format: 'date-time', - type: 'string', - }, - error_code: { - description: - 'Unique identifier of the type of error. Enables quick recognition and categorization of the issue.', - enum: [ - 'schlage_lock_exceeds_maximum_number_of_access_codes', - ], - type: 'string', - }, - is_access_code_error: { - description: - 'Indicates that this is an access code error.', - enum: [true], - type: 'boolean', - }, - message: { - description: - 'Detailed description of the error. Provides insights into the issue and potentially how to rectify it.', - type: 'string', - }, - }, - required: ['message', 'is_access_code_error', 'error_code'], - type: 'object', - }, { description: 'Unable to confirm that the access code is set on Kwikset device.', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index ade10282..37a9f349 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -1470,16 +1470,6 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } - | { - /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Indicates that this is an access code error. */ - is_access_code_error: true - /** Date and time at which Seam created the error. */ - created_at?: string | undefined - /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ - error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' - } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -2024,16 +2014,6 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } - | { - /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Indicates that this is an access code error. */ - is_access_code_error: true - /** Date and time at which Seam created the error. */ - created_at?: string | undefined - /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ - error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' - } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -3886,16 +3866,6 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } - | { - /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Indicates that this is an access code error. */ - is_access_code_error: true - /** Date and time at which Seam created the error. */ - created_at?: string | undefined - /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ - error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' - } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -4420,16 +4390,6 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } - | { - /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Indicates that this is an access code error. */ - is_access_code_error: true - /** Date and time at which Seam created the error. */ - created_at?: string | undefined - /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ - error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' - } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -4962,16 +4922,6 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } - | { - /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Indicates that this is an access code error. */ - is_access_code_error: true - /** Date and time at which Seam created the error. */ - created_at?: string | undefined - /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ - error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' - } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -5482,16 +5432,6 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } - | { - /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Indicates that this is an access code error. */ - is_access_code_error: true - /** Date and time at which Seam created the error. */ - created_at?: string | undefined - /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ - error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' - } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -6031,16 +5971,6 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } - | { - /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Indicates that this is an access code error. */ - is_access_code_error: true - /** Date and time at which Seam created the error. */ - created_at?: string | undefined - /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ - error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' - } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -7877,16 +7807,6 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } - | { - /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Indicates that this is an access code error. */ - is_access_code_error: true - /** Date and time at which Seam created the error. */ - created_at?: string | undefined - /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ - error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' - } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string @@ -8387,16 +8307,6 @@ export interface Routes { /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'igloohome_offline_access_code_no_variance_available' } - | { - /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ - message: string - /** Indicates that this is an access code error. */ - is_access_code_error: true - /** Date and time at which Seam created the error. */ - created_at?: string | undefined - /** Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ - error_code: 'schlage_lock_exceeds_maximum_number_of_access_codes' - } | { /** Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string From 3466579b97db8b254c5debbee1c1fca882ec07d5 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Tue, 13 May 2025 20:47:40 +0000 Subject: [PATCH 46/52] 1.395.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8e19fbb1..5abd34de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.395.0", + "version": "1.395.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.395.0", + "version": "1.395.1", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.41.0", diff --git a/package.json b/package.json index 3e0ad65d..02d09685 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.395.0", + "version": "1.395.1", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From ea29d02410cd493720f48c0a3649f5df1ace0f35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 May 2025 09:08:02 +0000 Subject: [PATCH 47/52] test(deps-dev): bump @seamapi/blueprint from 0.41.0 to 0.42.0 in the seam group (#1888) test(deps-dev): bump @seamapi/blueprint in the seam group Bumps the seam group with 1 update: [@seamapi/blueprint](https://github.com/seamapi/blueprint). Updates `@seamapi/blueprint` from 0.41.0 to 0.42.0 - [Release notes](https://github.com/seamapi/blueprint/releases) - [Changelog](https://github.com/seamapi/blueprint/blob/main/.releaserc.json) - [Commits](https://github.com/seamapi/blueprint/compare/v0.41.0...v0.42.0) --- updated-dependencies: - dependency-name: "@seamapi/blueprint" dependency-version: 0.42.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: seam ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5abd34de..75994c93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.395.1", "license": "MIT", "devDependencies": { - "@seamapi/blueprint": "^0.41.0", + "@seamapi/blueprint": "^0.42.0", "@types/node": "^20.8.10", "concurrently": "^8.2.0", "del-cli": "^5.0.0", @@ -1130,9 +1130,9 @@ "peer": true }, "node_modules/@seamapi/blueprint": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-0.41.0.tgz", - "integrity": "sha512-kf//qq3tA1xFvNMJrO4V0rN7x2FHEDGKiCQafzI6keTKhQtjghZl1M8hS64QicuQG7DrcUZXiVQS7ZexSLeGGw==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-0.42.0.tgz", + "integrity": "sha512-H3HuQg9lksTA7OtsKpkGO3tbAI9NKyst5XFHfLHpQ3cUTZ02Pok6ZwEgOE1w4HoPMtfwDc+7haYd0CbugpEj1A==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 02d09685..d4ea8932 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "zod": "^3.24.0" }, "devDependencies": { - "@seamapi/blueprint": "^0.41.0", + "@seamapi/blueprint": "^0.42.0", "@types/node": "^20.8.10", "concurrently": "^8.2.0", "del-cli": "^5.0.0", From e4f36c0c62844b8de576622e96306eb0f6dcf9e7 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 15 May 2025 10:14:10 -0700 Subject: [PATCH 48/52] Update via seamapi/seam-connect@fae0719a6228d6f3e05afab0f752a7500c2b7eb2 (#1886) Co-authored-by: Evan Sosenko --- src/lib/seam/connect/openapi.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 0a003702..9a79cca4 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -25586,6 +25586,7 @@ export default { 'x-fern-sdk-group-name': ['connected_accounts'], 'x-fern-sdk-method-name': 'delete', 'x-response-key': null, + 'x-title': 'Delete a Connected Account', }, }, '/connected_accounts/get': { @@ -25646,6 +25647,7 @@ export default { 'x-fern-sdk-method-name': 'get', 'x-fern-sdk-return-value': 'connected_account', 'x-response-key': 'connected_account', + 'x-title': 'Get a Connected Account', }, }, '/connected_accounts/list': { @@ -25723,6 +25725,7 @@ export default { 'x-fern-sdk-method-name': 'list', 'x-fern-sdk-return-value': 'connected_accounts', 'x-response-key': 'connected_accounts', + 'x-title': 'List Connected Accounts', }, }, '/connected_accounts/update': { @@ -25783,6 +25786,7 @@ export default { 'x-fern-sdk-group-name': ['connected_accounts'], 'x-fern-sdk-method-name': 'update', 'x-response-key': null, + 'x-title': 'Update a Connected Account', }, }, '/devices/delete': { From 981ba80a4e46b45dd27e7a06541b56abba160500 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 15 May 2025 12:18:10 -0700 Subject: [PATCH 49/52] fix: Thermostat program types (#1887) Update via seamapi/seam-connect@2569eb5b9596dd1f4846e2dcf958319b2650a473 Co-authored-by: Evan Sosenko --- .../capability-properties/thermostat.ts | 9 +- .../models/thermostats/thermostat-program.ts | 12 +- .../models/thermostats/thermostat-schedule.ts | 8 +- src/lib/seam/connect/openapi.ts | 53 +- src/lib/seam/connect/route-types.ts | 1122 +++++++++-------- 5 files changed, 676 insertions(+), 528 deletions(-) diff --git a/src/lib/seam/connect/models/devices/capability-properties/thermostat.ts b/src/lib/seam/connect/models/devices/capability-properties/thermostat.ts index 50824b47..5d9dc08e 100644 --- a/src/lib/seam/connect/models/devices/capability-properties/thermostat.ts +++ b/src/lib/seam/connect/models/devices/capability-properties/thermostat.ts @@ -43,13 +43,8 @@ export const thermostat_capability_properties = z available_climate_presets: z.array(climate_preset), fallback_climate_preset_key: z.string().min(1).nullable().default(null), active_thermostat_schedule: thermostat_schedule.nullable().default(null), - thermostat_daily_programs: z - .array(thermostat_daily_program) - .nullable() - .default(null), - thermostat_weekly_program: thermostat_weekly_program - .nullable() - .default(null), + thermostat_daily_programs: z.array(thermostat_daily_program).optional(), + thermostat_weekly_program: thermostat_weekly_program.nullable().optional(), min_cooling_set_point_celsius: z.number(), min_cooling_set_point_fahrenheit: z.number(), max_cooling_set_point_celsius: z.number(), diff --git a/src/lib/seam/connect/models/thermostats/thermostat-program.ts b/src/lib/seam/connect/models/thermostats/thermostat-program.ts index 0d750189..ee283ee5 100644 --- a/src/lib/seam/connect/models/thermostats/thermostat-program.ts +++ b/src/lib/seam/connect/models/thermostats/thermostat-program.ts @@ -22,11 +22,17 @@ export const thermostat_daily_program = z.object({ device_id: z.string().uuid().describe('ID of the desired thermostat device.'), name: z .string() - .optional() + .nullable() .describe('User-friendly name to identify the thermostat daily program.'), periods: z .array(thermostat_daily_program_period) .describe('Array of thermostat daily program periods.'), + workspace_id: z + .string() + .uuid() + .describe( + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program.', + ), created_at: z .string() .datetime() @@ -36,10 +42,6 @@ export const thermostat_daily_program = z.object({ }) export const thermostat_weekly_program = z.object({ - device_id: z - .string() - .uuid() - .describe('ID of the thermostat device the weekly program is for.'), monday_program_id: z .string() .uuid() diff --git a/src/lib/seam/connect/models/thermostats/thermostat-schedule.ts b/src/lib/seam/connect/models/thermostats/thermostat-schedule.ts index 07780711..40c69710 100644 --- a/src/lib/seam/connect/models/thermostats/thermostat-schedule.ts +++ b/src/lib/seam/connect/models/thermostats/thermostat-schedule.ts @@ -15,7 +15,7 @@ export const thermostat_schedule = z.object({ ), name: z .string() - .optional() + .nullable() .describe( 'User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules).', ), @@ -51,6 +51,12 @@ export const thermostat_schedule = z.object({ .describe( 'Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', ), + workspace_id: z + .string() + .uuid() + .describe( + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule.', + ), created_at: z .string() .datetime() diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 9a79cca4..489e07cb 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -8906,6 +8906,7 @@ export default { name: { description: 'User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules).', + nullable: true, type: 'string', }, starts_at: { @@ -8920,13 +8921,21 @@ export default { format: 'uuid', type: 'string', }, + workspace_id: { + description: + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule.', + format: 'uuid', + type: 'string', + }, }, required: [ 'thermostat_schedule_id', 'device_id', + 'name', 'climate_preset_key', 'starts_at', 'ends_at', + 'workspace_id', 'created_at', 'errors', ], @@ -9304,7 +9313,6 @@ export default { type: 'object', }, thermostat_daily_programs: { - default: null, items: { properties: { created_at: { @@ -9322,6 +9330,7 @@ export default { name: { description: 'User-friendly name to identify the thermostat daily program.', + nullable: true, type: 'string', }, periods: { @@ -9356,20 +9365,26 @@ export default { format: 'uuid', type: 'string', }, + workspace_id: { + description: + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program.', + format: 'uuid', + type: 'string', + }, }, required: [ 'thermostat_daily_program_id', 'device_id', + 'name', 'periods', + 'workspace_id', 'created_at', ], type: 'object', }, - nullable: true, type: 'array', }, thermostat_weekly_program: { - default: null, nullable: true, properties: { created_at: { @@ -9378,12 +9393,6 @@ export default { format: 'date-time', type: 'string', }, - device_id: { - description: - 'ID of the thermostat device the weekly program is for.', - format: 'uuid', - type: 'string', - }, friday_program_id: { description: 'ID of the thermostat daily program to run on Fridays.', @@ -9435,7 +9444,6 @@ export default { }, }, required: [ - 'device_id', 'monday_program_id', 'tuesday_program_id', 'wednesday_program_id', @@ -15149,6 +15157,7 @@ export default { name: { description: 'User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules).', + nullable: true, type: 'string', }, starts_at: { @@ -15163,13 +15172,21 @@ export default { format: 'uuid', type: 'string', }, + workspace_id: { + description: + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule.', + format: 'uuid', + type: 'string', + }, }, required: [ 'thermostat_schedule_id', 'device_id', + 'name', 'climate_preset_key', 'starts_at', 'ends_at', + 'workspace_id', 'created_at', 'errors', ], @@ -30095,42 +30112,49 @@ export default { description: 'ID of the thermostat daily program to run on Fridays.', format: 'uuid', + nullable: true, type: 'string', }, monday_program_id: { description: 'ID of the thermostat daily program to run on Mondays.', format: 'uuid', + nullable: true, type: 'string', }, saturday_program_id: { description: 'ID of the thermostat daily program to run on Saturdays.', format: 'uuid', + nullable: true, type: 'string', }, sunday_program_id: { description: 'ID of the thermostat daily program to run on Sundays.', format: 'uuid', + nullable: true, type: 'string', }, thursday_program_id: { description: 'ID of the thermostat daily program to run on Thursdays.', format: 'uuid', + nullable: true, type: 'string', }, tuesday_program_id: { description: 'ID of the thermostat daily program to run on Tuesdays.', format: 'uuid', + nullable: true, type: 'string', }, wednesday_program_id: { description: 'ID of the thermostat daily program to run on Wednesdays.', format: 'uuid', + nullable: true, type: 'string', }, }, @@ -30493,6 +30517,7 @@ export default { name: { description: 'User-friendly name to identify the thermostat daily program.', + nullable: true, type: 'string', }, periods: { @@ -30523,11 +30548,19 @@ export default { format: 'uuid', type: 'string', }, + workspace_id: { + description: + 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program.', + format: 'uuid', + type: 'string', + }, }, required: [ 'thermostat_daily_program_id', 'device_id', + 'name', 'periods', + 'workspace_id', 'created_at', ], type: 'object', diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index 37a9f349..ed225ce8 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -22762,7 +22762,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -22773,6 +22773,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -22785,45 +22787,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined @@ -23931,7 +23939,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -23942,6 +23950,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -23954,45 +23964,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined @@ -29152,7 +29168,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -29163,6 +29179,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -29175,45 +29193,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined @@ -30131,7 +30155,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -30142,6 +30166,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -30154,45 +30180,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined @@ -31268,7 +31300,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -31279,6 +31311,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -31291,45 +31325,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined @@ -32246,7 +32286,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -32257,6 +32297,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -32269,45 +32311,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined @@ -38549,7 +38597,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -38560,6 +38608,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -38572,45 +38622,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined @@ -39527,7 +39583,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -39538,6 +39594,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -39550,45 +39608,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined @@ -45812,19 +45876,19 @@ export interface Routes { /** ID of the thermostat device that the weekly program is for. */ device_id: string /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id?: string | undefined + monday_program_id?: (string | undefined) | null /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id?: string | undefined + tuesday_program_id?: (string | undefined) | null /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id?: string | undefined + wednesday_program_id?: (string | undefined) | null /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id?: string | undefined + thursday_program_id?: (string | undefined) | null /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id?: string | undefined + friday_program_id?: (string | undefined) | null /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id?: string | undefined + saturday_program_id?: (string | undefined) | null /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id?: string | undefined + sunday_program_id?: (string | undefined) | null } commonParams: {} formData: {} @@ -49796,7 +49860,7 @@ export interface Routes { /** ID of the desired thermostat device. */ device_id: string /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined + name: string | null /** Array of thermostat daily program periods. */ periods: Array<{ /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ @@ -49804,6 +49868,8 @@ export interface Routes { /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ climate_preset_key: string }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string /** Date and time at which the thermostat daily program was created. */ created_at: string } @@ -51809,7 +51875,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -51820,6 +51886,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -51832,45 +51900,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined @@ -55500,7 +55574,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -55511,6 +55585,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -55523,45 +55599,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined @@ -56478,7 +56560,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -56489,6 +56571,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -56501,45 +56585,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined @@ -58149,7 +58239,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -58160,6 +58250,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -58202,7 +58294,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -58213,6 +58305,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -58244,7 +58338,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -58255,6 +58349,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -62413,7 +62509,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -62424,6 +62520,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -62436,45 +62534,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined @@ -63393,7 +63497,7 @@ export interface Routes { /** ID of the desired [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) device. */ device_id: string /** User-friendly name to identify the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ - name?: string | undefined + name: string | null /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ climate_preset_key: string /** 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/latest/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). */ @@ -63404,6 +63508,8 @@ export interface Routes { is_override_allowed?: boolean | undefined /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ ends_at: string + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat schedule. */ + workspace_id: string /** Date and time at which the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. */ created_at: string /** Errors associated with the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules). */ @@ -63416,45 +63522,51 @@ export interface Routes { } | null) | undefined thermostat_daily_programs?: - | (Array<{ - /** ID of the thermostat daily program. */ - thermostat_daily_program_id: string - /** ID of the desired thermostat device. */ - device_id: string - /** User-friendly name to identify the thermostat daily program. */ - name?: string | undefined - /** Array of thermostat daily program periods. */ - periods: Array<{ - /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ - starts_at_time: string - /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ - climate_preset_key: string - }> - /** Date and time at which the thermostat daily program was created. */ - created_at: string - }> | null) + | ( + | Array<{ + /** ID of the thermostat daily program. */ + thermostat_daily_program_id: string + /** ID of the desired thermostat device. */ + device_id: string + /** User-friendly name to identify the thermostat daily program. */ + name: string | null + /** Array of thermostat daily program periods. */ + periods: Array<{ + /** Time at which the thermostat daily program entry starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. */ + starts_at_time: string + /** Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the starts_at_time. */ + climate_preset_key: string + }> + /** ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the thermostat daily program. */ + workspace_id: string + /** Date and time at which the thermostat daily program was created. */ + created_at: string + }> + | undefined + ) | undefined thermostat_weekly_program?: - | ({ - /** ID of the thermostat device the weekly program is for. */ - device_id: string - /** ID of the thermostat daily program to run on Mondays. */ - monday_program_id: string | null - /** ID of the thermostat daily program to run on Tuesdays. */ - tuesday_program_id: string | null - /** ID of the thermostat daily program to run on Wednesdays. */ - wednesday_program_id: string | null - /** ID of the thermostat daily program to run on Thursdays. */ - thursday_program_id: string | null - /** ID of the thermostat daily program to run on Fridays. */ - friday_program_id: string | null - /** ID of the thermostat daily program to run on Saturdays. */ - saturday_program_id: string | null - /** ID of the thermostat daily program to run on Sundays. */ - sunday_program_id: string | null - /** Date and time at which the thermostat weekly program was created. */ - created_at: string - } | null) + | ( + | ({ + /** ID of the thermostat daily program to run on Mondays. */ + monday_program_id: string | null + /** ID of the thermostat daily program to run on Tuesdays. */ + tuesday_program_id: string | null + /** ID of the thermostat daily program to run on Wednesdays. */ + wednesday_program_id: string | null + /** ID of the thermostat daily program to run on Thursdays. */ + thursday_program_id: string | null + /** ID of the thermostat daily program to run on Fridays. */ + friday_program_id: string | null + /** ID of the thermostat daily program to run on Saturdays. */ + saturday_program_id: string | null + /** ID of the thermostat daily program to run on Sundays. */ + sunday_program_id: string | null + /** Date and time at which the thermostat weekly program was created. */ + created_at: string + } | null) + | undefined + ) | undefined min_cooling_set_point_celsius?: number | undefined min_cooling_set_point_fahrenheit?: number | undefined From b5a8616808b3a570ec7637fe3acfb1115824534d Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 15 May 2025 19:19:03 +0000 Subject: [PATCH 50/52] 1.395.2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 75994c93..89350a54 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.395.1", + "version": "1.395.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.395.1", + "version": "1.395.2", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.42.0", diff --git a/package.json b/package.json index d4ea8932..81033f14 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.395.1", + "version": "1.395.2", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js", From e644c6e9fa7ec6da871967585671cef40dcabd77 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 15 May 2025 13:55:01 -0700 Subject: [PATCH 51/52] fix: Add back missing ConnectedAccountError and ConnectedAccountWarning to public types (#1895) Update via seamapi/seam-connect@0ece2c767381ab1eed1f78e03205fb3adb106447 --- src/lib/seam/connect/model-types.ts | 2 ++ .../connect/models/connected-accounts/connected-account.ts | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/lib/seam/connect/model-types.ts b/src/lib/seam/connect/model-types.ts index 15e89b1e..d0a2cd69 100644 --- a/src/lib/seam/connect/model-types.ts +++ b/src/lib/seam/connect/model-types.ts @@ -12,6 +12,8 @@ export type { Bridge, ClientSession, ConnectedAccount, + ConnectedAccountError, + ConnectedAccountWarning, ConnectWebview, CustomMetadata, Device, diff --git a/src/lib/seam/connect/models/connected-accounts/connected-account.ts b/src/lib/seam/connect/models/connected-accounts/connected-account.ts index 33e2aab0..231b725d 100644 --- a/src/lib/seam/connect/models/connected-accounts/connected-account.ts +++ b/src/lib/seam/connect/models/connected-accounts/connected-account.ts @@ -76,6 +76,10 @@ export const connected_account_error = z.discriminatedUnion('error_code', [ salto_ks_subscription_limit_exceeded, ]) +export type ConnectedAccountError = z.infer + +export type ConnectedAccountWarning = z.infer + const connected_account_error_map = z.object({ account_disconnected: account_disconnected.nullable().optional(), invalid_credentials: invalid_credentials.nullable().optional(), From fd496f6f0907aad00ea15bb9a3a491b991a76d43 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 15 May 2025 20:56:01 +0000 Subject: [PATCH 52/52] 1.395.3 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 89350a54..e5ed6e67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@seamapi/types", - "version": "1.395.2", + "version": "1.395.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@seamapi/types", - "version": "1.395.2", + "version": "1.395.3", "license": "MIT", "devDependencies": { "@seamapi/blueprint": "^0.42.0", diff --git a/package.json b/package.json index 81033f14..3441189c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@seamapi/types", - "version": "1.395.2", + "version": "1.395.3", "description": "TypeScript types for the Seam API.", "type": "module", "main": "index.js",