From 6d7c13c84d316431e365b6faac9c24b3ba59fff5 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Tue, 28 Apr 2026 19:07:32 +0000 Subject: [PATCH] feat: Sync with Seam API via cfa55bde789df676b770d81945f8dc27322ede44 --- src/lib/seam/connect/models/events/devices.ts | 10 +++- src/lib/seam/connect/openapi.ts | 14 +++++- src/lib/seam/connect/route-types.ts | 48 +++++++++++++++---- 3 files changed, 60 insertions(+), 12 deletions(-) diff --git a/src/lib/seam/connect/models/events/devices.ts b/src/lib/seam/connect/models/events/devices.ts index e7371371..bd32ed2c 100644 --- a/src/lib/seam/connect/models/events/devices.ts +++ b/src/lib/seam/connect/models/events/devices.ts @@ -66,9 +66,9 @@ const device_event_issue_properties = { } export const lock_method = z - .enum(['keycode', 'manual', 'automatic', 'unknown', 'seamapi']) + .enum(['keycode', 'manual', 'automatic', 'unknown', 'remote']) .describe( - 'Method by which the affected lock device was locked or unlocked. When the method is `keycode`, the `access_code_id` indicates the access code that was used, if reported by the device.', + 'Method by which the affected lock device was locked or unlocked. When the method is `keycode`, the `access_code_id` indicates the access code that was used, if reported by the device. The `remote` method indicates any remote (un)lock action, including Bluetooth, mobile app, or Seam API. For Seam-initiated remote (un)locks, look up the `action_attempt_id`.', ) export type LockMethod = z.infer @@ -424,6 +424,9 @@ export const lock_locked_event = device_event.extend({ method: lock_method.describe( 'Method by which the affected lock device was locked. When the method is `keycode`, the `access_code_id` indicates the access code that was used, if reported by the device.', ), + is_bluetooth_action: z.boolean().optional().describe(` + Whether the lock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action. + `), }).describe(` --- route_path: /locks @@ -481,6 +484,9 @@ export const lock_unlocked_event = device_event.extend({ .uuid() .optional() .describe('ID of the affected device.'), + is_bluetooth_action: z.boolean().optional().describe(` + Whether the unlock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action. + `), }).describe(` --- route_path: /locks diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 0ad0d629..f3f33555 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -22973,10 +22973,15 @@ export default { type: 'string', }, event_type: { enum: ['lock.locked'], type: 'string' }, + is_bluetooth_action: { + description: + "\n Whether the lock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action.\n ", + type: 'boolean', + }, method: { description: 'Method by which the affected lock device was locked. When the method is `keycode`, the `access_code_id` indicates the access code that was used, if reported by the device.', - enum: ['keycode', 'manual', 'automatic', 'unknown', 'seamapi'], + enum: ['keycode', 'manual', 'automatic', 'unknown', 'remote'], type: 'string', }, occurred_at: { @@ -23086,10 +23091,15 @@ export default { type: 'string', }, event_type: { enum: ['lock.unlocked'], type: 'string' }, + is_bluetooth_action: { + description: + "\n Whether the unlock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action.\n ", + type: 'boolean', + }, method: { description: 'Method by which the affected lock device 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'], + enum: ['keycode', 'manual', 'automatic', 'unknown', 'remote'], type: 'string', }, occurred_at: { diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index cae300bd..22d71e3f 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -46096,7 +46096,11 @@ export type Routes = { | 'manual' | 'automatic' | 'unknown' - | 'seamapi' + | 'remote' + /** + Whether the lock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action. + */ + is_bluetooth_action?: boolean | undefined } | { /** ID of the event. */ @@ -46138,7 +46142,7 @@ export type Routes = { | 'manual' | 'automatic' | 'unknown' - | 'seamapi' + | 'remote' /** undocumented: Unreleased. --- @@ -46163,6 +46167,10 @@ export type Routes = { ID of the ACS entrance associated with the unlock event. */ acs_entrance_id?: string | undefined + /** + Whether the unlock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action. + */ + is_bluetooth_action?: boolean | undefined } | { /** ID of the event. */ @@ -49493,7 +49501,11 @@ export type Routes = { /** ID of the action attempt associated with the lock action. */ action_attempt_id?: string | undefined /** Method by which the affected lock device was locked. When the method is `keycode`, the `access_code_id` indicates the access code that was used, if reported by the device. */ - method: 'keycode' | 'manual' | 'automatic' | 'unknown' | 'seamapi' + method: 'keycode' | 'manual' | 'automatic' | 'unknown' | 'remote' + /** + Whether the lock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action. + */ + is_bluetooth_action?: boolean | undefined } | { /** ID of the event. */ @@ -49530,7 +49542,7 @@ export type Routes = { /** ID of the action attempt associated with the unlock action. */ action_attempt_id?: string | undefined /** Method by which the affected lock device 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. */ - method: 'keycode' | 'manual' | 'automatic' | 'unknown' | 'seamapi' + method: 'keycode' | 'manual' | 'automatic' | 'unknown' | 'remote' /** undocumented: Unreleased. --- @@ -49555,6 +49567,10 @@ export type Routes = { ID of the ACS entrance associated with the unlock event. */ acs_entrance_id?: string | undefined + /** + Whether the unlock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action. + */ + is_bluetooth_action?: boolean | undefined } | { /** ID of the event. */ @@ -79437,7 +79453,11 @@ export type Routes = { /** ID of the action attempt associated with the lock action. */ action_attempt_id?: string | undefined /** Method by which the affected lock device was locked. When the method is `keycode`, the `access_code_id` indicates the access code that was used, if reported by the device. */ - method: 'keycode' | 'manual' | 'automatic' | 'unknown' | 'seamapi' + method: 'keycode' | 'manual' | 'automatic' | 'unknown' | 'remote' + /** + Whether the lock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action. + */ + is_bluetooth_action?: boolean | undefined } | { /** ID of the event. */ @@ -79474,7 +79494,7 @@ export type Routes = { /** ID of the action attempt associated with the unlock action. */ action_attempt_id?: string | undefined /** Method by which the affected lock device 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. */ - method: 'keycode' | 'manual' | 'automatic' | 'unknown' | 'seamapi' + method: 'keycode' | 'manual' | 'automatic' | 'unknown' | 'remote' /** undocumented: Unreleased. --- @@ -79499,6 +79519,10 @@ export type Routes = { ID of the ACS entrance associated with the unlock event. */ acs_entrance_id?: string | undefined + /** + Whether the unlock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action. + */ + is_bluetooth_action?: boolean | undefined } | { /** ID of the event. */ @@ -117745,7 +117769,11 @@ export type Routes = { | 'manual' | 'automatic' | 'unknown' - | 'seamapi' + | 'remote' + /** + Whether the lock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action. + */ + is_bluetooth_action?: boolean | undefined } | { /** ID of the event. */ @@ -117787,7 +117815,7 @@ export type Routes = { | 'manual' | 'automatic' | 'unknown' - | 'seamapi' + | 'remote' /** undocumented: Unreleased. --- @@ -117812,6 +117840,10 @@ export type Routes = { ID of the ACS entrance associated with the unlock event. */ acs_entrance_id?: string | undefined + /** + Whether the unlock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action. + */ + is_bluetooth_action?: boolean | undefined } | { /** ID of the event. */