/** * Represents an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed). */ export type UnmanagedDevice = { /** * Indicates whether the lock supports configuring automatic locking. */ can_configure_auto_lock?: boolean | undefined; /** * Indicates whether the thermostat supports cooling. */ can_hvac_cool?: boolean | undefined; /** * Indicates whether the thermostat supports heating. */ can_hvac_heat?: boolean | undefined; /** * Indicates whether the thermostat supports simultaneous heating and cooling. */ can_hvac_heat_cool?: boolean | undefined; /** * Indicates whether the device supports programming offline access codes. */ can_program_offline_access_codes?: boolean | undefined; /** * Indicates whether the device supports programming online access codes. */ can_program_online_access_codes?: boolean | undefined; /** * Indicates whether the thermostat supports different climate programs for each day of the week. */ can_program_thermostat_programs_as_different_each_day?: boolean | undefined; /** * Indicates whether the thermostat supports a single climate program applied to every day. */ can_program_thermostat_programs_as_same_each_day?: boolean | undefined; /** * Indicates whether the thermostat supports weekday/weekend climate programs. */ can_program_thermostat_programs_as_weekday_weekend?: boolean | undefined; /** * Indicates whether the device supports remote locking. */ can_remotely_lock?: boolean | undefined; /** * Indicates whether the device supports remote unlocking. */ can_remotely_unlock?: boolean | undefined; /** * Indicates whether the thermostat supports running climate programs. */ can_run_thermostat_programs?: boolean | undefined; /** * Indicates whether the device supports simulating connection in a sandbox. */ can_simulate_connection?: boolean | undefined; /** * Indicates whether the device supports simulating disconnection in a sandbox. */ can_simulate_disconnection?: boolean | undefined; /** * Indicates whether the hub supports simulating connection in a sandbox. */ can_simulate_hub_connection?: boolean | undefined; /** * Indicates whether the hub supports simulating disconnection in a sandbox. */ can_simulate_hub_disconnection?: boolean | undefined; /** * Indicates whether the device supports simulating a paid subscription in a sandbox. */ can_simulate_paid_subscription?: boolean | undefined; /** * Indicates whether the device supports simulating removal in a sandbox. */ can_simulate_removal?: boolean | undefined; /** * Indicates whether the thermostat can be turned off. */ can_turn_off_hvac?: boolean | undefined; /** * Indicates whether the lock supports unlocking with an access code. */ can_unlock_with_code?: boolean | undefined; /** * Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). */ capabilities_supported: Array<'access_code' | 'lock' | 'noise_detection' | 'thermostat' | 'battery' | 'phone'>; /** * Unique identifier for the account associated with the device. */ connected_account_id: string; /** * Date and time at which the device object was created. */ created_at: string; /** * Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. */ custom_metadata: Record; /** * ID of the device. */ device_id: string; /** * Type of the device. */ device_type: 'akuvox_lock' | 'august_lock' | 'brivo_access_point' | 'butterflymx_panel' | 'avigilon_alta_entry' | 'doorking_lock' | 'genie_door' | 'igloo_lock' | 'linear_lock' | 'lockly_lock' | 'kwikset_lock' | 'nuki_lock' | 'salto_lock' | 'schlage_lock' | 'smartthings_lock' | 'wyze_lock' | 'yale_lock' | 'two_n_intercom' | 'controlbyweb_device' | 'ttlock_lock' | 'igloohome_lock' | 'four_suites_door' | 'dormakaba_oracode_door' | 'tedee_lock' | 'akiles_lock' | 'ultraloq_lock' | 'keyincode_lock' | 'omnitec_lock' | 'kisi_lock' | 'aqara_lock' | 'keynest_key' | 'noiseaware_activity_zone' | 'minut_sensor' | 'ecobee_thermostat' | 'nest_thermostat' | 'honeywell_resideo_thermostat' | 'tado_thermostat' | 'sensi_thermostat' | 'smartthings_thermostat' | 'ios_phone' | 'android_phone' | 'ring_camera'; /** * Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. */ errors: Array< /** * Indicates that the account is disconnected. */ { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'account_disconnected'; /** * Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error. */ is_connected_account_error: boolean; /** * Indicates that the error is not a device error. */ is_device_error: boolean; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; } /** * Indicates that the Salto site user limit has been reached. */ | { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'salto_ks_subscription_limit_exceeded'; /** * Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error. */ is_connected_account_error: boolean; /** * Indicates that the error is not a device error. */ is_device_error: boolean; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; } /** * Indicates that one or more dormakaba sites associated with the connected account could not be connected. Contact dormakaba support. */ | { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'dormakaba_sites_disconnected'; /** * Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error. */ is_connected_account_error: boolean; /** * Indicates that the error is not a device error. */ is_device_error: boolean; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; } /** * Indicates that the device is offline. */ | { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'device_offline'; /** * Indicates that the error is a device error. */ is_device_error: boolean; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; } /** * Indicates that the device has been removed. */ | { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'device_removed'; /** * Indicates that the error is a device error. */ is_device_error: boolean; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; } /** * Indicates that the hub is disconnected. */ | { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'hub_disconnected'; /** * Indicates that the error is a device error. */ is_device_error: boolean; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; } /** * Indicates that the device is disconnected. */ | { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'device_disconnected'; /** * Indicates that the error is a device error. */ is_device_error: boolean; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; } /** * Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty. */ | { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'empty_backup_access_code_pool'; /** * Indicates that the error is a device error. */ is_device_error: boolean; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; } /** * Indicates that the user is not authorized to use the August lock. */ | { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'august_lock_not_authorized'; /** * Indicates that the error is a device error. */ is_device_error: boolean; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; } /** * Indicates that device credentials are missing. */ | { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'missing_device_credentials'; /** * Indicates that the error is a device error. */ is_device_error: boolean; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; } /** * Indicates that the auxiliary heat is running. */ | { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'auxiliary_heat_running'; /** * Indicates that the error is a device error. */ is_device_error: boolean; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; } /** * Indicates that a subscription is required to connect. */ | { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'subscription_required'; /** * Indicates that the error is a device error. */ is_device_error: boolean; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; } /** * Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected). */ | { /** * Date and time at which Seam created the error. */ created_at: string; /** * Unique identifier of the type of error. Enables quick recognition and categorization of the issue. */ error_code: 'bridge_disconnected'; /** * Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). */ is_bridge_error?: boolean | undefined; /** * Indicates whether the error is related specifically to the connected account. */ is_connected_account_error?: boolean | undefined; /** * Detailed description of the error. Provides insights into the issue and potentially how to rectify it. */ message: string; }>; /** * Indicates that Seam does not manage the device. */ is_managed: boolean; /** * Location information for the device. */ location?: { /** * Name of the device location. */ location_name?: string | undefined; /** * Time zone of the device location. */ time_zone?: string | undefined; /** * Time zone of the device location. * @deprecated Use `time_zone` instead. */ timezone?: string | undefined; } | undefined; /** * properties of the device. */ properties: { /** * Accessory keypad properties and state. */ accessory_keypad?: { /** * Keypad battery properties. */ battery?: { level: number; } | undefined; /** * Indicates if an accessory keypad is connected to the device. */ is_connected: boolean; } | undefined; /** * Represents the current status of the battery charge level. */ battery?: { /** * Battery charge level as a value between 0 and 1, inclusive. */ level: number; /** * Represents the current status of the battery charge level. Values are `critical`, which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; `low`, which signifies that the battery is under the preferred threshold and should be charged soon; `good`, which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and `full`, which represents a battery that is fully charged, providing the maximum duration of usage. */ status: 'critical' | 'low' | 'good' | 'full'; } | undefined; /** * Indicates the battery level of the device as a decimal value between 0 and 1, inclusive. */ battery_level?: number | undefined; /** * Alt text for the device image. */ image_alt_text?: string | undefined; /** * Image URL for the device. */ image_url?: string | undefined; /** * Manufacturer of the device. When a device, such as a smart lock, is connected through a smart hub, the manufacturer of the device might be different from that of the smart hub. */ manufacturer?: string | undefined; /** * Device model-related properties. */ model: { /** * @deprecated use device.properties.model.can_connect_accessory_keypad */ accessory_keypad_supported?: boolean | undefined; /** * Indicates whether the device can connect a accessory keypad. */ can_connect_accessory_keypad?: boolean | undefined; /** * Display name of the device model. */ display_name: string; /** * Indicates whether the device has a built in accessory keypad. */ has_built_in_keypad?: boolean | undefined; /** * Display name that corresponds to the manufacturer-specific terminology for the device. */ manufacturer_display_name: string; /** * @deprecated use device.can_program_offline_access_codes. */ offline_access_codes_supported?: boolean | undefined; /** * @deprecated use device.can_program_online_access_codes. */ online_access_codes_supported?: boolean | undefined; }; /** * Name of the device. * @deprecated use device.display_name instead */ name: string; /** * Indicates whether it is currently possible to use offline access codes for the device. * @deprecated use device.can_program_offline_access_codes */ offline_access_codes_enabled?: boolean | undefined; /** * Indicates whether the device is online. */ online: boolean; /** * Indicates whether it is currently possible to use online access codes for the device. * @deprecated use device.can_program_online_access_codes */ online_access_codes_enabled?: boolean | undefined; }; /** * 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. */ warnings: Array< /** * Indicates that the backup access code is unhealthy. */ { /** * 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: 'partial_backup_access_code_pool'; } /** * Indicates that there are too many backup codes. */ | { /** * 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: 'many_active_backup_codes'; } /** * Indicates that a third-party integration has been detected. */ | { /** * 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: 'third_party_integration_detected'; } /** * Indicates that the Remote Unlock feature is not enabled in the settings." */ | { /** * 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: 'ttlock_lock_gateway_unlocking_not_enabled'; } /** * Indicates that the gateway signal is weak. */ | { /** * 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: 'ttlock_weak_gateway_signal'; } /** * Indicates that the device is in power saving mode and may have limited functionality. */ | { /** * 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: 'power_saving_mode'; } /** * Indicates that the temperature threshold has been exceeded. */ | { /** * 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: 'temperature_threshold_exceeded'; } /** * Indicates that the device appears to be unresponsive. */ | { /** * 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: 'device_communication_degraded'; } /** * Indicates that a scheduled maintenance window has been detected. */ | { /** * 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: 'scheduled_maintenance_window'; } /** * Indicates that the device has a flaky connection. */ | { /** * 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: 'device_has_flaky_connection'; } /** * Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors. */ | { /** * 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: 'salto_ks_office_mode'; } /** * Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors. */ | { /** * 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: 'salto_ks_privacy_mode'; } /** * Indicates that the lock is in Privacy Mode. Access codes and remote unlock are blocked until Privacy Mode is disabled. */ | { /** * 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: 'privacy_mode'; } /** * Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site. */ | { /** * 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: 'salto_ks_subscription_limit_almost_reached'; } /** * Indicates that a change in the reported device model has been detected for this Salto KS lock, which may occur after an IQ hub reset. Access code support may be affected. See https://help.getseam.com/articles/5098842588-salto-ks-lock-loses-access-code-support for troubleshooting steps. */ | { /** * 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: 'salto_ks_lock_access_code_support_removed'; } /** * Indicates that an unknown issue occurred while syncing the state of the phone with the provider. This issue may affect the proper functioning of the phone. */ | { /** * 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_phone'; } /** * Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected. */ | { /** * 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: 'lockly_time_zone_not_configured'; } /** * Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes. */ | { /** * 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: 'ultraloq_time_zone_unknown'; } /** * Indicates that Seam does not know the device's time zone. Set a time zone to enable time-bound access codes. */ | { /** * 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: 'time_zone_unknown'; } /** * Indicates that the device's configured time zone does not match its hardware UTC offset. Time-bound access codes may activate at the wrong local time. */ | { /** * 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: 'time_zone_mismatch'; } /** * Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes. */ | { /** * 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: 'two_n_device_missing_timezone'; } /** * Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock. */ | { /** * 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: 'hub_required_for_additional_capabilities'; } /** * Indicates a provider-specific issue that may affect device functionality. */ | { /** * 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: 'provider_issue'; } /** * Indicates that the key is in a locker that does not support the access codes API. */ | { /** * 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: 'keynest_unsupported_locker'; } /** * Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app. */ | { /** * 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: 'accessory_keypad_setup_required'; } /** * Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status. */ | { /** * 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: 'unreliable_online_status'; } /** * Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones. */ | { /** * Number of active access codes on the device when the warning was set. */ active_access_code_count: number; /** * Date and time at which Seam created the warning. */ created_at: string; /** * Maximum number of active access codes supported by the device. */ max_active_access_code_count: number; /** * 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: 'max_access_codes_reached'; } /** * Indicates that the connected Kwikset account has member-level access to this lock's home. Admin or owner access is required to manage access codes and control the lock remotely. */ | { /** * 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: 'insufficient_permissions'; }>; /** * Unique identifier for the Seam workspace associated with the device. */ workspace_id: string; };