batch: ZodObject<
{
access_codes: ZodOptional<
ZodArray<
ZodObject<
{
access_code_id: ZodString;
code: ZodNullable<ZodString>;
common_code_key: ZodNullable<ZodString>;
created_at: ZodString;
device_id: ZodString;
ends_at: ZodOptional<ZodNullable<ZodString>>;
errors: ZodArray<
ZodDiscriminatedUnion<
"error_code",
[
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{
created_at?: ...;
error_code: ...;
is_access_code_error: ...;
message: ...;
},
{
created_at?: ...;
error_code: ...;
is_access_code_error: ...;
message: ...;
},
>,
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{
created_at?: ...;
error_code: ...;
is_access_code_error: ...;
message: ...;
},
{
created_at?: ...;
error_code: ...;
is_access_code_error: ...;
message: ...;
},
>,
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{
created_at?: ...;
error_code: ...;
is_access_code_error: ...;
message: ...;
},
{
created_at?: ...;
error_code: ...;
is_access_code_error: ...;
message: ...;
},
>,
],
>,
"many",
>;
is_backup: ZodOptional<ZodBoolean>;
is_backup_access_code_available: ZodBoolean;
is_external_modification_allowed: ZodBoolean;
is_managed: ZodLiteral<true>;
is_offline_access_code: ZodBoolean;
is_one_time_use: ZodBoolean;
is_scheduled_on_device: ZodOptional<ZodBoolean>;
is_waiting_for_code_assignment: ZodOptional<ZodBoolean>;
name: ZodNullable<ZodString>;
pulled_backup_access_code_id: ZodOptional<ZodNullable<ZodString>>;
starts_at: ZodOptional<ZodNullable<ZodString>>;
status: ZodEnum<["setting", "set", "unset", "removing", "unknown"]>;
type: ZodEnum<["time_bound", "ongoing"]>;
warnings: ZodArray<
ZodDiscriminatedUnion<
"warning_code",
[
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{ created_at?: ...; message: ...; warning_code: ... },
{ created_at?: ...; message: ...; warning_code: ... },
>,
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{ created_at?: ...; message: ...; warning_code: ... },
{ created_at?: ...; message: ...; warning_code: ... },
>,
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{ created_at?: ...; message: ...; warning_code: ... },
{ created_at?: ...; message: ...; warning_code: ... },
>,
],
>,
"many",
>;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
access_code_id: string;
code: null
| string;
common_code_key: null | string;
created_at: string;
device_id: string;
ends_at?: null | string;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: { sites: (...)[] };
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_access_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_after_multiple_retries";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "code_modified_external_to_seam";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_set_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_remove_from_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_attempt_prevented";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "no_space_for_access_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_too_many_pending_jobs";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_deletion";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_offline_access_code_no_variance_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_invalid_code_length";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_slots_full";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_temporarily_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_missing_keypad";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "salto_ks_user_not_subscribed";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_no_free_positions_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_no_free_slots_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_duplicate_code_name";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_potential_duplicate_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "dormakaba_oracode_no_valid_user_level";
is_access_code_error: true;
message: string;
}
)[];
is_backup?: boolean;
is_backup_access_code_available: boolean;
is_external_modification_allowed: boolean;
is_managed: true;
is_offline_access_code: boolean;
is_one_time_use: boolean;
is_scheduled_on_device?: boolean;
is_waiting_for_code_assignment?: boolean;
name: null
| string;
pulled_backup_access_code_id?: null | string;
starts_at?: null | string;
status: "unknown" | "set" | "setting" | "unset" | "removing";
type: "time_bound" | "ongoing";
warnings: (
| {
created_at?: string;
message: string;
warning_code: "smartthings_failed_to_set_access_code";
}
| {
created_at?: string;
message: string;
warning_code: "august_device_programming_delay";
}
| {
created_at?: string;
message: string;
warning_code: "august_lock_temporarily_offline";
}
| {
created_at?: string;
message: string;
warning_code: "code_modified_external_to_seam";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_detected_duplicate";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_creation_outage";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_setting_on_device";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_removing_from_device";
}
| {
created_at?: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at?: string;
message: string;
warning_code: "igloo_algopin_must_be_used_within_24_hours";
}
| {
created_at?: string;
message: string;
warning_code: "management_transferred";
}
| {
created_at?: string;
message: string;
warning_code: "kwikset_unable_to_confirm_code";
}
)[];
workspace_id: string;
},
{
access_code_id: string;
code: null
| string;
common_code_key: null | string;
created_at: string;
device_id: string;
ends_at?: null | string;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: { sites: (...)[] };
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_access_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_after_multiple_retries";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "code_modified_external_to_seam";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_set_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_remove_from_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_attempt_prevented";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "no_space_for_access_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_too_many_pending_jobs";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_deletion";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_offline_access_code_no_variance_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_invalid_code_length";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_slots_full";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_temporarily_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_missing_keypad";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "salto_ks_user_not_subscribed";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_no_free_positions_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_no_free_slots_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_duplicate_code_name";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_potential_duplicate_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "dormakaba_oracode_no_valid_user_level";
is_access_code_error: true;
message: string;
}
)[];
is_backup?: boolean;
is_backup_access_code_available: boolean;
is_external_modification_allowed: boolean;
is_managed: true;
is_offline_access_code: boolean;
is_one_time_use: boolean;
is_scheduled_on_device?: boolean;
is_waiting_for_code_assignment?: boolean;
name: null
| string;
pulled_backup_access_code_id?: null | string;
starts_at?: null | string;
status: "unknown" | "set" | "setting" | "unset" | "removing";
type: "time_bound" | "ongoing";
warnings: (
| {
created_at?: string;
message: string;
warning_code: "smartthings_failed_to_set_access_code";
}
| {
created_at?: string;
message: string;
warning_code: "august_device_programming_delay";
}
| {
created_at?: string;
message: string;
warning_code: "august_lock_temporarily_offline";
}
| {
created_at?: string;
message: string;
warning_code: "code_modified_external_to_seam";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_detected_duplicate";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_creation_outage";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_setting_on_device";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_removing_from_device";
}
| {
created_at?: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at?: string;
message: string;
warning_code: "igloo_algopin_must_be_used_within_24_hours";
}
| {
created_at?: string;
message: string;
warning_code: "management_transferred";
}
| {
created_at?: string;
message: string;
warning_code: "kwikset_unable_to_confirm_code";
}
)[];
workspace_id: string;
},
>,
"many",
>,
>;
access_grants: ZodOptional<
ZodArray<
ZodObject<
{
access_grant_id: ZodString;
access_grant_key: ZodOptional<ZodString>;
access_method_ids: ZodArray<ZodString, "many">;
client_session_token: ZodOptional<ZodString>;
created_at: ZodString;
customization_profile_id: ZodOptional<ZodString>;
display_name: ZodString;
ends_at: ZodNullable<ZodString>;
instant_key_url: ZodOptional<ZodString>;
location_ids: ZodArray<ZodString, "many">;
name: ZodNullable<ZodString>;
requested_access_methods: ZodArray<
ZodObject<
{
code: ZodOptional<ZodString>;
created_access_method_ids: ZodArray<ZodString, "many">;
created_at: ZodString;
display_name: ZodString;
mode: ZodEnum<[(...), (...), (...)]>;
},
"strip",
ZodTypeAny,
{
code?: string;
created_access_method_ids: string[];
created_at: string;
display_name: string;
mode: "code"
| "card"
| "mobile_key";
},
{
code?: string;
created_access_method_ids: string[];
created_at: string;
display_name: string;
mode: "code"
| "card"
| "mobile_key";
},
>,
"many",
>;
space_ids: ZodArray<ZodString, "many">;
starts_at: ZodString;
user_identity_id: ZodString;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
access_grant_id: string;
access_grant_key?: string;
access_method_ids: string[];
client_session_token?: string;
created_at: string;
customization_profile_id?: string;
display_name: string;
ends_at: null
| string;
instant_key_url?: string;
location_ids: string[];
name: null | string;
requested_access_methods: {
code?: string;
created_access_method_ids: string[];
created_at: string;
display_name: string;
mode: "code" | "card" | "mobile_key";
}[];
space_ids: string[];
starts_at: string;
user_identity_id: string;
workspace_id: string;
},
{
access_grant_id: string;
access_grant_key?: string;
access_method_ids: string[];
client_session_token?: string;
created_at: string;
customization_profile_id?: string;
display_name: string;
ends_at: null
| string;
instant_key_url?: string;
location_ids: string[];
name: null | string;
requested_access_methods: {
code?: string;
created_access_method_ids: string[];
created_at: string;
display_name: string;
mode: "code" | "card" | "mobile_key";
}[];
space_ids: string[];
starts_at: string;
user_identity_id: string;
workspace_id: string;
},
>,
"many",
>,
>;
access_methods: ZodOptional<
ZodArray<
ZodObject<
{
access_method_id: ZodString;
client_session_token: ZodOptional<ZodString>;
code: ZodOptional<ZodNullable<ZodString>>;
created_at: ZodString;
customization_profile_id: ZodOptional<ZodString>;
display_name: ZodString;
instant_key_url: ZodOptional<ZodString>;
is_encoding_required: ZodOptional<ZodBoolean>;
is_issued: ZodBoolean;
issued_at: ZodNullable<ZodString>;
mode: ZodEnum<["code", "card", "mobile_key"]>;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
access_method_id: string;
client_session_token?: string;
code?: null
| string;
created_at: string;
customization_profile_id?: string;
display_name: string;
instant_key_url?: string;
is_encoding_required?: boolean;
is_issued: boolean;
issued_at: null | string;
mode: "code" | "card" | "mobile_key";
workspace_id: string;
},
{
access_method_id: string;
client_session_token?: string;
code?: null
| string;
created_at: string;
customization_profile_id?: string;
display_name: string;
instant_key_url?: string;
is_encoding_required?: boolean;
is_issued: boolean;
issued_at: null | string;
mode: "code" | "card" | "mobile_key";
workspace_id: string;
},
>,
"many",
>,
>;
acs_access_groups: ZodOptional<
ZodArray<
ZodObject<
{
access_group_type: ZodEnum<
[
"pti_unit",
"pti_access_level",
"salto_ks_access_group",
"brivo_group",
"salto_space_group",
"dormakaba_community_access_group",
"dormakaba_ambiance_access_group",
],
>;
access_group_type_display_name: ZodString;
acs_access_group_id: ZodString;
acs_system_id: ZodString;
connected_account_id: ZodString;
created_at: ZodString;
display_name: ZodString;
external_type: ZodEnum<
[
"pti_unit",
"pti_access_level",
"salto_ks_access_group",
"brivo_group",
"salto_space_group",
"dormakaba_community_access_group",
"dormakaba_ambiance_access_group",
],
>;
external_type_display_name: ZodString;
name: ZodString;
warnings: ZodArray<
ZodObject<
{ created_at: ...; message: ... } & { warning_code: ... },
"strip",
ZodTypeAny,
{
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_access_group";
},
{
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_access_group";
},
>,
"many",
>;
workspace_id: ZodString;
} & { is_managed: ZodLiteral<true> },
"strip",
ZodTypeAny,
{
access_group_type:
| "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
access_group_type_display_name: string;
acs_access_group_id: string;
acs_system_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
external_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
external_type_display_name: string;
is_managed: true;
name: string;
warnings: {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_access_group";
}[];
workspace_id: string;
},
{
access_group_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
access_group_type_display_name: string;
acs_access_group_id: string;
acs_system_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
external_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
external_type_display_name: string;
is_managed: true;
name: string;
warnings: {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_access_group";
}[];
workspace_id: string;
},
>,
"many",
>,
>;
acs_credentials: ZodOptional<
ZodArray<
ZodObject<
{
access_method: ZodEnum<["code", "card", "mobile_key"]>;
acs_credential_id: ZodString;
acs_credential_pool_id: ZodOptional<ZodString>;
acs_system_id: ZodString;
acs_user_id: ZodOptional<ZodString>;
assa_abloy_vostio_metadata: ZodOptional<
ZodObject<
{
auto_join: ZodOptional<(...)>;
door_names: ZodOptional<(...)>;
endpoint_id: ZodOptional<(...)>;
key_id: ZodOptional<(...)>;
key_issuing_request_id: ZodOptional<(...)>;
override_guest_acs_entrance_ids: ZodOptional<(...)>;
},
"strip",
ZodTypeAny,
{
auto_join?: (...)
| (...)
| (...);
door_names?: (...) | (...);
endpoint_id?: (...) | (...);
key_id?: (...) | (...);
key_issuing_request_id?: (...) | (...);
override_guest_acs_entrance_ids?: (...) | (...);
},
{
auto_join?: (...)
| (...)
| (...);
door_names?: (...) | (...);
endpoint_id?: (...) | (...);
key_id?: (...) | (...);
key_issuing_request_id?: (...) | (...);
override_guest_acs_entrance_ids?: (...) | (...);
},
>,
>;
card_number: ZodNullable<ZodOptional<ZodString>>;
code: ZodNullable<ZodOptional<ZodString>>;
connected_account_id: ZodString;
created_at: ZodString;
display_name: ZodString;
ends_at: ZodOptional<ZodString>;
errors: ZodArray<
ZodObject<
{ error_code: ZodString; message: ZodString },
"strip",
ZodTypeAny,
{ error_code: string; message: string },
{ error_code: string; message: string },
>,
"many",
>;
external_type: ZodOptional<
ZodEnum<
[
"pti_card",
"brivo_credential",
"hid_credential",
"visionline_card",
"salto_ks_credential",
"assa_abloy_vostio_key",
"salto_space_key",
"latch_access",
"dormakaba_ambiance_credential",
],
>,
>;
external_type_display_name: ZodOptional<ZodString>;
is_issued: ZodOptional<ZodBoolean>;
is_latest_desired_state_synced_with_provider: ZodOptional<
ZodNullable<ZodBoolean>,
>;
is_multi_phone_sync_credential: ZodOptional<ZodBoolean>;
is_one_time_use: ZodOptional<ZodBoolean>;
issued_at: ZodNullable<ZodOptional<ZodString>>;
latest_desired_state_synced_with_provider_at: ZodOptional<
ZodNullable<ZodString>,
>;
parent_acs_credential_id: ZodOptional<ZodString>;
starts_at: ZodOptional<ZodString>;
user_identity_id: ZodOptional<ZodString>;
visionline_metadata: ZodOptional<
ZodObject<
{
auto_join: ZodOptional<(...)>;
card_function_type: ZodEnum<(...)>;
card_id: ZodOptional<(...)>;
common_acs_entrance_ids: ZodOptional<(...)>;
credential_id: ZodOptional<(...)>;
guest_acs_entrance_ids: ZodOptional<(...)>;
is_valid: ZodOptional<(...)>;
joiner_acs_credential_ids: ZodOptional<(...)>;
},
"strip",
ZodTypeAny,
{
auto_join?: (...)
| (...)
| (...);
card_function_type: (...) | (...);
card_id?: (...) | (...);
common_acs_entrance_ids?: (...) | (...);
credential_id?: (...) | (...);
guest_acs_entrance_ids?: (...) | (...);
is_valid?: (...) | (...) | (...);
joiner_acs_credential_ids?: (...) | (...);
},
{
auto_join?: (...)
| (...)
| (...);
card_function_type: (...) | (...);
card_id?: (...) | (...);
common_acs_entrance_ids?: (...) | (...);
credential_id?: (...) | (...);
guest_acs_entrance_ids?: (...) | (...);
is_valid?: (...) | (...) | (...);
joiner_acs_credential_ids?: (...) | (...);
},
>,
>;
warnings: ZodArray<
ZodDiscriminatedUnion<
"warning_code",
[
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
],
>,
"many",
>;
workspace_id: ZodString;
} & { is_managed: ZodLiteral<true> },
"strip",
ZodTypeAny,
{
access_method: "code" | "card" | "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: boolean;
door_names?: string[];
endpoint_id?: string;
key_id?: string;
key_issuing_request_id?: string;
override_guest_acs_entrance_ids?: string[];
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: string; message: string }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: true;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: boolean;
card_function_type: "guest" | "staff";
card_id?: string;
common_acs_entrance_ids?: string[];
credential_id?: string;
guest_acs_entrance_ids?: string[];
is_valid?: boolean;
joiner_acs_credential_ids?: string[];
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "waiting_to_be_issued";
}
| {
created_at: string;
message: string;
warning_code: "schedule_externally_modified";
}
| {
created_at: string;
message: string;
warning_code: "schedule_modified";
}
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_credential";
}
| {
created_at: string;
message: string;
warning_code: "needs_to_be_reissued";
}
)[];
workspace_id: string;
},
{
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: boolean;
door_names?: string[];
endpoint_id?: string;
key_id?: string;
key_issuing_request_id?: string;
override_guest_acs_entrance_ids?: string[];
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: string; message: string }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: true;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: boolean;
card_function_type: "guest" | "staff";
card_id?: string;
common_acs_entrance_ids?: string[];
credential_id?: string;
guest_acs_entrance_ids?: string[];
is_valid?: boolean;
joiner_acs_credential_ids?: string[];
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "waiting_to_be_issued";
}
| {
created_at: string;
message: string;
warning_code: "schedule_externally_modified";
}
| {
created_at: string;
message: string;
warning_code: "schedule_modified";
}
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_credential";
}
| {
created_at: string;
message: string;
warning_code: "needs_to_be_reissued";
}
)[];
workspace_id: string;
},
>,
"many",
>,
>;
acs_encoders: ZodOptional<
ZodArray<
ZodObject<
{
acs_encoder_id: ZodString;
acs_system_id: ZodString;
connected_account_id: ZodString;
created_at: ZodString;
display_name: ZodString;
errors: ZodArray<
ZodObject<
{ created_at: ZodString; message: ZodString } & {
error_code: ZodLiteral<(...)>;
},
"strip",
ZodTypeAny,
{
created_at: string;
error_code: "acs_encoder_removed";
message: string;
},
{
created_at: string;
error_code: "acs_encoder_removed";
message: string;
},
>,
"many",
>;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
acs_encoder_id: string;
acs_system_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
errors: {
created_at: string;
error_code: "acs_encoder_removed";
message: string;
}[];
workspace_id: string;
},
{
acs_encoder_id: string;
acs_system_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
errors: {
created_at: string;
error_code: "acs_encoder_removed";
message: string;
}[];
workspace_id: string;
},
>,
"many",
>,
>;
acs_entrances: ZodOptional<
ZodArray<
ZodObject<
{
acs_entrance_id: ZodString;
acs_system_id: ZodString;
assa_abloy_vostio_metadata: ZodOptional<
ZodObject<
{
door_name: ZodString;
door_number: ZodOptional<(...)>;
door_type: ZodEnum<(...)>;
pms_id: ZodOptional<(...)>;
stand_open: ZodOptional<(...)>;
},
"strip",
ZodTypeAny,
{
door_name: string;
door_number?: (...)
| (...);
door_type: (...) | (...) | (...) | (...);
pms_id?: (...) | (...);
stand_open?: (...) | (...) | (...);
},
{
door_name: string;
door_number?: (...)
| (...);
door_type: (...) | (...) | (...) | (...);
pms_id?: (...) | (...);
stand_open?: (...) | (...) | (...);
},
>,
>;
connected_account_id: ZodString;
created_at: ZodString;
display_name: ZodString;
dormakaba_ambiance_metadata: ZodOptional<
ZodObject<
{ access_point_name: ZodString },
"strip",
ZodTypeAny,
{ access_point_name: string },
{ access_point_name: string },
>,
>;
dormakaba_community_metadata: ZodOptional<
ZodObject<
{ access_point_name: ZodString },
"strip",
ZodTypeAny,
{ access_point_name: string },
{ access_point_name: string },
>,
>;
errors: ZodArray<
ZodObject<
{ error_code: ZodString; message: ZodString },
"strip",
ZodTypeAny,
{ error_code: string; message: string },
{ error_code: string; message: string },
>,
"many",
>;
hotek_metadata: ZodOptional<
ZodObject<
{ room_number: ZodString },
"strip",
ZodTypeAny,
{ room_number: string },
{ room_number: string },
>,
>;
latch_metadata: ZodOptional<
ZodObject<
{
accessibility_type: ZodString;
door_name: ZodString;
door_type: ZodString;
is_connected: ZodBoolean;
},
"strip",
ZodTypeAny,
{
accessibility_type: string;
door_name: string;
door_type: string;
is_connected: boolean;
},
{
accessibility_type: string;
door_name: string;
door_type: string;
is_connected: boolean;
},
>,
>;
salto_ks_metadata: ZodOptional<
ZodObject<
{
battery_level: ZodString;
door_name: ZodString;
intrusion_alarm: ZodOptional<(...)>;
left_open_alarm: ZodOptional<(...)>;
lock_type: ZodString;
locked_state: ZodString;
online: ZodOptional<(...)>;
privacy_mode: ZodOptional<(...)>;
},
"strip",
ZodTypeAny,
{
battery_level: string;
door_name: string;
intrusion_alarm?: (...)
| (...)
| (...);
left_open_alarm?: (...) | (...) | (...);
lock_type: string;
locked_state: string;
online?: (...) | (...) | (...);
privacy_mode?: (...) | (...) | (...);
},
{
battery_level: string;
door_name: string;
intrusion_alarm?: (...)
| (...)
| (...);
left_open_alarm?: (...) | (...) | (...);
lock_type: string;
locked_state: string;
online?: (...) | (...) | (...);
privacy_mode?: (...) | (...) | (...);
},
>,
>;
salto_space_metadata: ZodOptional<
ZodObject<
{
door_description: ZodOptional<(...)>;
door_id: ZodOptional<(...)>;
door_name: ZodOptional<(...)>;
ext_door_id: ZodOptional<(...)>;
room_description: ZodOptional<(...)>;
room_name: ZodOptional<(...)>;
},
"strip",
ZodTypeAny,
{
door_description?: (...)
| (...);
door_id?: (...) | (...);
door_name?: (...) | (...);
ext_door_id?: (...) | (...);
room_description?: (...) | (...);
room_name?: (...) | (...);
},
{
door_description?: (...)
| (...);
door_id?: (...) | (...);
door_name?: (...) | (...);
ext_door_id?: (...) | (...);
room_description?: (...) | (...);
room_name?: (...) | (...);
},
>,
>;
visionline_metadata: ZodOptional<
ZodObject<
{
door_category: ZodEnum<(...)>;
door_name: ZodString;
profiles: ZodOptional<(...)>;
},
"strip",
ZodTypeAny,
{
door_category: (...)
| (...)
| (...)
| (...)
| (...);
door_name: string;
profiles?: (...) | (...);
},
{
door_category: (...)
| (...)
| (...)
| (...)
| (...);
door_name: string;
profiles?: (...) | (...);
},
>,
>;
} & {
can_unlock_with_card: ZodOptional<ZodBoolean>;
can_unlock_with_code: ZodOptional<ZodBoolean>;
can_unlock_with_mobile_key: ZodOptional<ZodBoolean>;
},
"strip",
ZodTypeAny,
{
acs_entrance_id: string;
acs_system_id: string;
assa_abloy_vostio_metadata?: {
door_name: string;
door_number?: number;
door_type: "CommonDoor"
| "EntranceDoor"
| "GuestDoor"
| "Elevator";
pms_id?: string;
stand_open?: boolean;
};
can_unlock_with_card?: boolean;
can_unlock_with_code?: boolean;
can_unlock_with_mobile_key?: boolean;
connected_account_id: string;
created_at: string;
display_name: string;
dormakaba_ambiance_metadata?: { access_point_name: string };
dormakaba_community_metadata?: { access_point_name: string };
errors: { error_code: string; message: string }[];
hotek_metadata?: { room_number: string };
latch_metadata?: {
accessibility_type: string;
door_name: string;
door_type: string;
is_connected: boolean;
};
salto_ks_metadata?: {
battery_level: string;
door_name: string;
intrusion_alarm?: boolean;
left_open_alarm?: boolean;
lock_type: string;
locked_state: string;
online?: boolean;
privacy_mode?: boolean;
};
salto_space_metadata?: {
door_description?: string;
door_id?: string;
door_name?: string;
ext_door_id?: string;
room_description?: string;
room_name?: string;
};
visionline_metadata?: {
door_category: | "entrance"
| "guest"
| "elevator reader"
| "common"
| "common (PMS)";
door_name: string;
profiles?: {
visionline_door_profile_id: ...;
visionline_door_profile_type: ...;
}[];
};
},
{
acs_entrance_id: string;
acs_system_id: string;
assa_abloy_vostio_metadata?: {
door_name: string;
door_number?: number;
door_type: "CommonDoor"
| "EntranceDoor"
| "GuestDoor"
| "Elevator";
pms_id?: string;
stand_open?: boolean;
};
can_unlock_with_card?: boolean;
can_unlock_with_code?: boolean;
can_unlock_with_mobile_key?: boolean;
connected_account_id: string;
created_at: string;
display_name: string;
dormakaba_ambiance_metadata?: { access_point_name: string };
dormakaba_community_metadata?: { access_point_name: string };
errors: { error_code: string; message: string }[];
hotek_metadata?: { room_number: string };
latch_metadata?: {
accessibility_type: string;
door_name: string;
door_type: string;
is_connected: boolean;
};
salto_ks_metadata?: {
battery_level: string;
door_name: string;
intrusion_alarm?: boolean;
left_open_alarm?: boolean;
lock_type: string;
locked_state: string;
online?: boolean;
privacy_mode?: boolean;
};
salto_space_metadata?: {
door_description?: string;
door_id?: string;
door_name?: string;
ext_door_id?: string;
room_description?: string;
room_name?: string;
};
visionline_metadata?: {
door_category: | "entrance"
| "guest"
| "elevator reader"
| "common"
| "common (PMS)";
door_name: string;
profiles?: {
visionline_door_profile_id: ...;
visionline_door_profile_type: ...;
}[];
};
},
>,
"many",
>,
>;
acs_systems: ZodOptional<
ZodArray<
ZodObject<
{
acs_access_group_count: ZodOptional<ZodNumber>;
acs_system_id: ZodString;
acs_user_count: ZodOptional<ZodNumber>;
connected_account_id: ZodString;
connected_account_ids: ZodArray<ZodString, "many">;
created_at: ZodString;
default_credential_manager_acs_system_id: ZodOptional<
ZodNullable<ZodString>,
>;
errors: ZodArray<
ZodDiscriminatedUnion<
"error_code",
[
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{ created_at: ...; error_code: ...; message: ... },
{ created_at: ...; error_code: ...; message: ... },
>,
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{
created_at: ...;
error_code: ...;
is_bridge_error?: ...;
message: ...;
},
{
created_at: ...;
error_code: ...;
is_bridge_error?: ...;
message: ...;
},
>,
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{ created_at: ...; error_code: ...; message: ... },
{ created_at: ...; error_code: ...; message: ... },
>,
],
>,
"many",
>;
external_type: ZodOptional<
ZodEnum<
[
"pti_site",
"alta_org",
"salto_ks_site",
"salto_space_system",
"brivo_account",
"hid_credential_manager_organization",
"visionline_system",
"assa_abloy_credential_service",
"latch_building",
"dormakaba_community_site",
],
>,
>;
external_type_display_name: ZodOptional<ZodString>;
image_alt_text: ZodString;
image_url: ZodString;
is_credential_manager: ZodBoolean;
location: ZodObject<
{ time_zone: ZodNullable<ZodString> },
"strip",
ZodTypeAny,
{ time_zone: null | string },
{ time_zone: null | string },
>;
name: ZodString;
system_type: ZodOptional<
ZodEnum<
[
"pti_site",
"alta_org",
"salto_ks_site",
"salto_space_system",
"brivo_account",
"hid_credential_manager_organization",
"visionline_system",
"assa_abloy_credential_service",
"latch_building",
"dormakaba_community_site",
],
>,
>;
system_type_display_name: ZodOptional<ZodString>;
visionline_metadata: ZodOptional<
ZodObject<
{
lan_address: ZodString;
mobile_access_uuid: ZodString;
system_id: ZodString;
},
"strip",
ZodTypeAny,
{
lan_address: string;
mobile_access_uuid: string;
system_id: string;
},
{
lan_address: string;
mobile_access_uuid: string;
system_id: string;
},
>,
>;
warnings: ZodArray<
ZodDiscriminatedUnion<
"warning_code",
[
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{ created_at: ...; message: ...; warning_code: ... },
{ created_at: ...; message: ...; warning_code: ... },
>,
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{
created_at: ...;
message: ...;
misconfigured_acs_entrance_ids?: ...;
warning_code: ...;
},
{
created_at: ...;
message: ...;
misconfigured_acs_entrance_ids?: ...;
warning_code: ...;
},
>,
],
>,
"many",
>;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
acs_access_group_count?: number;
acs_system_id: string;
acs_user_count?: number;
connected_account_id: string;
connected_account_ids: string[];
created_at: string;
default_credential_manager_acs_system_id?: null
| string;
errors: (
| {
created_at: string;
error_code: "seam_bridge_disconnected";
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "visionline_instance_unreachable";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
message: string;
}
| {
created_at: string;
error_code: "acs_system_disconnected";
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_certification_expired";
message: string;
}
)[];
external_type?: | "assa_abloy_credential_service"
| "assa_abloy_vostio"
| "assa_abloy_vostio_credential_service"
| "pti_site"
| "alta_org"
| "salto_ks_site"
| "salto_space_system"
| "brivo_account"
| "hid_credential_manager_organization"
| "visionline_system"
| "latch_building"
| "dormakaba_community_site"
| "dormakaba_ambiance_site"
| "legic_connect_credential_service";
external_type_display_name?: string;
image_alt_text: string;
image_url: string;
is_credential_manager: boolean;
location: { time_zone: null
| string };
name: string;
system_type?:
| "assa_abloy_credential_service"
| "assa_abloy_vostio"
| "assa_abloy_vostio_credential_service"
| "pti_site"
| "alta_org"
| "salto_ks_site"
| "salto_space_system"
| "brivo_account"
| "hid_credential_manager_organization"
| "visionline_system"
| "latch_building"
| "dormakaba_community_site"
| "dormakaba_ambiance_site"
| "legic_connect_credential_service";
system_type_display_name?: string;
visionline_metadata?: {
lan_address: string;
mobile_access_uuid: string;
system_id: string;
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "salto_ks_subscription_limit_almost_reached";
}
| {
created_at: string;
message: string;
misconfigured_acs_entrance_ids?: (...)[];
warning_code: "time_zone_does_not_match_location";
}
)[];
workspace_id: string;
},
{
acs_access_group_count?: number;
acs_system_id: string;
acs_user_count?: number;
connected_account_id: string;
connected_account_ids: string[];
created_at: string;
default_credential_manager_acs_system_id?: null
| string;
errors: (
| {
created_at: string;
error_code: "seam_bridge_disconnected";
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "visionline_instance_unreachable";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
message: string;
}
| {
created_at: string;
error_code: "acs_system_disconnected";
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_certification_expired";
message: string;
}
)[];
external_type?: | "assa_abloy_credential_service"
| "assa_abloy_vostio"
| "assa_abloy_vostio_credential_service"
| "pti_site"
| "alta_org"
| "salto_ks_site"
| "salto_space_system"
| "brivo_account"
| "hid_credential_manager_organization"
| "visionline_system"
| "latch_building"
| "dormakaba_community_site"
| "dormakaba_ambiance_site"
| "legic_connect_credential_service";
external_type_display_name?: string;
image_alt_text: string;
image_url: string;
is_credential_manager: boolean;
location: { time_zone: null
| string };
name: string;
system_type?:
| "assa_abloy_credential_service"
| "assa_abloy_vostio"
| "assa_abloy_vostio_credential_service"
| "pti_site"
| "alta_org"
| "salto_ks_site"
| "salto_space_system"
| "brivo_account"
| "hid_credential_manager_organization"
| "visionline_system"
| "latch_building"
| "dormakaba_community_site"
| "dormakaba_ambiance_site"
| "legic_connect_credential_service";
system_type_display_name?: string;
visionline_metadata?: {
lan_address: string;
mobile_access_uuid: string;
system_id: string;
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "salto_ks_subscription_limit_almost_reached";
}
| {
created_at: string;
message: string;
misconfigured_acs_entrance_ids?: (...)[];
warning_code: "time_zone_does_not_match_location";
}
)[];
workspace_id: string;
},
>,
"many",
>,
>;
acs_users: ZodOptional<
ZodArray<
ZodObject<
{
access_schedule: ZodOptional<
ZodObject<
{ ends_at: ZodNullable<(...)>; starts_at: ZodString },
"strip",
ZodTypeAny,
{ ends_at: (...) | (...); starts_at: string },
{ ends_at: (...) | (...); starts_at: string },
>,
>;
acs_system_id: ZodString;
acs_user_id: ZodString;
connected_account_id: ZodString;
created_at: ZodString;
display_name: ZodString;
errors: ZodArray<
ZodDiscriminatedUnion<
"error_code",
[
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
],
>,
"many",
>;
external_type: ZodOptional<
ZodEnum<
[
"pti_user",
"brivo_user",
"hid_credential_manager_user",
"salto_site_user",
"latch_user",
"dormakaba_community_user",
"salto_space_user",
],
>,
>;
external_type_display_name: ZodOptional<ZodString>;
hid_acs_system_id: ZodOptional<ZodString>;
is_suspended: ZodOptional<ZodBoolean>;
last_successful_sync_at: ZodNullable<ZodString>;
pending_mutations: ZodOptional<
ZodArray<
ZodDiscriminatedUnion<"mutation_code", [(...), (...), (...)]>,
"many",
>,
>;
user_identity_email_address: ZodOptional<ZodNullable<ZodString>>;
user_identity_full_name: ZodOptional<ZodNullable<ZodString>>;
user_identity_id: ZodOptional<ZodString>;
user_identity_phone_number: ZodOptional<ZodNullable<ZodString>>;
warnings: ZodArray<
ZodDiscriminatedUnion<
"warning_code",
[
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
],
>,
"many",
>;
workspace_id: ZodString;
} & {
email: ZodOptional<ZodString>;
email_address: ZodOptional<ZodString>;
full_name: ZodOptional<ZodString>;
phone_number: ZodOptional<ZodEffects<ZodString, string, string>>;
} & { is_managed: ZodLiteral<true> },
"strip",
ZodTypeAny,
{
access_schedule?: { ends_at: null | string; starts_at: string };
acs_system_id: string;
acs_user_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
email?: string;
email_address?: string;
errors: (
| {
created_at: string;
error_code: "deleted_externally";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
message: string;
}
| {
created_at: string;
error_code: "failed_to_create_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_update_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_delete_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "latch_conflict_with_resident_user";
message: string;
}
)[];
external_type?: | "pti_user"
| "brivo_user"
| "hid_credential_manager_user"
| "salto_site_user"
| "latch_user"
| "dormakaba_community_user"
| "salto_space_user";
external_type_display_name?: string;
full_name?: string;
hid_acs_system_id?: string;
is_managed: true;
is_suspended?: boolean;
last_successful_sync_at: null
| string;
pending_mutations?: (
| {
created_at: string;
message: string;
mutation_code: "creating";
}
| { created_at: string; message: string; mutation_code: "deleting" }
| {
created_at: string;
from: { email_address?: ...; full_name?: ...; phone_number?: ... };
message: string;
mutation_code: "updating_user_information";
to: { email_address?: ...; full_name?: ...; phone_number?: ... };
}
| {
created_at: string;
from: { ends_at: ...; starts_at: ... };
message: string;
mutation_code: "updating_access_schedule";
to: { ends_at: ...; starts_at: ... };
}
| {
created_at: string;
from: { is_suspended: ... };
message: string;
mutation_code: "updating_suspension_state";
to: { is_suspended: ... };
}
| {
created_at: string;
from: { acs_access_group_id: ... };
message: string;
mutation_code: "updating_group_membership";
to: { acs_access_group_id: ... };
}
)[];
phone_number?: string;
user_identity_email_address?: null
| string;
user_identity_full_name?: null | string;
user_identity_id?: string;
user_identity_phone_number?: null | string;
warnings: (
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_user_not_subscribed";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_user";
}
| {
created_at: string;
message: string;
warning_code: "latch_resident_user";
}
)[];
workspace_id: string;
},
{
access_schedule?: { ends_at: null
| string; starts_at: string };
acs_system_id: string;
acs_user_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
email?: string;
email_address?: string;
errors: (
| {
created_at: string;
error_code: "deleted_externally";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
message: string;
}
| {
created_at: string;
error_code: "failed_to_create_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_update_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_delete_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "latch_conflict_with_resident_user";
message: string;
}
)[];
external_type?: | "pti_user"
| "brivo_user"
| "hid_credential_manager_user"
| "salto_site_user"
| "latch_user"
| "dormakaba_community_user"
| "salto_space_user";
external_type_display_name?: string;
full_name?: string;
hid_acs_system_id?: string;
is_managed: true;
is_suspended?: boolean;
last_successful_sync_at: null
| string;
pending_mutations?: (
| {
created_at: string;
message: string;
mutation_code: "creating";
}
| { created_at: string; message: string; mutation_code: "deleting" }
| {
created_at: string;
from: { email_address?: ...; full_name?: ...; phone_number?: ... };
message: string;
mutation_code: "updating_user_information";
to: { email_address?: ...; full_name?: ...; phone_number?: ... };
}
| {
created_at: string;
from: { ends_at: ...; starts_at: ... };
message: string;
mutation_code: "updating_access_schedule";
to: { ends_at: ...; starts_at: ... };
}
| {
created_at: string;
from: { is_suspended: ... };
message: string;
mutation_code: "updating_suspension_state";
to: { is_suspended: ... };
}
| {
created_at: string;
from: { acs_access_group_id: ... };
message: string;
mutation_code: "updating_group_membership";
to: { acs_access_group_id: ... };
}
)[];
phone_number?: string;
user_identity_email_address?: null
| string;
user_identity_full_name?: null | string;
user_identity_id?: string;
user_identity_phone_number?: null | string;
warnings: (
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_user_not_subscribed";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_user";
}
| {
created_at: string;
message: string;
warning_code: "latch_resident_user";
}
)[];
workspace_id: string;
},
>,
"many",
>,
>;
action_attempts: ZodOptional<
ZodArray<
ZodUnion<
[
ZodObject<
{ action_attempt_id: ZodString } & {
error: ZodNull;
result: ZodNull;
status: ZodLiteral<"pending">;
} & { action_type: ZodLiteral<"LOCK_DOOR"> },
"strip",
ZodTypeAny,
{
action_attempt_id: string;
action_type: "LOCK_DOOR";
error: null;
result: null;
status: "pending";
},
{
action_attempt_id: string;
action_type: "LOCK_DOOR";
error: null;
result: null;
status: "pending";
},
>,
ZodObject<
{ action_attempt_id: ZodString } & {
error: ZodNull;
status: ZodLiteral<"success">;
} & {
action_type: ZodLiteral<"LOCK_DOOR">;
result: ZodObject<{}, "strip", ZodTypeAny, {}, {}>;
},
"strip",
ZodTypeAny,
{
action_attempt_id: string;
action_type: "LOCK_DOOR";
error: null;
result: {};
status: "success";
},
{
action_attempt_id: string;
action_type: "LOCK_DOOR";
error: null;
result: {};
status: "success";
},
>,
ZodObject<
{ action_attempt_id: ZodString } & {
result: ZodNull;
status: ZodLiteral<"error">;
} & {
action_type: ZodLiteral<"LOCK_DOOR">;
error: ZodObject<
{ message: ...; type: ... },
"strip",
ZodTypeAny,
{ message: ...; type: ... },
{ message: ...; type: ... },
>;
},
"strip",
ZodTypeAny,
{
action_attempt_id: string;
action_type: "LOCK_DOOR";
error: { message: string; type: string };
result: null;
status: "error";
},
{
action_attempt_id: string;
action_type: "LOCK_DOOR";
error: { message: string; type: string };
result: null;
status: "error";
},
>,
],
>,
"many",
>,
>;
batch_type: ZodEnum<
["workspaces", "spaces", "access_grants", "access_methods"],
>;
client_sessions: ZodOptional<
ZodArray<
ZodObject<
{
client_session_id: ZodString;
connect_webview_ids: ZodArray<ZodString, "many">;
connected_account_ids: ZodArray<ZodString, "many">;
created_at: ZodString;
customer_id: ZodOptional<ZodString>;
device_count: ZodNumber;
expires_at: ZodString;
token: ZodString;
user_identifier_key: ZodNullable<ZodString>;
user_identity_id: ZodOptional<ZodString>;
user_identity_ids: ZodArray<ZodString, "many">;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
client_session_id: string;
connect_webview_ids: string[];
connected_account_ids: string[];
created_at: string;
customer_id?: string;
device_count: number;
expires_at: string;
token: string;
user_identifier_key: null
| string;
user_identity_id?: string;
user_identity_ids: string[];
workspace_id: string;
},
{
client_session_id: string;
connect_webview_ids: string[];
connected_account_ids: string[];
created_at: string;
customer_id?: string;
device_count: number;
expires_at: string;
token: string;
user_identifier_key: null
| string;
user_identity_id?: string;
user_identity_ids: string[];
workspace_id: string;
},
>,
"many",
>,
>;
connect_webviews: ZodOptional<
ZodArray<
ZodObject<
{
accepted_capabilities: ZodArray<
ZodEnum<["lock", "thermostat", "noise_sensor", "access_control"]>,
"many",
>;
accepted_devices: ZodArray<ZodString, "many">;
accepted_providers: ZodArray<ZodString, "many">;
any_device_allowed: ZodBoolean;
any_provider_allowed: ZodBoolean;
authorized_at: ZodNullable<ZodString>;
automatically_manage_new_devices: ZodBoolean;
connect_webview_id: ZodString;
connected_account_id: ZodNullable<ZodString>;
created_at: ZodString;
custom_metadata: ZodRecord<
ZodString,
ZodUnion<[ZodString, ZodBoolean]>,
>;
custom_redirect_failure_url: ZodNullable<ZodString>;
custom_redirect_url: ZodNullable<ZodString>;
customer_key: ZodOptional<ZodString>;
device_selection_mode: ZodEnum<["none", "single", "multiple"]>;
login_successful: ZodBoolean;
selected_provider: ZodNullable<ZodString>;
status: ZodEnum<["pending", "failed", "authorized"]>;
url: ZodString;
wait_for_device_creation: ZodBoolean;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
accepted_capabilities: (
"lock"
| "thermostat"
| "noise_sensor"
| "access_control"
)[];
accepted_devices: string[];
accepted_providers: string[];
any_device_allowed: boolean;
any_provider_allowed: boolean;
authorized_at: null | string;
automatically_manage_new_devices: boolean;
connect_webview_id: string;
connected_account_id: null | string;
created_at: string;
custom_metadata: Record<string, string | boolean>;
custom_redirect_failure_url: null | string;
custom_redirect_url: null | string;
customer_key?: string;
device_selection_mode: "none" | "single" | "multiple";
login_successful: boolean;
selected_provider: null | string;
status: "pending" | "failed" | "authorized";
url: string;
wait_for_device_creation: boolean;
workspace_id: string;
},
{
accepted_capabilities: (
"lock"
| "thermostat"
| "noise_sensor"
| "access_control"
)[];
accepted_devices: string[];
accepted_providers: string[];
any_device_allowed: boolean;
any_provider_allowed: boolean;
authorized_at: null | string;
automatically_manage_new_devices: boolean;
connect_webview_id: string;
connected_account_id: null | string;
created_at: string;
custom_metadata: Record<string, string | boolean>;
custom_redirect_failure_url: null | string;
custom_redirect_url: null | string;
customer_key?: string;
device_selection_mode: "none" | "single" | "multiple";
login_successful: boolean;
selected_provider: null | string;
status: "pending" | "failed" | "authorized";
url: string;
wait_for_device_creation: boolean;
workspace_id: string;
},
>,
"many",
>,
>;
customization_profiles: ZodOptional<
ZodArray<
ZodObject<
{
created_at: ZodString;
customization_profile_id: ZodString;
logo_url: ZodOptional<ZodString>;
name: ZodNullable<ZodString>;
primary_color: ZodOptional<ZodString>;
secondary_color: ZodOptional<ZodString>;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
created_at: string;
customization_profile_id: string;
logo_url?: string;
name: null
| string;
primary_color?: string;
secondary_color?: string;
workspace_id: string;
},
{
created_at: string;
customization_profile_id: string;
logo_url?: string;
name: null
| string;
primary_color?: string;
secondary_color?: string;
workspace_id: string;
},
>,
"many",
>,
>;
devices: ZodOptional<
ZodArray<
ZodObject<
{
capabilities_supported: ZodArray<
ZodEnum<
[
"access_code",
"lock",
"noise_detection",
"thermostat",
"battery",
"phone",
],
>,
"many",
>;
connected_account_id: ZodString;
created_at: ZodString;
custom_metadata: ZodRecord<
ZodString,
ZodUnion<[ZodString, ZodBoolean]>,
>;
device_id: ZodString;
device_type: ZodUnion<
[
ZodEnum<[(...)]>,
ZodEnum<[(...)]>,
ZodEnum<[(...)]>,
ZodEnum<[(...)]>,
],
>;
display_name: ZodString;
errors: ZodArray<
ZodDiscriminatedUnion<
"error_code",
[
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
],
>,
"many",
>;
is_managed: ZodLiteral<true>;
location: ZodNullable<
ZodObject<
{
location_name: ZodOptional<(...)>;
timezone: ZodOptional<(...)>;
},
"strip",
ZodTypeAny,
{ location_name?: (...)
| (...); timezone?: (...) | (...) },
{ location_name?: (...) | (...); timezone?: (...) | (...) },
>,
>;
nickname: ZodOptional<ZodString>;
properties: ZodIntersection<
ZodIntersection<
ZodIntersection<
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
>,
ZodObject<
{
akiles_metadata: ...;
assa_abloy_vostio_metadata: ...;
august_metadata: ...;
avigilon_alta_metadata: ...;
brivo_metadata: ...;
controlbyweb_metadata: ...;
dormakaba_oracode_metadata: ...;
ecobee_metadata: ...;
four_suites_metadata: ...;
genie_metadata: ...;
honeywell_resideo_metadata: ...;
hubitat_metadata: ...;
igloo_metadata: ...;
igloohome_metadata: ...;
keynest_metadata: ...;
kwikset_metadata: ...;
lockly_metadata: ...;
minut_metadata: ...;
nest_metadata: ...;
noiseaware_metadata: ...;
nuki_metadata: ...;
salto_ks_metadata: ...;
salto_metadata: ...;
schlage_metadata: ...;
seam_bridge_metadata: ...;
sensi_metadata: ...;
smartthings_metadata: ...;
tado_metadata: ...;
tedee_metadata: ...;
ttlock_metadata: ...;
two_n_metadata: ...;
visionline_metadata: ...;
wyze_metadata: ...;
},
"strip",
ZodTypeAny,
{
akiles_metadata?: ...;
assa_abloy_vostio_metadata?: ...;
august_metadata?: ...;
avigilon_alta_metadata?: ...;
brivo_metadata?: ...;
controlbyweb_metadata?: ...;
dormakaba_oracode_metadata?: ...;
ecobee_metadata?: ...;
four_suites_metadata?: ...;
genie_metadata?: ...;
honeywell_resideo_metadata?: ...;
hubitat_metadata?: ...;
igloo_metadata?: ...;
igloohome_metadata?: ...;
keynest_metadata?: ...;
kwikset_metadata?: ...;
lockly_metadata?: ...;
minut_metadata?: ...;
nest_metadata?: ...;
noiseaware_metadata?: ...;
nuki_metadata?: ...;
salto_ks_metadata?: ...;
salto_metadata?: ...;
schlage_metadata?: ...;
seam_bridge_metadata?: ...;
sensi_metadata?: ...;
smartthings_metadata?: ...;
tado_metadata?: ...;
tedee_metadata?: ...;
ttlock_metadata?: ...;
two_n_metadata?: ...;
visionline_metadata?: ...;
wyze_metadata?: ...;
},
{
akiles_metadata?: ...;
assa_abloy_vostio_metadata?: ...;
august_metadata?: ...;
avigilon_alta_metadata?: ...;
brivo_metadata?: ...;
controlbyweb_metadata?: ...;
dormakaba_oracode_metadata?: ...;
ecobee_metadata?: ...;
four_suites_metadata?: ...;
genie_metadata?: ...;
honeywell_resideo_metadata?: ...;
hubitat_metadata?: ...;
igloo_metadata?: ...;
igloohome_metadata?: ...;
keynest_metadata?: ...;
kwikset_metadata?: ...;
lockly_metadata?: ...;
minut_metadata?: ...;
nest_metadata?: ...;
noiseaware_metadata?: ...;
nuki_metadata?: ...;
salto_ks_metadata?: ...;
salto_metadata?: ...;
schlage_metadata?: ...;
seam_bridge_metadata?: ...;
sensi_metadata?: ...;
smartthings_metadata?: ...;
tado_metadata?: ...;
tedee_metadata?: ...;
ttlock_metadata?: ...;
two_n_metadata?: ...;
visionline_metadata?: ...;
wyze_metadata?: ...;
},
>,
>,
ZodIntersection<
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{
_experimental_supported_code_from_access_codes_lengths?: ...;
code_constraints?: ...;
door_open?: ...;
has_native_entry_events?: ...;
keypad_battery?: ...;
locked?: ...;
max_active_codes_supported?: ...;
supported_code_lengths?: ...;
supports_backup_access_code_pool?: ...;
},
{
_experimental_supported_code_from_access_codes_lengths?: ...;
code_constraints?: ...;
door_open?: ...;
has_native_entry_events?: ...;
keypad_battery?: ...;
locked?: ...;
max_active_codes_supported?: ...;
supported_code_lengths?: ...;
supports_backup_access_code_pool?: ...;
},
>,
ZodObject<
{
active_thermostat_schedule: ...;
active_thermostat_schedule_id: ...;
available_climate_preset_modes: ...;
available_climate_presets: ...;
available_fan_mode_settings: ...;
available_hvac_mode_settings: ...;
current_climate_setting: ...;
default_climate_setting: ...;
fallback_climate_preset_key: ...;
fan_mode_setting: ...;
is_cooling: ...;
is_fan_running: ...;
is_heating: ...;
is_temporary_manual_override_active: ...;
max_cooling_set_point_celsius: ...;
max_cooling_set_point_fahrenheit: ...;
max_heating_set_point_celsius: ...;
max_heating_set_point_fahrenheit: ...;
max_thermostat_daily_program_periods_per_day: ...;
min_cooling_set_point_celsius: ...;
min_cooling_set_point_fahrenheit: ...;
min_heating_cooling_delta_celsius: ...;
min_heating_cooling_delta_fahrenheit: ...;
min_heating_set_point_celsius: ...;
min_heating_set_point_fahrenheit: ...;
relative_humidity: ...;
temperature_celsius: ...;
temperature_fahrenheit: ...;
temperature_threshold: ...;
thermostat_daily_program_period_precision_minutes: ...;
thermostat_daily_programs: ...;
thermostat_weekly_program: ...;
},
"strip",
ZodTypeAny,
{
active_thermostat_schedule?: ...;
active_thermostat_schedule_id?: ...;
available_climate_preset_modes?: ...;
available_climate_presets?: ...;
available_fan_mode_settings?: ...;
available_hvac_mode_settings?: ...;
current_climate_setting?: ...;
default_climate_setting?: ...;
fallback_climate_preset_key?: ...;
fan_mode_setting?: ...;
is_cooling?: ...;
is_fan_running?: ...;
is_heating?: ...;
is_temporary_manual_override_active?: ...;
max_cooling_set_point_celsius?: ...;
max_cooling_set_point_fahrenheit?: ...;
max_heating_set_point_celsius?: ...;
max_heating_set_point_fahrenheit?: ...;
max_thermostat_daily_program_periods_per_day?: ...;
min_cooling_set_point_celsius?: ...;
min_cooling_set_point_fahrenheit?: ...;
min_heating_cooling_delta_celsius?: ...;
min_heating_cooling_delta_fahrenheit?: ...;
min_heating_set_point_celsius?: ...;
min_heating_set_point_fahrenheit?: ...;
relative_humidity?: ...;
temperature_celsius?: ...;
temperature_fahrenheit?: ...;
temperature_threshold?: ...;
thermostat_daily_program_period_precision_minutes?: ...;
thermostat_daily_programs?: ...;
thermostat_weekly_program?: ...;
},
{
active_thermostat_schedule?: ...;
active_thermostat_schedule_id?: ...;
available_climate_preset_modes?: ...;
available_climate_presets?: ...;
available_fan_mode_settings?: ...;
available_hvac_mode_settings?: ...;
current_climate_setting?: ...;
default_climate_setting?: ...;
fallback_climate_preset_key?: ...;
fan_mode_setting?: ...;
is_cooling?: ...;
is_fan_running?: ...;
is_heating?: ...;
is_temporary_manual_override_active?: ...;
max_cooling_set_point_celsius?: ...;
max_cooling_set_point_fahrenheit?: ...;
max_heating_set_point_celsius?: ...;
max_heating_set_point_fahrenheit?: ...;
max_thermostat_daily_program_periods_per_day?: ...;
min_cooling_set_point_celsius?: ...;
min_cooling_set_point_fahrenheit?: ...;
min_heating_cooling_delta_celsius?: ...;
min_heating_cooling_delta_fahrenheit?: ...;
min_heating_set_point_celsius?: ...;
min_heating_set_point_fahrenheit?: ...;
relative_humidity?: ...;
temperature_celsius?: ...;
temperature_fahrenheit?: ...;
temperature_threshold?: ...;
thermostat_daily_program_period_precision_minutes?: ...;
thermostat_daily_programs?: ...;
thermostat_weekly_program?: ...;
},
>,
>,
>;
warnings: ZodArray<
ZodDiscriminatedUnion<
"warning_code",
[
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
],
>,
"many",
>;
workspace_id: ZodString;
} & {
can_hvac_cool: ZodOptional<ZodBoolean>;
can_hvac_heat: ZodOptional<ZodBoolean>;
can_hvac_heat_cool: ZodOptional<ZodBoolean>;
can_program_offline_access_codes: ZodOptional<ZodBoolean>;
can_program_online_access_codes: ZodOptional<ZodBoolean>;
can_remotely_lock: ZodOptional<ZodBoolean>;
can_remotely_unlock: ZodOptional<ZodBoolean>;
can_run_thermostat_programs: ZodOptional<ZodBoolean>;
can_simulate_connection: ZodOptional<ZodBoolean>;
can_simulate_disconnection: ZodOptional<ZodBoolean>;
can_simulate_hub_connection: ZodOptional<ZodBoolean>;
can_simulate_hub_disconnection: ZodOptional<ZodBoolean>;
can_simulate_paid_subscription: ZodOptional<ZodBoolean>;
can_simulate_removal: ZodOptional<ZodBoolean>;
can_turn_off_hvac: ZodOptional<ZodBoolean>;
can_unlock_with_code: ZodOptional<ZodBoolean>;
},
"strip",
ZodTypeAny,
{
can_hvac_cool?: boolean;
can_hvac_heat?: boolean;
can_hvac_heat_cool?: boolean;
can_program_offline_access_codes?: boolean;
can_program_online_access_codes?: boolean;
can_remotely_lock?: boolean;
can_remotely_unlock?: boolean;
can_run_thermostat_programs?: boolean;
can_simulate_connection?: boolean;
can_simulate_disconnection?: boolean;
can_simulate_hub_connection?: boolean;
can_simulate_hub_disconnection?: boolean;
can_simulate_paid_subscription?: boolean;
can_simulate_removal?: boolean;
can_turn_off_hvac?: boolean;
can_unlock_with_code?: boolean;
capabilities_supported: (
| "access_code"
| "lock"
| "noise_detection"
| "thermostat"
| "battery"
| "phone"
)[];
connected_account_id: string;
created_at: string;
custom_metadata: Record<string, string | boolean>;
device_id: string;
device_type:
| LockDeviceTypeFromMapping
| NoiseSensorDeviceTypeFromMapping
| ThermostatDeviceTypeFromMapping
| PhoneDeviceTypeFromMapping;
display_name: string;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: { sites: (...)[] };
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
)[];
is_managed: true;
location: null
| { location_name?: string; timezone?: string };
nickname?: string;
properties: {
accessory_keypad?: {
battery?: (...) | (...);
is_connected: boolean;
};
appearance: { name: string };
battery?: { level: number; status: (...) | (...) | (...) | (...) };
battery_level?: number;
currently_triggering_noise_threshold_ids?: string[];
has_direct_power?: boolean;
image_alt_text?: string;
image_url?: string;
manufacturer?: string;
model: {
accessory_keypad_supported?: boolean;
can_connect_accessory_keypad?: boolean;
display_name: string;
has_built_in_keypad?: boolean;
manufacturer_display_name: string;
offline_access_codes_supported?: boolean;
online_access_codes_supported?: boolean;
};
name: string;
noise_level_decibels?: number;
offline_access_codes_enabled?: boolean;
online: boolean;
online_access_codes_enabled?: boolean;
serial_number?: string;
supports_accessory_keypad?: boolean;
supports_offline_access_codes?: boolean;
} & {
assa_abloy_credential_service_metadata?: {
endpoints: (...)[];
has_active_endpoint: boolean;
};
salto_space_credential_service_metadata?: {
has_active_phone: boolean;
};
} & {
akiles_metadata?: {
_member_group_id?: (...)
| (...);
gadget_id: string;
gadget_name: string;
product_name: string;
};
assa_abloy_vostio_metadata?: { encoder_name: string };
august_metadata?: {
has_keypad: boolean;
house_id?: (...) | (...);
house_name: string;
keypad_battery_level?: (...) | (...);
lock_id: string;
lock_name: string;
model?: (...) | (...);
};
avigilon_alta_metadata?: {
entry_name: string;
entry_relays_total_count: number;
org_name: string;
site_id: number;
site_name: string;
zone_id: number;
zone_name: string;
};
brivo_metadata?: {
activation_enabled?: (...)
| (...)
| (...);
device_name?: (...) | (...);
};
controlbyweb_metadata?: {
device_id: string;
device_name: string;
relay_name: (...)
| (...);
};
dormakaba_oracode_metadata?: {
device_id?: (...)
| (...)
| (...);
door_id?: (...) | (...);
door_is_wireless: boolean;
door_name: string;
iana_timezone?: (...) | (...);
predefined_time_slots?: (...) | (...);
site_id: (...) | (...);
site_name: string;
};
ecobee_metadata?: { device_name: string; ecobee_device_id: string };
four_suites_metadata?: {
device_id: number;
device_name: string;
reclose_delay_in_seconds: number;
};
genie_metadata?: { device_name: string; door_name: string };
honeywell_resideo_metadata?: {
device_name: string;
honeywell_resideo_device_id: string;
};
hubitat_metadata?: {
device_id: string;
device_label: string;
device_name: string;
};
igloo_metadata?: {
bridge_id: string;
device_id: string;
model?: (...)
| (...);
};
igloohome_metadata?: {
bridge_id?: (...)
| (...);
bridge_name?: (...) | (...);
device_id: string;
device_name: string;
is_keypad_linked_to_bridge?: (...) | (...) | (...);
keypad_id?: (...) | (...);
};
keynest_metadata?: { device_name?: (...)
| (...) };
kwikset_metadata?: {
device_id: string;
device_name: string;
model_number: string;
};
lockly_metadata?: {
device_id: string;
device_name: string;
model?: (...)
| (...);
};
minut_metadata?: {
device_id: string;
device_name: string;
latest_sensor_values: {
accelerometer_z: ...;
humidity: ...;
pressure: ...;
sound: ...;
temperature: ...;
};
};
nest_metadata?: {
device_custom_name: string;
device_name: string;
display_name?: (...)
| (...);
nest_device_id: string;
};
noiseaware_metadata?: {
device_id: string;
device_model: (...)
| (...);
device_name: string;
noise_level_decibel: number;
noise_level_nrs: number;
};
nuki_metadata?: {
device_id: string;
device_name: string;
keypad_2_paired?: (...)
| (...)
| (...);
keypad_battery_critical?: (...) | (...) | (...);
keypad_paired?: (...) | (...) | (...);
};
salto_ks_metadata?: {
battery_level: string;
customer_reference: string;
lock_id: string;
lock_type: string;
locked_state: string;
model?: (...)
| (...);
};
salto_metadata?: {
battery_level: string;
customer_reference: string;
lock_id: string;
lock_type: string;
locked_state: string;
model?: (...)
| (...);
};
schlage_metadata?: {
device_id: string;
device_name: string;
model?: (...)
| (...);
};
seam_bridge_metadata?: {
device_num: number;
name: string;
unlock_method?: (...)
| (...)
| (...);
};
sensi_metadata?: {
device_id: string;
device_name: string;
product_type: string;
};
smartthings_metadata?: {
device_id: string;
device_name: string;
location_id?: (...)
| (...);
model?: (...) | (...);
};
tado_metadata?: { device_type: string; serial_no: string };
tedee_metadata?: {
bridge_id: number;
bridge_name: string;
device_id: number;
device_model: string;
device_name: string;
keypad_id?: (...) | (...);
serial_number: string;
};
ttlock_metadata?: {
feature_value: string;
features: {
incomplete_keyboard_passcode: ...;
lock_command: ...;
passcode: ...;
passcode_management: ...;
unlock_via_gateway: ...;
wifi: ...;
};
has_gateway?: (...)
| (...)
| (...);
lock_alias: string;
lock_id: number;
wireless_keypads?: (...) | (...);
};
two_n_metadata?: { device_id: number; device_name: string };
visionline_metadata?: { encoder_id: string };
wyze_metadata?: {
device_id: string;
device_info_model: string;
device_name: string;
keypad_uuid?: (...) | (...);
locker_status_hardlock?: (...) | (...);
product_model: string;
product_name: string;
product_type: string;
};
} & {
_experimental_supported_code_from_access_codes_lengths?: number[];
code_constraints?: ((...) | (...))[];
door_open?: boolean;
has_native_entry_events?: boolean;
keypad_battery?: { level: number };
locked?: boolean;
max_active_codes_supported?: number;
supported_code_lengths?: number[];
supports_backup_access_code_pool?: boolean;
} & {
active_thermostat_schedule?: | null
| {
climate_preset_key: string;
created_at: string;
device_id: string;
ends_at: string;
errors: (...)[];
is_override_allowed?: (...) | (...) | (...);
max_override_period_minutes?: (...) | (...) | (...);
name: (...) | (...);
starts_at: string;
thermostat_schedule_id: string;
workspace_id: string;
};
active_thermostat_schedule_id?: null
| string;
available_climate_preset_modes?: (
(...)
| (...)
| (...)
| (...)
| (...)
| (...)
)[];
available_climate_presets?: {
can_delete: ...;
can_edit: ...;
can_program: ...;
climate_preset_key: ...;
climate_preset_mode?: ...;
cooling_set_point_celsius?: ...;
cooling_set_point_fahrenheit?: ...;
display_name: ...;
ecobee_metadata?: ...;
fan_mode_setting?: ...;
heating_set_point_celsius?: ...;
heating_set_point_fahrenheit?: ...;
hvac_mode_setting?: ...;
manual_override_allowed: ...;
name?: ...;
}[];
available_fan_mode_settings?: ((...) | (...) | (...))[];
available_hvac_mode_settings?: (
(...)
| (...)
| (...)
| (...)
| (...)
)[];
current_climate_setting?: {
can_delete?: (...) | (...) | (...);
can_edit?: (...) | (...) | (...);
can_program?: (...) | (...) | (...);
climate_preset_key?: (...) | (...);
climate_preset_mode?:
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...);
cooling_set_point_celsius?: (...) | (...);
cooling_set_point_fahrenheit?: (...) | (...);
display_name?: (...) | (...);
ecobee_metadata?: (...) | (...);
fan_mode_setting?: (...) | (...) | (...) | (...);
heating_set_point_celsius?: (...) | (...);
heating_set_point_fahrenheit?: (...) | (...);
hvac_mode_setting?: (...) | (...) | (...) | (...) | (...) | (...);
manual_override_allowed?: (...) | (...) | (...);
name?: (...) | (...) | (...);
};
default_climate_setting?: {
can_delete?: (...)
| (...)
| (...);
can_edit?: (...) | (...) | (...);
can_program?: (...) | (...) | (...);
climate_preset_key?: (...) | (...);
climate_preset_mode?:
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...);
cooling_set_point_celsius?: (...) | (...);
cooling_set_point_fahrenheit?: (...) | (...);
display_name?: (...) | (...);
ecobee_metadata?: (...) | (...);
fan_mode_setting?: (...) | (...) | (...) | (...);
heating_set_point_celsius?: (...) | (...);
heating_set_point_fahrenheit?: (...) | (...);
hvac_mode_setting?: (...) | (...) | (...) | (...) | (...) | (...);
manual_override_allowed?: (...) | (...) | (...);
name?: (...) | (...) | (...);
};
fallback_climate_preset_key?: null
| string;
fan_mode_setting?: "auto" | "on" | "circulate";
is_cooling?: boolean;
is_fan_running?: boolean;
is_heating?: boolean;
is_temporary_manual_override_active?: boolean;
max_cooling_set_point_celsius?: number;
max_cooling_set_point_fahrenheit?: number;
max_heating_set_point_celsius?: number;
max_heating_set_point_fahrenheit?: number;
max_thermostat_daily_program_periods_per_day?: number;
min_cooling_set_point_celsius?: number;
min_cooling_set_point_fahrenheit?: number;
min_heating_cooling_delta_celsius?: number;
min_heating_cooling_delta_fahrenheit?: number;
min_heating_set_point_celsius?: number;
min_heating_set_point_fahrenheit?: number;
relative_humidity?: number;
temperature_celsius?: number;
temperature_fahrenheit?: number;
temperature_threshold?: {
lower_limit_celsius: (...) | (...);
lower_limit_fahrenheit: (...) | (...);
upper_limit_celsius: (...) | (...);
upper_limit_fahrenheit: (...) | (...);
};
thermostat_daily_program_period_precision_minutes?: number;
thermostat_daily_programs?: {
created_at: ...;
device_id: ...;
name: ...;
periods: ...;
thermostat_daily_program_id: ...;
workspace_id: ...;
}[];
thermostat_weekly_program?: | null
| {
created_at: string;
friday_program_id: (...)
| (...);
monday_program_id: (...) | (...);
saturday_program_id: (...) | (...);
sunday_program_id: (...) | (...);
thursday_program_id: (...) | (...);
tuesday_program_id: (...) | (...);
wednesday_program_id: (...) | (...);
};
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "partial_backup_access_code_pool";
}
| {
created_at: string;
message: string;
warning_code: "many_active_backup_codes";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_office_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_privacy_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_subscription_limit_almost_reached";
}
| {
created_at: string;
message: string;
warning_code: "wyze_device_missing_gateway";
}
| {
created_at: string;
message: string;
warning_code: "functional_offline_device";
}
| {
created_at: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_lock_gateway_unlocking_not_enabled";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_weak_gateway_signal";
}
| {
created_at: string;
message: string;
warning_code: "power_saving_mode";
}
| {
created_at: string;
message: string;
warning_code: "temperature_threshold_exceeded";
}
| {
created_at: string;
message: string;
warning_code: "device_communication_degraded";
}
| {
created_at: string;
message: string;
warning_code: "scheduled_maintenance_window";
}
| {
created_at: string;
message: string;
warning_code: "device_has_flaky_connection";
}
| {
created_at: string;
message: string;
warning_code: "lockly_time_zone_not_configured";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_phone";
}
)[];
workspace_id: string;
},
{
can_hvac_cool?: boolean;
can_hvac_heat?: boolean;
can_hvac_heat_cool?: boolean;
can_program_offline_access_codes?: boolean;
can_program_online_access_codes?: boolean;
can_remotely_lock?: boolean;
can_remotely_unlock?: boolean;
can_run_thermostat_programs?: boolean;
can_simulate_connection?: boolean;
can_simulate_disconnection?: boolean;
can_simulate_hub_connection?: boolean;
can_simulate_hub_disconnection?: boolean;
can_simulate_paid_subscription?: boolean;
can_simulate_removal?: boolean;
can_turn_off_hvac?: boolean;
can_unlock_with_code?: boolean;
capabilities_supported: (
| "access_code"
| "lock"
| "noise_detection"
| "thermostat"
| "battery"
| "phone"
)[];
connected_account_id: string;
created_at: string;
custom_metadata: Record<string, string | boolean>;
device_id: string;
device_type:
| LockDeviceTypeFromMapping
| NoiseSensorDeviceTypeFromMapping
| ThermostatDeviceTypeFromMapping
| PhoneDeviceTypeFromMapping;
display_name: string;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: { sites: (...)[] };
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
)[];
is_managed: true;
location: null
| { location_name?: string; timezone?: string };
nickname?: string;
properties: {
accessory_keypad?: {
battery?: (...) | (...);
is_connected: boolean;
};
appearance: { name: string };
battery?: { level: number; status: (...) | (...) | (...) | (...) };
battery_level?: number;
currently_triggering_noise_threshold_ids?: string[];
has_direct_power?: boolean;
image_alt_text?: string;
image_url?: string;
manufacturer?: string;
model: {
accessory_keypad_supported?: boolean;
can_connect_accessory_keypad?: boolean;
display_name: string;
has_built_in_keypad?: boolean;
manufacturer_display_name: string;
offline_access_codes_supported?: boolean;
online_access_codes_supported?: boolean;
};
name: string;
noise_level_decibels?: number;
offline_access_codes_enabled?: boolean;
online: boolean;
online_access_codes_enabled?: boolean;
serial_number?: string;
supports_accessory_keypad?: boolean;
supports_offline_access_codes?: boolean;
} & {
assa_abloy_credential_service_metadata?: {
endpoints: (...)[];
has_active_endpoint: boolean;
};
salto_space_credential_service_metadata?: {
has_active_phone: boolean;
};
} & {
akiles_metadata?: {
_member_group_id?: (...)
| (...);
gadget_id: string;
gadget_name: string;
product_name: string;
};
assa_abloy_vostio_metadata?: { encoder_name: string };
august_metadata?: {
has_keypad: boolean;
house_id?: (...) | (...);
house_name: string;
keypad_battery_level?: (...) | (...);
lock_id: string;
lock_name: string;
model?: (...) | (...);
};
avigilon_alta_metadata?: {
entry_name: string;
entry_relays_total_count: number;
org_name: string;
site_id: number;
site_name: string;
zone_id: number;
zone_name: string;
};
brivo_metadata?: {
activation_enabled?: (...)
| (...)
| (...);
device_name?: (...) | (...);
};
controlbyweb_metadata?: {
device_id: string;
device_name: string;
relay_name: (...)
| (...);
};
dormakaba_oracode_metadata?: {
device_id?: (...)
| (...)
| (...);
door_id?: (...) | (...);
door_is_wireless: boolean;
door_name: string;
iana_timezone?: (...) | (...);
predefined_time_slots?: (...) | (...);
site_id: (...) | (...);
site_name: string;
};
ecobee_metadata?: { device_name: string; ecobee_device_id: string };
four_suites_metadata?: {
device_id: number;
device_name: string;
reclose_delay_in_seconds: number;
};
genie_metadata?: { device_name: string; door_name: string };
honeywell_resideo_metadata?: {
device_name: string;
honeywell_resideo_device_id: string;
};
hubitat_metadata?: {
device_id: string;
device_label: string;
device_name: string;
};
igloo_metadata?: {
bridge_id: string;
device_id: string;
model?: (...)
| (...);
};
igloohome_metadata?: {
bridge_id?: (...)
| (...);
bridge_name?: (...) | (...);
device_id: string;
device_name: string;
is_keypad_linked_to_bridge?: (...) | (...) | (...);
keypad_id?: (...) | (...);
};
keynest_metadata?: { device_name?: (...)
| (...) };
kwikset_metadata?: {
device_id: string;
device_name: string;
model_number: string;
};
lockly_metadata?: {
device_id: string;
device_name: string;
model?: (...)
| (...);
};
minut_metadata?: {
device_id: string;
device_name: string;
latest_sensor_values: {
accelerometer_z: ...;
humidity: ...;
pressure: ...;
sound: ...;
temperature: ...;
};
};
nest_metadata?: {
device_custom_name: string;
device_name: string;
display_name?: (...)
| (...);
nest_device_id: string;
};
noiseaware_metadata?: {
device_id: string;
device_model: (...)
| (...);
device_name: string;
noise_level_decibel: number;
noise_level_nrs: number;
};
nuki_metadata?: {
device_id: string;
device_name: string;
keypad_2_paired?: (...)
| (...)
| (...);
keypad_battery_critical?: (...) | (...) | (...);
keypad_paired?: (...) | (...) | (...);
};
salto_ks_metadata?: {
battery_level: string;
customer_reference: string;
lock_id: string;
lock_type: string;
locked_state: string;
model?: (...)
| (...);
};
salto_metadata?: {
battery_level: string;
customer_reference: string;
lock_id: string;
lock_type: string;
locked_state: string;
model?: (...)
| (...);
};
schlage_metadata?: {
device_id: string;
device_name: string;
model?: (...)
| (...);
};
seam_bridge_metadata?: {
device_num: number;
name: string;
unlock_method?: (...)
| (...)
| (...);
};
sensi_metadata?: {
device_id: string;
device_name: string;
product_type: string;
};
smartthings_metadata?: {
device_id: string;
device_name: string;
location_id?: (...)
| (...);
model?: (...) | (...);
};
tado_metadata?: { device_type: string; serial_no: string };
tedee_metadata?: {
bridge_id: number;
bridge_name: string;
device_id: number;
device_model: string;
device_name: string;
keypad_id?: (...) | (...);
serial_number: string;
};
ttlock_metadata?: {
feature_value: string;
features: {
incomplete_keyboard_passcode: ...;
lock_command: ...;
passcode: ...;
passcode_management: ...;
unlock_via_gateway: ...;
wifi: ...;
};
has_gateway?: (...)
| (...)
| (...);
lock_alias: string;
lock_id: number;
wireless_keypads?: (...) | (...);
};
two_n_metadata?: { device_id: number; device_name: string };
visionline_metadata?: { encoder_id: string };
wyze_metadata?: {
device_id: string;
device_info_model: string;
device_name: string;
keypad_uuid?: (...) | (...);
locker_status_hardlock?: (...) | (...);
product_model: string;
product_name: string;
product_type: string;
};
} & {
_experimental_supported_code_from_access_codes_lengths?: number[];
code_constraints?: ((...) | (...))[];
door_open?: boolean;
has_native_entry_events?: boolean;
keypad_battery?: { level: number };
locked?: boolean;
max_active_codes_supported?: number;
supported_code_lengths?: number[];
supports_backup_access_code_pool?: boolean;
} & {
active_thermostat_schedule?: | null
| {
climate_preset_key: string;
created_at: string;
device_id: string;
ends_at: string;
errors: (...)[];
is_override_allowed?: (...) | (...) | (...);
max_override_period_minutes?: (...) | (...) | (...);
name: (...) | (...);
starts_at: string;
thermostat_schedule_id: string;
workspace_id: string;
};
active_thermostat_schedule_id?: null
| string;
available_climate_preset_modes?: (
(...)
| (...)
| (...)
| (...)
| (...)
| (...)
)[];
available_climate_presets?: {
can_delete: ...;
can_edit: ...;
can_program: ...;
climate_preset_key: ...;
climate_preset_mode?: ...;
cooling_set_point_celsius?: ...;
cooling_set_point_fahrenheit?: ...;
display_name: ...;
ecobee_metadata?: ...;
fan_mode_setting?: ...;
heating_set_point_celsius?: ...;
heating_set_point_fahrenheit?: ...;
hvac_mode_setting?: ...;
manual_override_allowed: ...;
name?: ...;
}[];
available_fan_mode_settings?: ((...) | (...) | (...))[];
available_hvac_mode_settings?: (
(...)
| (...)
| (...)
| (...)
| (...)
)[];
current_climate_setting?: {
can_delete?: (...) | (...) | (...);
can_edit?: (...) | (...) | (...);
can_program?: (...) | (...) | (...);
climate_preset_key?: (...) | (...);
climate_preset_mode?:
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...);
cooling_set_point_celsius?: (...) | (...);
cooling_set_point_fahrenheit?: (...) | (...);
display_name?: (...) | (...);
ecobee_metadata?: (...) | (...);
fan_mode_setting?: (...) | (...) | (...) | (...);
heating_set_point_celsius?: (...) | (...);
heating_set_point_fahrenheit?: (...) | (...);
hvac_mode_setting?: (...) | (...) | (...) | (...) | (...) | (...);
manual_override_allowed?: (...) | (...) | (...);
name?: (...) | (...) | (...);
};
default_climate_setting?: {
can_delete?: (...)
| (...)
| (...);
can_edit?: (...) | (...) | (...);
can_program?: (...) | (...) | (...);
climate_preset_key?: (...) | (...);
climate_preset_mode?:
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...);
cooling_set_point_celsius?: (...) | (...);
cooling_set_point_fahrenheit?: (...) | (...);
display_name?: (...) | (...);
ecobee_metadata?: (...) | (...);
fan_mode_setting?: (...) | (...) | (...) | (...);
heating_set_point_celsius?: (...) | (...);
heating_set_point_fahrenheit?: (...) | (...);
hvac_mode_setting?: (...) | (...) | (...) | (...) | (...) | (...);
manual_override_allowed?: (...) | (...) | (...);
name?: (...) | (...) | (...);
};
fallback_climate_preset_key?: null
| string;
fan_mode_setting?: "auto" | "on" | "circulate";
is_cooling?: boolean;
is_fan_running?: boolean;
is_heating?: boolean;
is_temporary_manual_override_active?: boolean;
max_cooling_set_point_celsius?: number;
max_cooling_set_point_fahrenheit?: number;
max_heating_set_point_celsius?: number;
max_heating_set_point_fahrenheit?: number;
max_thermostat_daily_program_periods_per_day?: number;
min_cooling_set_point_celsius?: number;
min_cooling_set_point_fahrenheit?: number;
min_heating_cooling_delta_celsius?: number;
min_heating_cooling_delta_fahrenheit?: number;
min_heating_set_point_celsius?: number;
min_heating_set_point_fahrenheit?: number;
relative_humidity?: number;
temperature_celsius?: number;
temperature_fahrenheit?: number;
temperature_threshold?: {
lower_limit_celsius: (...) | (...);
lower_limit_fahrenheit: (...) | (...);
upper_limit_celsius: (...) | (...);
upper_limit_fahrenheit: (...) | (...);
};
thermostat_daily_program_period_precision_minutes?: number;
thermostat_daily_programs?: {
created_at: ...;
device_id: ...;
name: ...;
periods: ...;
thermostat_daily_program_id: ...;
workspace_id: ...;
}[];
thermostat_weekly_program?: | null
| {
created_at: string;
friday_program_id: (...)
| (...);
monday_program_id: (...) | (...);
saturday_program_id: (...) | (...);
sunday_program_id: (...) | (...);
thursday_program_id: (...) | (...);
tuesday_program_id: (...) | (...);
wednesday_program_id: (...) | (...);
};
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "partial_backup_access_code_pool";
}
| {
created_at: string;
message: string;
warning_code: "many_active_backup_codes";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_office_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_privacy_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_subscription_limit_almost_reached";
}
| {
created_at: string;
message: string;
warning_code: "wyze_device_missing_gateway";
}
| {
created_at: string;
message: string;
warning_code: "functional_offline_device";
}
| {
created_at: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_lock_gateway_unlocking_not_enabled";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_weak_gateway_signal";
}
| {
created_at: string;
message: string;
warning_code: "power_saving_mode";
}
| {
created_at: string;
message: string;
warning_code: "temperature_threshold_exceeded";
}
| {
created_at: string;
message: string;
warning_code: "device_communication_degraded";
}
| {
created_at: string;
message: string;
warning_code: "scheduled_maintenance_window";
}
| {
created_at: string;
message: string;
warning_code: "device_has_flaky_connection";
}
| {
created_at: string;
message: string;
warning_code: "lockly_time_zone_not_configured";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_phone";
}
)[];
workspace_id: string;
},
>,
"many",
>,
>;
events: ZodOptional<
ZodArray<
ZodDiscriminatedUnion<
"event_type",
[
ZodObject<
{
created_at: ZodString;
event_id: ZodString;
occurred_at: ZodString;
workspace_id: ZodString;
} & {
access_code_id: ZodString;
connected_account_custom_metadata: ZodOptional<
ZodRecord<(...), (...)>,
>;
connected_account_id: ZodString;
device_custom_metadata: ZodOptional<ZodRecord<(...), (...)>>;
device_id: ZodString;
} & { event_type: ZodLiteral<"access_code.created"> },
"strip",
ZodTypeAny,
{
access_code_id: string;
connected_account_custom_metadata?: Record<
string,
(...)
| (...)
| (...),
>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, (...) | (...) | (...)>;
device_id: string;
event_id: string;
event_type: "access_code.created";
occurred_at: string;
workspace_id: string;
},
{
access_code_id: string;
connected_account_custom_metadata?: Record<
string,
(...)
| (...)
| (...),
>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, (...) | (...) | (...)>;
device_id: string;
event_id: string;
event_type: "access_code.created";
occurred_at: string;
workspace_id: string;
},
>,
ZodObject<
{
created_at: ZodString;
event_id: ZodString;
occurred_at: ZodString;
workspace_id: ZodString;
} & {
access_code_id: ZodString;
connected_account_custom_metadata: ZodOptional<
ZodRecord<(...), (...)>,
>;
connected_account_id: ZodString;
device_custom_metadata: ZodOptional<ZodRecord<(...), (...)>>;
device_id: ZodString;
} & { event_type: ZodLiteral<"access_code.changed"> },
"strip",
ZodTypeAny,
{
access_code_id: string;
connected_account_custom_metadata?: Record<
string,
(...)
| (...)
| (...),
>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, (...) | (...) | (...)>;
device_id: string;
event_id: string;
event_type: "access_code.changed";
occurred_at: string;
workspace_id: string;
},
{
access_code_id: string;
connected_account_custom_metadata?: Record<
string,
(...)
| (...)
| (...),
>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, (...) | (...) | (...)>;
device_id: string;
event_id: string;
event_type: "access_code.changed";
occurred_at: string;
workspace_id: string;
},
>,
ZodObject<
{
created_at: ZodString;
event_id: ZodString;
occurred_at: ZodString;
workspace_id: ZodString;
} & {
access_code_id: ZodString;
connected_account_custom_metadata: ZodOptional<
ZodRecord<(...), (...)>,
>;
connected_account_id: ZodString;
device_custom_metadata: ZodOptional<ZodRecord<(...), (...)>>;
device_id: ZodString;
} & {
code: ZodString;
event_type: ZodLiteral<"access_code.scheduled_on_device">;
},
"strip",
ZodTypeAny,
{
access_code_id: string;
code: string;
connected_account_custom_metadata?: Record<
string,
(...)
| (...)
| (...),
>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, (...) | (...) | (...)>;
device_id: string;
event_id: string;
event_type: "access_code.scheduled_on_device";
occurred_at: string;
workspace_id: string;
},
{
access_code_id: string;
code: string;
connected_account_custom_metadata?: Record<
string,
(...)
| (...)
| (...),
>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, (...) | (...) | (...)>;
device_id: string;
event_id: string;
event_type: "access_code.scheduled_on_device";
occurred_at: string;
workspace_id: string;
},
>,
],
>,
"many",
>,
>;
instant_keys: ZodOptional<
ZodArray<
ZodObject<
{
client_session_id: ZodString;
created_at: ZodString;
customization: ZodOptional<
ZodObject<
{
logo_url: ZodOptional<ZodString>;
primary_color: ZodOptional<ZodString>;
secondary_color: ZodOptional<ZodString>;
},
"strip",
ZodTypeAny,
{
logo_url?: string;
primary_color?: string;
secondary_color?: string;
},
{
logo_url?: string;
primary_color?: string;
secondary_color?: string;
},
>,
>;
customization_profile_id: ZodOptional<ZodString>;
expires_at: ZodString;
instant_key_id: ZodString;
instant_key_url: ZodString;
user_identity_id: ZodString;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
client_session_id: string;
created_at: string;
customization?: {
logo_url?: string;
primary_color?: string;
secondary_color?: string;
};
customization_profile_id?: string;
expires_at: string;
instant_key_id: string;
instant_key_url: string;
user_identity_id: string;
workspace_id: string;
},
{
client_session_id: string;
created_at: string;
customization?: {
logo_url?: string;
primary_color?: string;
secondary_color?: string;
};
customization_profile_id?: string;
expires_at: string;
instant_key_id: string;
instant_key_url: string;
user_identity_id: string;
workspace_id: string;
},
>,
"many",
>,
>;
noise_thresholds: ZodOptional<
ZodArray<
ZodObject<
{
device_id: ZodString;
ends_daily_at: ZodString;
name: ZodString;
noise_threshold_decibels: ZodNumber;
noise_threshold_id: ZodString;
noise_threshold_nrs: ZodOptional<ZodNumber>;
starts_daily_at: ZodString;
},
"strip",
ZodTypeAny,
{
device_id: string;
ends_daily_at: string;
name: string;
noise_threshold_decibels: number;
noise_threshold_id: string;
noise_threshold_nrs?: number;
starts_daily_at: string;
},
{
device_id: string;
ends_daily_at: string;
name: string;
noise_threshold_decibels: number;
noise_threshold_id: string;
noise_threshold_nrs?: number;
starts_daily_at: string;
},
>,
"many",
>,
>;
spaces: ZodOptional<
ZodArray<
ZodObject<
{
acs_entrance_count: ZodNumber;
created_at: ZodString;
device_count: ZodNumber;
display_name: ZodString;
name: ZodString;
space_id: ZodString;
space_key: ZodOptional<ZodString>;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
acs_entrance_count: number;
created_at: string;
device_count: number;
display_name: string;
name: string;
space_id: string;
space_key?: string;
workspace_id: string;
},
{
acs_entrance_count: number;
created_at: string;
device_count: number;
display_name: string;
name: string;
space_id: string;
space_key?: string;
workspace_id: string;
},
>,
"many",
>,
>;
thermostat_daily_programs: ZodOptional<
ZodArray<
ZodObject<
{
created_at: ZodString;
device_id: ZodString;
name: ZodNullable<ZodString>;
periods: ZodArray<
ZodObject<
{ climate_preset_key: ZodString; starts_at_time: ZodString },
"strip",
ZodTypeAny,
{ climate_preset_key: string; starts_at_time: string },
{ climate_preset_key: string; starts_at_time: string },
>,
"many",
>;
thermostat_daily_program_id: ZodString;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
created_at: string;
device_id: string;
name: null
| string;
periods: { climate_preset_key: string; starts_at_time: string }[];
thermostat_daily_program_id: string;
workspace_id: string;
},
{
created_at: string;
device_id: string;
name: null
| string;
periods: { climate_preset_key: string; starts_at_time: string }[];
thermostat_daily_program_id: string;
workspace_id: string;
},
>,
"many",
>,
>;
thermostat_schedules: ZodOptional<
ZodArray<
ZodObject<
{
climate_preset_key: ZodString;
created_at: ZodString;
device_id: ZodString;
ends_at: ZodString;
errors: ZodArray<
ZodObject<
{ error_code: ZodString; message: ZodString },
"strip",
ZodTypeAny,
{ error_code: string; message: string },
{ error_code: string; message: string },
>,
"many",
>;
is_override_allowed: ZodOptional<ZodBoolean>;
max_override_period_minutes: ZodOptional<ZodNullable<ZodNumber>>;
name: ZodNullable<ZodString>;
starts_at: ZodString;
thermostat_schedule_id: ZodString;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
climate_preset_key: string;
created_at: string;
device_id: string;
ends_at: string;
errors: { error_code: string; message: string }[];
is_override_allowed?: boolean;
max_override_period_minutes?: null | number;
name: null | string;
starts_at: string;
thermostat_schedule_id: string;
workspace_id: string;
},
{
climate_preset_key: string;
created_at: string;
device_id: string;
ends_at: string;
errors: { error_code: string; message: string }[];
is_override_allowed?: boolean;
max_override_period_minutes?: null | number;
name: null | string;
starts_at: string;
thermostat_schedule_id: string;
workspace_id: string;
},
>,
"many",
>,
>;
unmanaged_access_codes: ZodOptional<
ZodArray<
ZodObject<
{
access_code_id: ZodString;
code: ZodNullable<ZodString>;
created_at: ZodString;
device_id: ZodString;
ends_at: ZodOptional<ZodNullable<ZodString>>;
errors: ZodArray<
ZodDiscriminatedUnion<
"error_code",
[
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
],
>,
"many",
>;
name: ZodNullable<ZodString>;
starts_at: ZodOptional<ZodNullable<ZodString>>;
type: ZodEnum<["time_bound", "ongoing"]>;
warnings: ZodArray<
ZodDiscriminatedUnion<
"warning_code",
[
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
],
>,
"many",
>;
workspace_id: ZodString;
} & { is_managed: ZodLiteral<false>; status: ZodEnum<["set"]> },
"strip",
ZodTypeAny,
{
access_code_id: string;
code: null | string;
created_at: string;
device_id: string;
ends_at?: null | string;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: { sites: (...)[] };
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_access_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_after_multiple_retries";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "code_modified_external_to_seam";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_set_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_remove_from_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_attempt_prevented";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "no_space_for_access_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_too_many_pending_jobs";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_deletion";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_offline_access_code_no_variance_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_invalid_code_length";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_slots_full";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_temporarily_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_missing_keypad";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "salto_ks_user_not_subscribed";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_no_free_positions_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_no_free_slots_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_duplicate_code_name";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_potential_duplicate_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "dormakaba_oracode_no_valid_user_level";
is_access_code_error: true;
message: string;
}
)[];
is_managed: false;
name: null
| string;
starts_at?: null | string;
status: "set";
type: "time_bound" | "ongoing";
warnings: (
| {
created_at?: string;
message: string;
warning_code: "smartthings_failed_to_set_access_code";
}
| {
created_at?: string;
message: string;
warning_code: "august_device_programming_delay";
}
| {
created_at?: string;
message: string;
warning_code: "august_lock_temporarily_offline";
}
| {
created_at?: string;
message: string;
warning_code: "code_modified_external_to_seam";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_detected_duplicate";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_creation_outage";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_setting_on_device";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_removing_from_device";
}
| {
created_at?: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at?: string;
message: string;
warning_code: "igloo_algopin_must_be_used_within_24_hours";
}
| {
created_at?: string;
message: string;
warning_code: "management_transferred";
}
| {
created_at?: string;
message: string;
warning_code: "kwikset_unable_to_confirm_code";
}
)[];
workspace_id: string;
},
{
access_code_id: string;
code: null
| string;
created_at: string;
device_id: string;
ends_at?: null | string;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: { sites: (...)[] };
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_access_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_after_multiple_retries";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "code_modified_external_to_seam";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_set_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_remove_from_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_attempt_prevented";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "no_space_for_access_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_too_many_pending_jobs";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_deletion";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_offline_access_code_no_variance_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_invalid_code_length";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_slots_full";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_temporarily_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_missing_keypad";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "salto_ks_user_not_subscribed";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_no_free_positions_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_no_free_slots_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_duplicate_code_name";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_potential_duplicate_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "dormakaba_oracode_no_valid_user_level";
is_access_code_error: true;
message: string;
}
)[];
is_managed: false;
name: null
| string;
starts_at?: null | string;
status: "set";
type: "time_bound" | "ongoing";
warnings: (
| {
created_at?: string;
message: string;
warning_code: "smartthings_failed_to_set_access_code";
}
| {
created_at?: string;
message: string;
warning_code: "august_device_programming_delay";
}
| {
created_at?: string;
message: string;
warning_code: "august_lock_temporarily_offline";
}
| {
created_at?: string;
message: string;
warning_code: "code_modified_external_to_seam";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_detected_duplicate";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_creation_outage";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_setting_on_device";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_removing_from_device";
}
| {
created_at?: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at?: string;
message: string;
warning_code: "igloo_algopin_must_be_used_within_24_hours";
}
| {
created_at?: string;
message: string;
warning_code: "management_transferred";
}
| {
created_at?: string;
message: string;
warning_code: "kwikset_unable_to_confirm_code";
}
)[];
workspace_id: string;
},
>,
"many",
>,
>;
unmanaged_acs_access_groups: ZodOptional<
ZodArray<
ZodObject<
{
access_group_type: ZodEnum<
[
"pti_unit",
"pti_access_level",
"salto_ks_access_group",
"brivo_group",
"salto_space_group",
"dormakaba_community_access_group",
"dormakaba_ambiance_access_group",
],
>;
access_group_type_display_name: ZodString;
acs_access_group_id: ZodString;
acs_system_id: ZodString;
connected_account_id: ZodString;
created_at: ZodString;
display_name: ZodString;
external_type: ZodEnum<
[
"pti_unit",
"pti_access_level",
"salto_ks_access_group",
"brivo_group",
"salto_space_group",
"dormakaba_community_access_group",
"dormakaba_ambiance_access_group",
],
>;
external_type_display_name: ZodString;
name: ZodString;
warnings: ZodArray<
ZodObject<
{ created_at: ...; message: ... } & { warning_code: ... },
"strip",
ZodTypeAny,
{
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_access_group";
},
{
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_access_group";
},
>,
"many",
>;
workspace_id: ZodString;
} & { is_managed: ZodLiteral<false> },
"strip",
ZodTypeAny,
{
access_group_type:
| "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
access_group_type_display_name: string;
acs_access_group_id: string;
acs_system_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
external_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
external_type_display_name: string;
is_managed: false;
name: string;
warnings: {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_access_group";
}[];
workspace_id: string;
},
{
access_group_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
access_group_type_display_name: string;
acs_access_group_id: string;
acs_system_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
external_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
external_type_display_name: string;
is_managed: false;
name: string;
warnings: {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_access_group";
}[];
workspace_id: string;
},
>,
"many",
>,
>;
unmanaged_acs_credentials: ZodOptional<
ZodArray<
ZodObject<
{
access_method: ZodEnum<["code", "card", "mobile_key"]>;
acs_credential_id: ZodString;
acs_credential_pool_id: ZodOptional<ZodString>;
acs_system_id: ZodString;
acs_user_id: ZodOptional<ZodString>;
assa_abloy_vostio_metadata: ZodOptional<
ZodObject<
{
auto_join: ZodOptional<(...)>;
door_names: ZodOptional<(...)>;
endpoint_id: ZodOptional<(...)>;
key_id: ZodOptional<(...)>;
key_issuing_request_id: ZodOptional<(...)>;
override_guest_acs_entrance_ids: ZodOptional<(...)>;
},
"strip",
ZodTypeAny,
{
auto_join?: (...)
| (...)
| (...);
door_names?: (...) | (...);
endpoint_id?: (...) | (...);
key_id?: (...) | (...);
key_issuing_request_id?: (...) | (...);
override_guest_acs_entrance_ids?: (...) | (...);
},
{
auto_join?: (...)
| (...)
| (...);
door_names?: (...) | (...);
endpoint_id?: (...) | (...);
key_id?: (...) | (...);
key_issuing_request_id?: (...) | (...);
override_guest_acs_entrance_ids?: (...) | (...);
},
>,
>;
card_number: ZodNullable<ZodOptional<ZodString>>;
code: ZodNullable<ZodOptional<ZodString>>;
connected_account_id: ZodString;
created_at: ZodString;
display_name: ZodString;
ends_at: ZodOptional<ZodString>;
errors: ZodArray<
ZodObject<
{ error_code: ZodString; message: ZodString },
"strip",
ZodTypeAny,
{ error_code: string; message: string },
{ error_code: string; message: string },
>,
"many",
>;
external_type: ZodOptional<
ZodEnum<
[
"pti_card",
"brivo_credential",
"hid_credential",
"visionline_card",
"salto_ks_credential",
"assa_abloy_vostio_key",
"salto_space_key",
"latch_access",
"dormakaba_ambiance_credential",
],
>,
>;
external_type_display_name: ZodOptional<ZodString>;
is_issued: ZodOptional<ZodBoolean>;
is_latest_desired_state_synced_with_provider: ZodOptional<
ZodNullable<ZodBoolean>,
>;
is_multi_phone_sync_credential: ZodOptional<ZodBoolean>;
is_one_time_use: ZodOptional<ZodBoolean>;
issued_at: ZodNullable<ZodOptional<ZodString>>;
latest_desired_state_synced_with_provider_at: ZodOptional<
ZodNullable<ZodString>,
>;
parent_acs_credential_id: ZodOptional<ZodString>;
starts_at: ZodOptional<ZodString>;
user_identity_id: ZodOptional<ZodString>;
visionline_metadata: ZodOptional<
ZodObject<
{
auto_join: ZodOptional<(...)>;
card_function_type: ZodEnum<(...)>;
card_id: ZodOptional<(...)>;
common_acs_entrance_ids: ZodOptional<(...)>;
credential_id: ZodOptional<(...)>;
guest_acs_entrance_ids: ZodOptional<(...)>;
is_valid: ZodOptional<(...)>;
joiner_acs_credential_ids: ZodOptional<(...)>;
},
"strip",
ZodTypeAny,
{
auto_join?: (...)
| (...)
| (...);
card_function_type: (...) | (...);
card_id?: (...) | (...);
common_acs_entrance_ids?: (...) | (...);
credential_id?: (...) | (...);
guest_acs_entrance_ids?: (...) | (...);
is_valid?: (...) | (...) | (...);
joiner_acs_credential_ids?: (...) | (...);
},
{
auto_join?: (...)
| (...)
| (...);
card_function_type: (...) | (...);
card_id?: (...) | (...);
common_acs_entrance_ids?: (...) | (...);
credential_id?: (...) | (...);
guest_acs_entrance_ids?: (...) | (...);
is_valid?: (...) | (...) | (...);
joiner_acs_credential_ids?: (...) | (...);
},
>,
>;
warnings: ZodArray<
ZodDiscriminatedUnion<
"warning_code",
[
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
],
>,
"many",
>;
workspace_id: ZodString;
} & { is_managed: ZodLiteral<false> },
"strip",
ZodTypeAny,
{
access_method: "code" | "card" | "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: boolean;
door_names?: string[];
endpoint_id?: string;
key_id?: string;
key_issuing_request_id?: string;
override_guest_acs_entrance_ids?: string[];
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: string; message: string }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: false;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: boolean;
card_function_type: "guest" | "staff";
card_id?: string;
common_acs_entrance_ids?: string[];
credential_id?: string;
guest_acs_entrance_ids?: string[];
is_valid?: boolean;
joiner_acs_credential_ids?: string[];
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "waiting_to_be_issued";
}
| {
created_at: string;
message: string;
warning_code: "schedule_externally_modified";
}
| {
created_at: string;
message: string;
warning_code: "schedule_modified";
}
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_credential";
}
| {
created_at: string;
message: string;
warning_code: "needs_to_be_reissued";
}
)[];
workspace_id: string;
},
{
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: boolean;
door_names?: string[];
endpoint_id?: string;
key_id?: string;
key_issuing_request_id?: string;
override_guest_acs_entrance_ids?: string[];
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: string; message: string }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: false;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: boolean;
card_function_type: "guest" | "staff";
card_id?: string;
common_acs_entrance_ids?: string[];
credential_id?: string;
guest_acs_entrance_ids?: string[];
is_valid?: boolean;
joiner_acs_credential_ids?: string[];
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "waiting_to_be_issued";
}
| {
created_at: string;
message: string;
warning_code: "schedule_externally_modified";
}
| {
created_at: string;
message: string;
warning_code: "schedule_modified";
}
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_credential";
}
| {
created_at: string;
message: string;
warning_code: "needs_to_be_reissued";
}
)[];
workspace_id: string;
},
>,
"many",
>,
>;
unmanaged_acs_users: ZodOptional<
ZodArray<
ZodObject<
{
access_schedule: ZodOptional<
ZodObject<
{ ends_at: ZodNullable<(...)>; starts_at: ZodString },
"strip",
ZodTypeAny,
{ ends_at: (...) | (...); starts_at: string },
{ ends_at: (...) | (...); starts_at: string },
>,
>;
acs_system_id: ZodString;
acs_user_id: ZodString;
connected_account_id: ZodString;
created_at: ZodString;
display_name: ZodString;
errors: ZodArray<
ZodDiscriminatedUnion<
"error_code",
[
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
],
>,
"many",
>;
external_type: ZodOptional<
ZodEnum<
[
"pti_user",
"brivo_user",
"hid_credential_manager_user",
"salto_site_user",
"latch_user",
"dormakaba_community_user",
"salto_space_user",
],
>,
>;
external_type_display_name: ZodOptional<ZodString>;
hid_acs_system_id: ZodOptional<ZodString>;
is_suspended: ZodOptional<ZodBoolean>;
last_successful_sync_at: ZodNullable<ZodString>;
pending_mutations: ZodOptional<
ZodArray<
ZodDiscriminatedUnion<"mutation_code", [(...), (...), (...)]>,
"many",
>,
>;
user_identity_email_address: ZodOptional<ZodNullable<ZodString>>;
user_identity_full_name: ZodOptional<ZodNullable<ZodString>>;
user_identity_id: ZodOptional<ZodString>;
user_identity_phone_number: ZodOptional<ZodNullable<ZodString>>;
warnings: ZodArray<
ZodDiscriminatedUnion<
"warning_code",
[
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
ZodObject<(...), (...), (...), (...), (...)>,
],
>,
"many",
>;
workspace_id: ZodString;
} & {
email: ZodOptional<ZodString>;
email_address: ZodOptional<ZodString>;
full_name: ZodOptional<ZodString>;
phone_number: ZodOptional<ZodEffects<ZodString, string, string>>;
} & { is_managed: ZodLiteral<false> },
"strip",
ZodTypeAny,
{
access_schedule?: { ends_at: null | string; starts_at: string };
acs_system_id: string;
acs_user_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
email?: string;
email_address?: string;
errors: (
| {
created_at: string;
error_code: "deleted_externally";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
message: string;
}
| {
created_at: string;
error_code: "failed_to_create_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_update_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_delete_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "latch_conflict_with_resident_user";
message: string;
}
)[];
external_type?: | "pti_user"
| "brivo_user"
| "hid_credential_manager_user"
| "salto_site_user"
| "latch_user"
| "dormakaba_community_user"
| "salto_space_user";
external_type_display_name?: string;
full_name?: string;
hid_acs_system_id?: string;
is_managed: false;
is_suspended?: boolean;
last_successful_sync_at: null
| string;
pending_mutations?: (
| {
created_at: string;
message: string;
mutation_code: "creating";
}
| { created_at: string; message: string; mutation_code: "deleting" }
| {
created_at: string;
from: { email_address?: ...; full_name?: ...; phone_number?: ... };
message: string;
mutation_code: "updating_user_information";
to: { email_address?: ...; full_name?: ...; phone_number?: ... };
}
| {
created_at: string;
from: { ends_at: ...; starts_at: ... };
message: string;
mutation_code: "updating_access_schedule";
to: { ends_at: ...; starts_at: ... };
}
| {
created_at: string;
from: { is_suspended: ... };
message: string;
mutation_code: "updating_suspension_state";
to: { is_suspended: ... };
}
| {
created_at: string;
from: { acs_access_group_id: ... };
message: string;
mutation_code: "updating_group_membership";
to: { acs_access_group_id: ... };
}
)[];
phone_number?: string;
user_identity_email_address?: null
| string;
user_identity_full_name?: null | string;
user_identity_id?: string;
user_identity_phone_number?: null | string;
warnings: (
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_user_not_subscribed";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_user";
}
| {
created_at: string;
message: string;
warning_code: "latch_resident_user";
}
)[];
workspace_id: string;
},
{
access_schedule?: { ends_at: null
| string; starts_at: string };
acs_system_id: string;
acs_user_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
email?: string;
email_address?: string;
errors: (
| {
created_at: string;
error_code: "deleted_externally";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
message: string;
}
| {
created_at: string;
error_code: "failed_to_create_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_update_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_delete_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "latch_conflict_with_resident_user";
message: string;
}
)[];
external_type?: | "pti_user"
| "brivo_user"
| "hid_credential_manager_user"
| "salto_site_user"
| "latch_user"
| "dormakaba_community_user"
| "salto_space_user";
external_type_display_name?: string;
full_name?: string;
hid_acs_system_id?: string;
is_managed: false;
is_suspended?: boolean;
last_successful_sync_at: null
| string;
pending_mutations?: (
| {
created_at: string;
message: string;
mutation_code: "creating";
}
| { created_at: string; message: string; mutation_code: "deleting" }
| {
created_at: string;
from: { email_address?: ...; full_name?: ...; phone_number?: ... };
message: string;
mutation_code: "updating_user_information";
to: { email_address?: ...; full_name?: ...; phone_number?: ... };
}
| {
created_at: string;
from: { ends_at: ...; starts_at: ... };
message: string;
mutation_code: "updating_access_schedule";
to: { ends_at: ...; starts_at: ... };
}
| {
created_at: string;
from: { is_suspended: ... };
message: string;
mutation_code: "updating_suspension_state";
to: { is_suspended: ... };
}
| {
created_at: string;
from: { acs_access_group_id: ... };
message: string;
mutation_code: "updating_group_membership";
to: { acs_access_group_id: ... };
}
)[];
phone_number?: string;
user_identity_email_address?: null
| string;
user_identity_full_name?: null | string;
user_identity_id?: string;
user_identity_phone_number?: null | string;
warnings: (
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_user_not_subscribed";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_user";
}
| {
created_at: string;
message: string;
warning_code: "latch_resident_user";
}
)[];
workspace_id: string;
},
>,
"many",
>,
>;
unmanaged_devices: ZodOptional<
ZodArray<
ZodObject<
Pick<
{
capabilities_supported: ZodArray<ZodEnum<(...)>, "many">;
connected_account_id: ZodString;
created_at: ZodString;
custom_metadata: ZodRecord<ZodString, ZodUnion<(...)>>;
device_id: ZodString;
device_type: ZodUnion<[(...), (...), (...), (...)]>;
display_name: ZodString;
errors: ZodArray<ZodDiscriminatedUnion<(...), (...)>, "many">;
is_managed: ZodLiteral<true>;
location: ZodNullable<ZodObject<(...), (...), (...), (...), (...)>>;
nickname: ZodOptional<ZodString>;
properties: ZodIntersection<
ZodIntersection<(...), (...)>,
ZodIntersection<(...), (...)>,
>;
warnings: ZodArray<ZodDiscriminatedUnion<(...), (...)>, "many">;
workspace_id: ZodString;
} & {
can_hvac_cool: ZodOptional<ZodBoolean>;
can_hvac_heat: ZodOptional<ZodBoolean>;
can_hvac_heat_cool: ZodOptional<ZodBoolean>;
can_program_offline_access_codes: ZodOptional<ZodBoolean>;
can_program_online_access_codes: ZodOptional<ZodBoolean>;
can_remotely_lock: ZodOptional<ZodBoolean>;
can_remotely_unlock: ZodOptional<ZodBoolean>;
can_run_thermostat_programs: ZodOptional<ZodBoolean>;
can_simulate_connection: ZodOptional<ZodBoolean>;
can_simulate_disconnection: ZodOptional<ZodBoolean>;
can_simulate_hub_connection: ZodOptional<ZodBoolean>;
can_simulate_hub_disconnection: ZodOptional<ZodBoolean>;
can_simulate_paid_subscription: ZodOptional<ZodBoolean>;
can_simulate_removal: ZodOptional<ZodBoolean>;
can_turn_off_hvac: ZodOptional<ZodBoolean>;
can_unlock_with_code: ZodOptional<ZodBoolean>;
},
| "device_id"
| "workspace_id"
| "created_at"
| "errors"
| "connected_account_id"
| "warnings"
| "custom_metadata"
| "device_type"
| "capabilities_supported"
| "location",
> & {
is_managed: ZodLiteral<false>;
properties: ZodObject<
Pick<
{
accessory_keypad: ZodOptional<(...)>;
appearance: ZodObject<(...), (...), (...), (...), (...)>;
battery: ZodOptional<(...)>;
battery_level: ZodOptional<(...)>;
currently_triggering_noise_threshold_ids: ZodOptional<(...)>;
has_direct_power: ZodOptional<(...)>;
image_alt_text: ZodOptional<(...)>;
image_url: ZodOptional<(...)>;
manufacturer: ZodOptional<(...)>;
model: ZodObject<(...), (...), (...), (...), (...)>;
name: ZodString;
noise_level_decibels: ZodOptional<(...)>;
offline_access_codes_enabled: ZodOptional<(...)>;
online: ZodBoolean;
online_access_codes_enabled: ZodOptional<(...)>;
serial_number: ZodOptional<(...)>;
supports_accessory_keypad: ZodOptional<(...)>;
supports_offline_access_codes: ZodOptional<(...)>;
},
| "battery"
| "name"
| "model"
| "battery_level"
| "online"
| "accessory_keypad"
| "manufacturer"
| "image_url"
| "image_alt_text"
| "online_access_codes_enabled"
| "offline_access_codes_enabled",
>,
"strip",
ZodTypeAny,
{
accessory_keypad?: { battery?: ...; is_connected: ... };
battery?: { level: ...; status: ... };
battery_level?: number;
image_alt_text?: string;
image_url?: string;
manufacturer?: string;
model: {
accessory_keypad_supported?: (...) | (...) | (...);
can_connect_accessory_keypad?: (...) | (...) | (...);
display_name: string;
has_built_in_keypad?: (...) | (...) | (...);
manufacturer_display_name: string;
offline_access_codes_supported?: (...) | (...) | (...);
online_access_codes_supported?: (...) | (...) | (...);
};
name: string;
offline_access_codes_enabled?: boolean;
online: boolean;
online_access_codes_enabled?: boolean;
},
{
accessory_keypad?: { battery?: ...; is_connected: ... };
battery?: { level: ...; status: ... };
battery_level?: number;
image_alt_text?: string;
image_url?: string;
manufacturer?: string;
model: {
accessory_keypad_supported?: (...) | (...) | (...);
can_connect_accessory_keypad?: (...) | (...) | (...);
display_name: string;
has_built_in_keypad?: (...) | (...) | (...);
manufacturer_display_name: string;
offline_access_codes_supported?: (...) | (...) | (...);
online_access_codes_supported?: (...) | (...) | (...);
};
name: string;
offline_access_codes_enabled?: boolean;
online: boolean;
online_access_codes_enabled?: boolean;
},
>;
} & {
can_hvac_cool: ZodOptional<ZodBoolean>;
can_hvac_heat: ZodOptional<ZodBoolean>;
can_hvac_heat_cool: ZodOptional<ZodBoolean>;
can_program_offline_access_codes: ZodOptional<ZodBoolean>;
can_program_online_access_codes: ZodOptional<ZodBoolean>;
can_remotely_lock: ZodOptional<ZodBoolean>;
can_remotely_unlock: ZodOptional<ZodBoolean>;
can_run_thermostat_programs: ZodOptional<ZodBoolean>;
can_simulate_connection: ZodOptional<ZodBoolean>;
can_simulate_disconnection: ZodOptional<ZodBoolean>;
can_simulate_hub_connection: ZodOptional<ZodBoolean>;
can_simulate_hub_disconnection: ZodOptional<ZodBoolean>;
can_simulate_paid_subscription: ZodOptional<ZodBoolean>;
can_simulate_removal: ZodOptional<ZodBoolean>;
can_turn_off_hvac: ZodOptional<ZodBoolean>;
can_unlock_with_code: ZodOptional<ZodBoolean>;
},
"strip",
ZodTypeAny,
{
can_hvac_cool?: boolean;
can_hvac_heat?: boolean;
can_hvac_heat_cool?: boolean;
can_program_offline_access_codes?: boolean;
can_program_online_access_codes?: boolean;
can_remotely_lock?: boolean;
can_remotely_unlock?: boolean;
can_run_thermostat_programs?: boolean;
can_simulate_connection?: boolean;
can_simulate_disconnection?: boolean;
can_simulate_hub_connection?: boolean;
can_simulate_hub_disconnection?: boolean;
can_simulate_paid_subscription?: boolean;
can_simulate_removal?: boolean;
can_turn_off_hvac?: boolean;
can_unlock_with_code?: boolean;
capabilities_supported: (
| "access_code"
| "lock"
| "noise_detection"
| "thermostat"
| "battery"
| "phone"
)[];
connected_account_id: string;
created_at: string;
custom_metadata: Record<string, string | boolean>;
device_id: string;
device_type:
| LockDeviceTypeFromMapping
| NoiseSensorDeviceTypeFromMapping
| ThermostatDeviceTypeFromMapping
| PhoneDeviceTypeFromMapping;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: { sites: (...)[] };
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
)[];
is_managed: false;
location: null
| { location_name?: string; timezone?: string };
properties: {
accessory_keypad?: {
battery?: { level: ... };
is_connected: boolean;
};
battery?: {
level: number;
status: "critical"
| "low"
| "good"
| "full";
};
battery_level?: number;
image_alt_text?: string;
image_url?: string;
manufacturer?: string;
model: {
accessory_keypad_supported?: boolean;
can_connect_accessory_keypad?: boolean;
display_name: string;
has_built_in_keypad?: boolean;
manufacturer_display_name: string;
offline_access_codes_supported?: boolean;
online_access_codes_supported?: boolean;
};
name: string;
offline_access_codes_enabled?: boolean;
online: boolean;
online_access_codes_enabled?: boolean;
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "partial_backup_access_code_pool";
}
| {
created_at: string;
message: string;
warning_code: "many_active_backup_codes";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_office_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_privacy_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_subscription_limit_almost_reached";
}
| {
created_at: string;
message: string;
warning_code: "wyze_device_missing_gateway";
}
| {
created_at: string;
message: string;
warning_code: "functional_offline_device";
}
| {
created_at: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_lock_gateway_unlocking_not_enabled";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_weak_gateway_signal";
}
| {
created_at: string;
message: string;
warning_code: "power_saving_mode";
}
| {
created_at: string;
message: string;
warning_code: "temperature_threshold_exceeded";
}
| {
created_at: string;
message: string;
warning_code: "device_communication_degraded";
}
| {
created_at: string;
message: string;
warning_code: "scheduled_maintenance_window";
}
| {
created_at: string;
message: string;
warning_code: "device_has_flaky_connection";
}
| {
created_at: string;
message: string;
warning_code: "lockly_time_zone_not_configured";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_phone";
}
)[];
workspace_id: string;
},
{
can_hvac_cool?: boolean;
can_hvac_heat?: boolean;
can_hvac_heat_cool?: boolean;
can_program_offline_access_codes?: boolean;
can_program_online_access_codes?: boolean;
can_remotely_lock?: boolean;
can_remotely_unlock?: boolean;
can_run_thermostat_programs?: boolean;
can_simulate_connection?: boolean;
can_simulate_disconnection?: boolean;
can_simulate_hub_connection?: boolean;
can_simulate_hub_disconnection?: boolean;
can_simulate_paid_subscription?: boolean;
can_simulate_removal?: boolean;
can_turn_off_hvac?: boolean;
can_unlock_with_code?: boolean;
capabilities_supported: (
| "access_code"
| "lock"
| "noise_detection"
| "thermostat"
| "battery"
| "phone"
)[];
connected_account_id: string;
created_at: string;
custom_metadata: Record<string, string | boolean>;
device_id: string;
device_type:
| LockDeviceTypeFromMapping
| NoiseSensorDeviceTypeFromMapping
| ThermostatDeviceTypeFromMapping
| PhoneDeviceTypeFromMapping;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: { sites: (...)[] };
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
)[];
is_managed: false;
location: null
| { location_name?: string; timezone?: string };
properties: {
accessory_keypad?: {
battery?: { level: ... };
is_connected: boolean;
};
battery?: {
level: number;
status: "critical"
| "low"
| "good"
| "full";
};
battery_level?: number;
image_alt_text?: string;
image_url?: string;
manufacturer?: string;
model: {
accessory_keypad_supported?: boolean;
can_connect_accessory_keypad?: boolean;
display_name: string;
has_built_in_keypad?: boolean;
manufacturer_display_name: string;
offline_access_codes_supported?: boolean;
online_access_codes_supported?: boolean;
};
name: string;
offline_access_codes_enabled?: boolean;
online: boolean;
online_access_codes_enabled?: boolean;
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "partial_backup_access_code_pool";
}
| {
created_at: string;
message: string;
warning_code: "many_active_backup_codes";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_office_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_privacy_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_subscription_limit_almost_reached";
}
| {
created_at: string;
message: string;
warning_code: "wyze_device_missing_gateway";
}
| {
created_at: string;
message: string;
warning_code: "functional_offline_device";
}
| {
created_at: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_lock_gateway_unlocking_not_enabled";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_weak_gateway_signal";
}
| {
created_at: string;
message: string;
warning_code: "power_saving_mode";
}
| {
created_at: string;
message: string;
warning_code: "temperature_threshold_exceeded";
}
| {
created_at: string;
message: string;
warning_code: "device_communication_degraded";
}
| {
created_at: string;
message: string;
warning_code: "scheduled_maintenance_window";
}
| {
created_at: string;
message: string;
warning_code: "device_has_flaky_connection";
}
| {
created_at: string;
message: string;
warning_code: "lockly_time_zone_not_configured";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_phone";
}
)[];
workspace_id: string;
},
>,
"many",
>,
>;
user_identities: ZodOptional<
ZodArray<
ZodObject<
{
acs_user_ids: ZodArray<ZodString, "many">;
created_at: ZodString;
display_name: ZodString;
email_address: ZodNullable<ZodString>;
errors: ZodArray<
ZodDiscriminatedUnion<
"error_code",
[
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{
acs_system_id: ...;
acs_user_id: ...;
created_at: ...;
error_code: ...;
message: ...;
},
{
acs_system_id: ...;
acs_user_id: ...;
created_at: ...;
error_code: ...;
message: ...;
},
>,
],
>,
"many",
>;
full_name: ZodNullable<ZodString>;
phone_number: ZodNullable<ZodEffects<ZodString, string, string>>;
user_identity_id: ZodString;
user_identity_key: ZodNullable<ZodString>;
warnings: ZodArray<
ZodDiscriminatedUnion<
"warning_code",
[
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{ created_at: ...; message: ...; warning_code: ... },
{ created_at: ...; message: ...; warning_code: ... },
>,
ZodObject<
(...) & (...),
"strip",
ZodTypeAny,
{ created_at: ...; message: ...; warning_code: ... },
{ created_at: ...; message: ...; warning_code: ... },
>,
],
>,
"many",
>;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
acs_user_ids: string[];
created_at: string;
display_name: string;
email_address: null
| string;
errors: {
acs_system_id: string;
acs_user_id: string;
created_at: string;
error_code: "issue_with_acs_user";
message: string;
}[];
full_name: null
| string;
phone_number: null | string;
user_identity_id: string;
user_identity_key: null | string;
warnings: (
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "acs_user_profile_does_not_match_user_identity";
}
)[];
workspace_id: string;
},
{
acs_user_ids: string[];
created_at: string;
display_name: string;
email_address: null
| string;
errors: {
acs_system_id: string;
acs_user_id: string;
created_at: string;
error_code: "issue_with_acs_user";
message: string;
}[];
full_name: null
| string;
phone_number: null | string;
user_identity_id: string;
user_identity_key: null | string;
warnings: (
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "acs_user_profile_does_not_match_user_identity";
}
)[];
workspace_id: string;
},
>,
"many",
>,
>;
workspaces: ZodOptional<
ZodArray<
ZodObject<
{
company_name: ZodString;
connect_partner_name: ZodNullable<ZodNullable<ZodString>>;
connect_webview_customization: ZodObject<
{
inviter_logo_url: ZodOptional<ZodString>;
logo_shape: ZodOptional<ZodEnum<[(...), (...)]>>;
primary_button_color: ZodOptional<
ZodEffects<ZodString, string, string>,
>;
primary_button_text_color: ZodOptional<
ZodEffects<ZodString, string, string>,
>;
success_message: ZodOptional<ZodString>;
},
"strip",
ZodTypeAny,
{
inviter_logo_url?: string;
logo_shape?: "circle"
| "square";
primary_button_color?: string;
primary_button_text_color?: string;
success_message?: string;
},
{
inviter_logo_url?: string;
logo_shape?: "circle"
| "square";
primary_button_color?: string;
primary_button_text_color?: string;
success_message?: string;
},
>;
is_sandbox: ZodBoolean;
is_suspended: ZodBoolean;
name: ZodString;
workspace_id: ZodString;
},
"strip",
ZodTypeAny,
{
company_name: string;
connect_partner_name: null
| string;
connect_webview_customization: {
inviter_logo_url?: string;
logo_shape?: "circle" | "square";
primary_button_color?: string;
primary_button_text_color?: string;
success_message?: string;
};
is_sandbox: boolean;
is_suspended: boolean;
name: string;
workspace_id: string;
},
{
company_name: string;
connect_partner_name: null
| string;
connect_webview_customization: {
inviter_logo_url?: string;
logo_shape?: "circle" | "square";
primary_button_color?: string;
primary_button_text_color?: string;
success_message?: string;
};
is_sandbox: boolean;
is_suspended: boolean;
name: string;
workspace_id: string;
},
>,
"many",
>,
>;
},
"strip",
ZodTypeAny,
{
access_codes?: {
access_code_id: string;
code: null
| string;
common_code_key: null | string;
created_at: string;
device_id: string;
ends_at?: null | string;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: {
sites: {
site_id: ...;
site_name: ...;
site_user_subscription_limit: ...;
subscribed_site_user_count: ...;
}[];
};
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_access_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_after_multiple_retries";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "code_modified_external_to_seam";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_set_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_remove_from_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_attempt_prevented";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "no_space_for_access_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_too_many_pending_jobs";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_deletion";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_offline_access_code_no_variance_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_invalid_code_length";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_slots_full";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_temporarily_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_missing_keypad";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "salto_ks_user_not_subscribed";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_no_free_positions_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_no_free_slots_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_duplicate_code_name";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_potential_duplicate_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "dormakaba_oracode_no_valid_user_level";
is_access_code_error: true;
message: string;
}
)[];
is_backup?: boolean;
is_backup_access_code_available: boolean;
is_external_modification_allowed: boolean;
is_managed: true;
is_offline_access_code: boolean;
is_one_time_use: boolean;
is_scheduled_on_device?: boolean;
is_waiting_for_code_assignment?: boolean;
name: null
| string;
pulled_backup_access_code_id?: null | string;
starts_at?: null | string;
status: "unknown" | "set" | "setting" | "unset" | "removing";
type: "time_bound" | "ongoing";
warnings: (
| {
created_at?: string;
message: string;
warning_code: "smartthings_failed_to_set_access_code";
}
| {
created_at?: string;
message: string;
warning_code: "august_device_programming_delay";
}
| {
created_at?: string;
message: string;
warning_code: "august_lock_temporarily_offline";
}
| {
created_at?: string;
message: string;
warning_code: "code_modified_external_to_seam";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_detected_duplicate";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_creation_outage";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_setting_on_device";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_removing_from_device";
}
| {
created_at?: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at?: string;
message: string;
warning_code: "igloo_algopin_must_be_used_within_24_hours";
}
| {
created_at?: string;
message: string;
warning_code: "management_transferred";
}
| {
created_at?: string;
message: string;
warning_code: "kwikset_unable_to_confirm_code";
}
)[];
workspace_id: string;
}[];
access_grants?: {
access_grant_id: string;
access_grant_key?: string;
access_method_ids: string[];
client_session_token?: string;
created_at: string;
customization_profile_id?: string;
display_name: string;
ends_at: null
| string;
instant_key_url?: string;
location_ids: string[];
name: null | string;
requested_access_methods: {
code?: string;
created_access_method_ids: string[];
created_at: string;
display_name: string;
mode: "code" | "card" | "mobile_key";
}[];
space_ids: string[];
starts_at: string;
user_identity_id: string;
workspace_id: string;
}[];
access_methods?: {
access_method_id: string;
client_session_token?: string;
code?: null
| string;
created_at: string;
customization_profile_id?: string;
display_name: string;
instant_key_url?: string;
is_encoding_required?: boolean;
is_issued: boolean;
issued_at: null | string;
mode: "code" | "card" | "mobile_key";
workspace_id: string;
}[];
acs_access_groups?: {
access_group_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
access_group_type_display_name: string;
acs_access_group_id: string;
acs_system_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
external_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
external_type_display_name: string;
is_managed: true;
name: string;
warnings: {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_access_group";
}[];
workspace_id: string;
}[];
acs_credentials?: {
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: boolean;
door_names?: string[];
endpoint_id?: string;
key_id?: string;
key_issuing_request_id?: string;
override_guest_acs_entrance_ids?: string[];
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: string; message: string }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: true;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: boolean;
card_function_type: "guest" | "staff";
card_id?: string;
common_acs_entrance_ids?: string[];
credential_id?: string;
guest_acs_entrance_ids?: string[];
is_valid?: boolean;
joiner_acs_credential_ids?: string[];
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "waiting_to_be_issued";
}
| {
created_at: string;
message: string;
warning_code: "schedule_externally_modified";
}
| {
created_at: string;
message: string;
warning_code: "schedule_modified";
}
| { created_at: string; message: string; warning_code: "being_deleted" }
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_credential";
}
| {
created_at: string;
message: string;
warning_code: "needs_to_be_reissued";
}
)[];
workspace_id: string;
}[];
acs_encoders?: {
acs_encoder_id: string;
acs_system_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
errors: {
created_at: string;
error_code: "acs_encoder_removed";
message: string;
}[];
workspace_id: string;
}[];
acs_entrances?: {
acs_entrance_id: string;
acs_system_id: string;
assa_abloy_vostio_metadata?: {
door_name: string;
door_number?: number;
door_type: "CommonDoor"
| "EntranceDoor"
| "GuestDoor"
| "Elevator";
pms_id?: string;
stand_open?: boolean;
};
can_unlock_with_card?: boolean;
can_unlock_with_code?: boolean;
can_unlock_with_mobile_key?: boolean;
connected_account_id: string;
created_at: string;
display_name: string;
dormakaba_ambiance_metadata?: { access_point_name: string };
dormakaba_community_metadata?: { access_point_name: string };
errors: { error_code: string; message: string }[];
hotek_metadata?: { room_number: string };
latch_metadata?: {
accessibility_type: string;
door_name: string;
door_type: string;
is_connected: boolean;
};
salto_ks_metadata?: {
battery_level: string;
door_name: string;
intrusion_alarm?: boolean;
left_open_alarm?: boolean;
lock_type: string;
locked_state: string;
online?: boolean;
privacy_mode?: boolean;
};
salto_space_metadata?: {
door_description?: string;
door_id?: string;
door_name?: string;
ext_door_id?: string;
room_description?: string;
room_name?: string;
};
visionline_metadata?: {
door_category: | "entrance"
| "guest"
| "elevator reader"
| "common"
| "common (PMS)";
door_name: string;
profiles?: {
visionline_door_profile_id: string;
visionline_door_profile_type: (...)
| (...)
| (...);
}[];
};
}[];
acs_systems?: {
acs_access_group_count?: number;
acs_system_id: string;
acs_user_count?: number;
connected_account_id: string;
connected_account_ids: string[];
created_at: string;
default_credential_manager_acs_system_id?: null
| string;
errors: (
| {
created_at: string;
error_code: "seam_bridge_disconnected";
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "visionline_instance_unreachable";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
message: string;
}
| {
created_at: string;
error_code: "acs_system_disconnected";
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_certification_expired";
message: string;
}
)[];
external_type?: | "assa_abloy_credential_service"
| "assa_abloy_vostio"
| "assa_abloy_vostio_credential_service"
| "pti_site"
| "alta_org"
| "salto_ks_site"
| "salto_space_system"
| "brivo_account"
| "hid_credential_manager_organization"
| "visionline_system"
| "latch_building"
| "dormakaba_community_site"
| "dormakaba_ambiance_site"
| "legic_connect_credential_service";
external_type_display_name?: string;
image_alt_text: string;
image_url: string;
is_credential_manager: boolean;
location: { time_zone: null
| string };
name: string;
system_type?:
| "assa_abloy_credential_service"
| "assa_abloy_vostio"
| "assa_abloy_vostio_credential_service"
| "pti_site"
| "alta_org"
| "salto_ks_site"
| "salto_space_system"
| "brivo_account"
| "hid_credential_manager_organization"
| "visionline_system"
| "latch_building"
| "dormakaba_community_site"
| "dormakaba_ambiance_site"
| "legic_connect_credential_service";
system_type_display_name?: string;
visionline_metadata?: {
lan_address: string;
mobile_access_uuid: string;
system_id: string;
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "salto_ks_subscription_limit_almost_reached";
}
| {
created_at: string;
message: string;
misconfigured_acs_entrance_ids?: string[];
warning_code: "time_zone_does_not_match_location";
}
)[];
workspace_id: string;
}[];
acs_users?: {
access_schedule?: { ends_at: null
| string; starts_at: string };
acs_system_id: string;
acs_user_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
email?: string;
email_address?: string;
errors: (
| {
created_at: string;
error_code: "deleted_externally";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
message: string;
}
| {
created_at: string;
error_code: "failed_to_create_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_update_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_delete_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "latch_conflict_with_resident_user";
message: string;
}
)[];
external_type?: | "pti_user"
| "brivo_user"
| "hid_credential_manager_user"
| "salto_site_user"
| "latch_user"
| "dormakaba_community_user"
| "salto_space_user";
external_type_display_name?: string;
full_name?: string;
hid_acs_system_id?: string;
is_managed: true;
is_suspended?: boolean;
last_successful_sync_at: null
| string;
pending_mutations?: (
| { created_at: string; message: string; mutation_code: "creating" }
| { created_at: string; message: string; mutation_code: "deleting" }
| {
created_at: string;
from: {
email_address?: (...) | (...) | (...);
full_name?: (...) | (...) | (...);
phone_number?: (...) | (...) | (...);
};
message: string;
mutation_code: "updating_user_information";
to: {
email_address?: (...)
| (...)
| (...);
full_name?: (...) | (...) | (...);
phone_number?: (...) | (...) | (...);
};
}
| {
created_at: string;
from: { ends_at: (...)
| (...); starts_at: (...) | (...) };
message: string;
mutation_code: "updating_access_schedule";
to: { ends_at: (...) | (...); starts_at: (...) | (...) };
}
| {
created_at: string;
from: { is_suspended: boolean };
message: string;
mutation_code: "updating_suspension_state";
to: { is_suspended: boolean };
}
| {
created_at: string;
from: { acs_access_group_id: (...)
| (...) };
message: string;
mutation_code: "updating_group_membership";
to: { acs_access_group_id: (...) | (...) };
}
)[];
phone_number?: string;
user_identity_email_address?: null
| string;
user_identity_full_name?: null | string;
user_identity_id?: string;
user_identity_phone_number?: null | string;
warnings: (
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_user_not_subscribed";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_user";
}
| {
created_at: string;
message: string;
warning_code: "latch_resident_user";
}
)[];
workspace_id: string;
}[];
action_attempts?: (
| {
action_attempt_id: string;
action_type: "ACTIVATE_CLIMATE_PRESET";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "ACTIVATE_CLIMATE_PRESET";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "ACTIVATE_CLIMATE_PRESET";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "SYNC_ACCESS_CODES";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "SYNC_ACCESS_CODES";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "SYNC_ACCESS_CODES";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "CREATE_ACCESS_CODE";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "CREATE_ACCESS_CODE";
error: null;
result: { access_code?: any };
status: "success";
}
| {
action_attempt_id: string;
action_type: "CREATE_ACCESS_CODE";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "DELETE_ACCESS_CODE";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "DELETE_ACCESS_CODE";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "DELETE_ACCESS_CODE";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "UPDATE_ACCESS_CODE";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "UPDATE_ACCESS_CODE";
error: null;
result: { access_code?: any };
status: "success";
}
| {
action_attempt_id: string;
action_type: "UPDATE_ACCESS_CODE";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "CREATE_NOISE_THRESHOLD";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "CREATE_NOISE_THRESHOLD";
error: null;
result: { noise_threshold?: any };
status: "success";
}
| {
action_attempt_id: string;
action_type: "CREATE_NOISE_THRESHOLD";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "DELETE_NOISE_THRESHOLD";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "DELETE_NOISE_THRESHOLD";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "DELETE_NOISE_THRESHOLD";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "UPDATE_NOISE_THRESHOLD";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "UPDATE_NOISE_THRESHOLD";
error: null;
result: { noise_threshold?: any };
status: "success";
}
| {
action_attempt_id: string;
action_type: "UPDATE_NOISE_THRESHOLD";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "ENCODE_CREDENTIAL";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "ENCODE_CREDENTIAL";
error: null;
result: | {
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: (...) | (...) | (...);
door_names?: (...) | (...);
endpoint_id?: (...) | (...);
key_id?: (...) | (...);
key_issuing_request_id?: (...) | (...);
override_guest_acs_entrance_ids?: (...) | (...);
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: string; message: string }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: true;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: (...) | (...) | (...);
card_function_type: (...) | (...);
card_id?: (...) | (...);
common_acs_entrance_ids?: (...) | (...);
credential_id?: (...) | (...);
guest_acs_entrance_ids?: (...) | (...);
is_valid?: (...) | (...) | (...);
joiner_acs_credential_ids?: (...) | (...);
};
warnings: (
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
)[];
workspace_id: string;
}
| {
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: (...) | (...) | (...);
door_names?: (...) | (...);
endpoint_id?: (...) | (...);
key_id?: (...) | (...);
key_issuing_request_id?: (...) | (...);
override_guest_acs_entrance_ids?: (...) | (...);
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: string; message: string }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: false;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: (...) | (...) | (...);
card_function_type: (...) | (...);
card_id?: (...) | (...);
common_acs_entrance_ids?: (...) | (...);
credential_id?: (...) | (...);
guest_acs_entrance_ids?: (...) | (...);
is_valid?: (...) | (...) | (...);
joiner_acs_credential_ids?: (...) | (...);
};
warnings: (
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
)[];
workspace_id: string;
};
status: "success";
}
| {
action_attempt_id: string;
action_type: "ENCODE_CREDENTIAL";
error: | { message: string; type: "uncategorized_error" }
| { message: string; type: "action_attempt_expired" }
| { message: string; type: "no_credential_on_encoder" }
| { message: string; type: "incompatible_card_format" }
| { message: string; type: "credential_cannot_be_reissued" };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "LOCK_DOOR";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "LOCK_DOOR";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "LOCK_DOOR";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "PUSH_THERMOSTAT_PROGRAMS";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "PUSH_THERMOSTAT_PROGRAMS";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "PUSH_THERMOSTAT_PROGRAMS";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "RESET_SANDBOX_WORKSPACE";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "RESET_SANDBOX_WORKSPACE";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "RESET_SANDBOX_WORKSPACE";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "SCAN_CREDENTIAL";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "SCAN_CREDENTIAL";
error: null;
result: {
acs_credential_on_encoder: | null
| {
card_number: null
| string;
created_at: null | string;
ends_at: null | string;
is_issued: null | boolean;
starts_at: null | string;
visionline_metadata?: {
cancelled: ...;
card_format: ...;
card_holder?: ...;
card_id: ...;
common_acs_entrance_ids?: ...;
discarded: ...;
expired: ...;
guest_acs_entrance_ids?: ...;
number_of_issued_cards: ...;
overridden?: ...;
overwritten: ...;
pending_auto_update: ...;
};
};
acs_credential_on_seam: | null
| {
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: ...;
door_names?: ...;
endpoint_id?: ...;
key_id?: ...;
key_issuing_request_id?: ...;
override_guest_acs_entrance_ids?: ...;
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: ...; message: ... }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: true;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: ...;
card_function_type: ...;
card_id?: ...;
common_acs_entrance_ids?: ...;
credential_id?: ...;
guest_acs_entrance_ids?: ...;
is_valid?: ...;
joiner_acs_credential_ids?: ...;
};
warnings: ((...) | (...) | (...) | (...) | (...) | (...))[];
workspace_id: string;
}
| {
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: ...;
door_names?: ...;
endpoint_id?: ...;
key_id?: ...;
key_issuing_request_id?: ...;
override_guest_acs_entrance_ids?: ...;
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: ...; message: ... }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: false;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: ...;
card_function_type: ...;
card_id?: ...;
common_acs_entrance_ids?: ...;
credential_id?: ...;
guest_acs_entrance_ids?: ...;
is_valid?: ...;
joiner_acs_credential_ids?: ...;
};
warnings: ((...) | (...) | (...) | (...) | (...) | (...))[];
workspace_id: string;
};
warnings: {
warning_code: | "acs_credential_on_encoder_out_of_sync"
| "acs_credential_on_seam_not_found";
warning_message: string;
}[];
};
status: "success";
}
| {
action_attempt_id: string;
action_type: "SCAN_CREDENTIAL";
error: | { message: string; type: "uncategorized_error" }
| { message: string; type: "action_attempt_expired" }
| { message: string; type: "no_credential_on_encoder" };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "SET_FAN_MODE";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "SET_FAN_MODE";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "SET_FAN_MODE";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "SET_HVAC_MODE";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "SET_HVAC_MODE";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "SET_HVAC_MODE";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "SIMULATE_KEYPAD_CODE_ENTRY";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "SIMULATE_KEYPAD_CODE_ENTRY";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "SIMULATE_KEYPAD_CODE_ENTRY";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "SIMULATE_MANUAL_LOCK_VIA_KEYPAD";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "SIMULATE_MANUAL_LOCK_VIA_KEYPAD";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "SIMULATE_MANUAL_LOCK_VIA_KEYPAD";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "UNLOCK_DOOR";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "UNLOCK_DOOR";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "UNLOCK_DOOR";
error: { message: string; type: string };
result: null;
status: "error";
}
)[];
batch_type: "spaces"
| "access_grants"
| "access_methods"
| "workspaces";
client_sessions?: {
client_session_id: string;
connect_webview_ids: string[];
connected_account_ids: string[];
created_at: string;
customer_id?: string;
device_count: number;
expires_at: string;
token: string;
user_identifier_key: null | string;
user_identity_id?: string;
user_identity_ids: string[];
workspace_id: string;
}[];
connect_webviews?: {
accepted_capabilities: (
"lock"
| "thermostat"
| "noise_sensor"
| "access_control"
)[];
accepted_devices: string[];
accepted_providers: string[];
any_device_allowed: boolean;
any_provider_allowed: boolean;
authorized_at: null | string;
automatically_manage_new_devices: boolean;
connect_webview_id: string;
connected_account_id: null | string;
created_at: string;
custom_metadata: Record<string, string | boolean>;
custom_redirect_failure_url: null | string;
custom_redirect_url: null | string;
customer_key?: string;
device_selection_mode: "none" | "single" | "multiple";
login_successful: boolean;
selected_provider: null | string;
status: "pending" | "failed" | "authorized";
url: string;
wait_for_device_creation: boolean;
workspace_id: string;
}[];
customization_profiles?: {
created_at: string;
customization_profile_id: string;
logo_url?: string;
name: null
| string;
primary_color?: string;
secondary_color?: string;
workspace_id: string;
}[];
devices?: {
can_hvac_cool?: boolean;
can_hvac_heat?: boolean;
can_hvac_heat_cool?: boolean;
can_program_offline_access_codes?: boolean;
can_program_online_access_codes?: boolean;
can_remotely_lock?: boolean;
can_remotely_unlock?: boolean;
can_run_thermostat_programs?: boolean;
can_simulate_connection?: boolean;
can_simulate_disconnection?: boolean;
can_simulate_hub_connection?: boolean;
can_simulate_hub_disconnection?: boolean;
can_simulate_paid_subscription?: boolean;
can_simulate_removal?: boolean;
can_turn_off_hvac?: boolean;
can_unlock_with_code?: boolean;
capabilities_supported: (
| "access_code"
| "lock"
| "noise_detection"
| "thermostat"
| "battery"
| "phone"
)[];
connected_account_id: string;
created_at: string;
custom_metadata: Record<string, string | boolean>;
device_id: string;
device_type:
| LockDeviceTypeFromMapping
| NoiseSensorDeviceTypeFromMapping
| ThermostatDeviceTypeFromMapping
| PhoneDeviceTypeFromMapping;
display_name: string;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: {
sites: {
site_id: ...;
site_name: ...;
site_user_subscription_limit: ...;
subscribed_site_user_count: ...;
}[];
};
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
)[];
is_managed: true;
location: null
| { location_name?: string; timezone?: string };
nickname?: string;
properties: {
accessory_keypad?: {
battery?: { level: ... };
is_connected: boolean;
};
appearance: { name: string };
battery?: {
level: number;
status: "critical" | "low" | "good" | "full";
};
battery_level?: number;
currently_triggering_noise_threshold_ids?: string[];
has_direct_power?: boolean;
image_alt_text?: string;
image_url?: string;
manufacturer?: string;
model: {
accessory_keypad_supported?: boolean;
can_connect_accessory_keypad?: boolean;
display_name: string;
has_built_in_keypad?: boolean;
manufacturer_display_name: string;
offline_access_codes_supported?: boolean;
online_access_codes_supported?: boolean;
};
name: string;
noise_level_decibels?: number;
offline_access_codes_enabled?: boolean;
online: boolean;
online_access_codes_enabled?: boolean;
serial_number?: string;
supports_accessory_keypad?: boolean;
supports_offline_access_codes?: boolean;
} & {
assa_abloy_credential_service_metadata?: {
endpoints: { endpoint_id: ...; is_active: ... }[];
has_active_endpoint: boolean;
};
salto_space_credential_service_metadata?: { has_active_phone: boolean };
} & {
akiles_metadata?: {
_member_group_id?: string;
gadget_id: string;
gadget_name: string;
product_name: string;
};
assa_abloy_vostio_metadata?: { encoder_name: string };
august_metadata?: {
has_keypad: boolean;
house_id?: string;
house_name: string;
keypad_battery_level?: string;
lock_id: string;
lock_name: string;
model?: string;
};
avigilon_alta_metadata?: {
entry_name: string;
entry_relays_total_count: number;
org_name: string;
site_id: number;
site_name: string;
zone_id: number;
zone_name: string;
};
brivo_metadata?: { activation_enabled?: boolean; device_name?: string };
controlbyweb_metadata?: {
device_id: string;
device_name: string;
relay_name: null | string;
};
dormakaba_oracode_metadata?: {
device_id?: string
| number;
door_id?: number;
door_is_wireless: boolean;
door_name: string;
iana_timezone?: string;
predefined_time_slots?: (...)[];
site_id: null | number;
site_name: string;
};
ecobee_metadata?: { device_name: string; ecobee_device_id: string };
four_suites_metadata?: {
device_id: number;
device_name: string;
reclose_delay_in_seconds: number;
};
genie_metadata?: { device_name: string; door_name: string };
honeywell_resideo_metadata?: {
device_name: string;
honeywell_resideo_device_id: string;
};
hubitat_metadata?: {
device_id: string;
device_label: string;
device_name: string;
};
igloo_metadata?: {
bridge_id: string;
device_id: string;
model?: string;
};
igloohome_metadata?: {
bridge_id?: string;
bridge_name?: string;
device_id: string;
device_name: string;
is_keypad_linked_to_bridge?: boolean;
keypad_id?: string;
};
keynest_metadata?: { device_name?: string };
kwikset_metadata?: {
device_id: string;
device_name: string;
model_number: string;
};
lockly_metadata?: {
device_id: string;
device_name: string;
model?: string;
};
minut_metadata?: {
device_id: string;
device_name: string;
latest_sensor_values: {
accelerometer_z: { time: ...; value: ... };
humidity: { time: ...; value: ... };
pressure: { time: ...; value: ... };
sound: { time: ...; value: ... };
temperature: { time: ...; value: ... };
};
};
nest_metadata?: {
device_custom_name: string;
device_name: string;
display_name?: string;
nest_device_id: string;
};
noiseaware_metadata?: {
device_id: string;
device_model: "indoor"
| "outdoor";
device_name: string;
noise_level_decibel: number;
noise_level_nrs: number;
};
nuki_metadata?: {
device_id: string;
device_name: string;
keypad_2_paired?: boolean;
keypad_battery_critical?: boolean;
keypad_paired?: boolean;
};
salto_ks_metadata?: {
battery_level: string;
customer_reference: string;
lock_id: string;
lock_type: string;
locked_state: string;
model?: string;
};
salto_metadata?: {
battery_level: string;
customer_reference: string;
lock_id: string;
lock_type: string;
locked_state: string;
model?: string;
};
schlage_metadata?: {
device_id: string;
device_name: string;
model?: string;
};
seam_bridge_metadata?: {
device_num: number;
name: string;
unlock_method?: "bridge"
| "doorking";
};
sensi_metadata?: {
device_id: string;
device_name: string;
product_type: string;
};
smartthings_metadata?: {
device_id: string;
device_name: string;
location_id?: string;
model?: string;
};
tado_metadata?: { device_type: string; serial_no: string };
tedee_metadata?: {
bridge_id: number;
bridge_name: string;
device_id: number;
device_model: string;
device_name: string;
keypad_id?: number;
serial_number: string;
};
ttlock_metadata?: {
feature_value: string;
features: {
incomplete_keyboard_passcode: boolean;
lock_command: boolean;
passcode: boolean;
passcode_management: boolean;
unlock_via_gateway: boolean;
wifi: boolean;
};
has_gateway?: boolean;
lock_alias: string;
lock_id: number;
wireless_keypads?: (...)[];
};
two_n_metadata?: { device_id: number; device_name: string };
visionline_metadata?: { encoder_id: string };
wyze_metadata?: {
device_id: string;
device_info_model: string;
device_name: string;
keypad_uuid?: string;
locker_status_hardlock?: number;
product_model: string;
product_name: string;
product_type: string;
};
} & {
_experimental_supported_code_from_access_codes_lengths?: number[];
code_constraints?: (
| { constraint_type: ... }
| { constraint_type: ...; max_length?: ...; min_length?: ... }
)[];
door_open?: boolean;
has_native_entry_events?: boolean;
keypad_battery?: { level: number };
locked?: boolean;
max_active_codes_supported?: number;
supported_code_lengths?: number[];
supports_backup_access_code_pool?: boolean;
} & {
active_thermostat_schedule?: | null
| {
climate_preset_key: string;
created_at: string;
device_id: string;
ends_at: string;
errors: { error_code: ...; message: ... }[];
is_override_allowed?: boolean;
max_override_period_minutes?: null | number;
name: null | string;
starts_at: string;
thermostat_schedule_id: string;
workspace_id: string;
};
active_thermostat_schedule_id?: null
| string;
available_climate_preset_modes?: (
"home"
| "away"
| "wake"
| "sleep"
| "occupied"
| "unoccupied"
)[];
available_climate_presets?: {
can_delete: boolean;
can_edit: boolean;
can_program: boolean;
climate_preset_key: string;
climate_preset_mode?:
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...);
cooling_set_point_celsius?: (...) | (...);
cooling_set_point_fahrenheit?: (...) | (...);
display_name: string;
ecobee_metadata?: (...) | (...);
fan_mode_setting?: (...) | (...) | (...) | (...);
heating_set_point_celsius?: (...) | (...);
heating_set_point_fahrenheit?: (...) | (...);
hvac_mode_setting?: (...) | (...) | (...) | (...) | (...) | (...);
manual_override_allowed: boolean;
name?: (...) | (...) | (...);
}[];
available_fan_mode_settings?: ("auto" | "on" | "circulate")[];
available_hvac_mode_settings?: (
"off"
| "heat"
| "cool"
| "heat_cool"
| "eco"
)[];
current_climate_setting?: {
can_delete?: boolean;
can_edit?: boolean;
can_program?: boolean;
climate_preset_key?: string;
climate_preset_mode?:
| "home"
| "away"
| "wake"
| "sleep"
| "occupied"
| "unoccupied";
cooling_set_point_celsius?: number;
cooling_set_point_fahrenheit?: number;
display_name?: string;
ecobee_metadata?: { climate_ref: ...; is_optimized: ...; owner: ... };
fan_mode_setting?: "auto" | "on" | "circulate";
heating_set_point_celsius?: number;
heating_set_point_fahrenheit?: number;
hvac_mode_setting?: "off" | "heat" | "cool" | "heat_cool" | "eco";
manual_override_allowed?: boolean;
name?: null | string;
};
default_climate_setting?: {
can_delete?: boolean;
can_edit?: boolean;
can_program?: boolean;
climate_preset_key?: string;
climate_preset_mode?: | "home"
| "away"
| "wake"
| "sleep"
| "occupied"
| "unoccupied";
cooling_set_point_celsius?: number;
cooling_set_point_fahrenheit?: number;
display_name?: string;
ecobee_metadata?: { climate_ref: ...; is_optimized: ...; owner: ... };
fan_mode_setting?: "auto" | "on" | "circulate";
heating_set_point_celsius?: number;
heating_set_point_fahrenheit?: number;
hvac_mode_setting?: "off" | "heat" | "cool" | "heat_cool" | "eco";
manual_override_allowed?: boolean;
name?: null | string;
};
fallback_climate_preset_key?: null
| string;
fan_mode_setting?: "auto" | "on" | "circulate";
is_cooling?: boolean;
is_fan_running?: boolean;
is_heating?: boolean;
is_temporary_manual_override_active?: boolean;
max_cooling_set_point_celsius?: number;
max_cooling_set_point_fahrenheit?: number;
max_heating_set_point_celsius?: number;
max_heating_set_point_fahrenheit?: number;
max_thermostat_daily_program_periods_per_day?: number;
min_cooling_set_point_celsius?: number;
min_cooling_set_point_fahrenheit?: number;
min_heating_cooling_delta_celsius?: number;
min_heating_cooling_delta_fahrenheit?: number;
min_heating_set_point_celsius?: number;
min_heating_set_point_fahrenheit?: number;
relative_humidity?: number;
temperature_celsius?: number;
temperature_fahrenheit?: number;
temperature_threshold?: {
lower_limit_celsius: null | number;
lower_limit_fahrenheit: null | number;
upper_limit_celsius: null | number;
upper_limit_fahrenheit: null | number;
};
thermostat_daily_program_period_precision_minutes?: number;
thermostat_daily_programs?: {
created_at: string;
device_id: string;
name: (...)
| (...);
periods: (...)[];
thermostat_daily_program_id: string;
workspace_id: string;
}[];
thermostat_weekly_program?: | null
| {
created_at: string;
friday_program_id: null
| string;
monday_program_id: null | string;
saturday_program_id: null | string;
sunday_program_id: null | string;
thursday_program_id: null | string;
tuesday_program_id: null | string;
wednesday_program_id: null | string;
};
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "partial_backup_access_code_pool";
}
| {
created_at: string;
message: string;
warning_code: "many_active_backup_codes";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_office_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_privacy_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_subscription_limit_almost_reached";
}
| {
created_at: string;
message: string;
warning_code: "wyze_device_missing_gateway";
}
| {
created_at: string;
message: string;
warning_code: "functional_offline_device";
}
| {
created_at: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_lock_gateway_unlocking_not_enabled";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_weak_gateway_signal";
}
| {
created_at: string;
message: string;
warning_code: "power_saving_mode";
}
| {
created_at: string;
message: string;
warning_code: "temperature_threshold_exceeded";
}
| {
created_at: string;
message: string;
warning_code: "device_communication_degraded";
}
| {
created_at: string;
message: string;
warning_code: "scheduled_maintenance_window";
}
| {
created_at: string;
message: string;
warning_code: "device_has_flaky_connection";
}
| {
created_at: string;
message: string;
warning_code: "lockly_time_zone_not_configured";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_phone";
}
)[];
workspace_id: string;
}[];
events?: (
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.created";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.changed";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
code: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.scheduled_on_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
code: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.set_on_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.removed_from_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.delay_in_setting_on_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.failed_to_set_on_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
code: null
| string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.deleted";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.delay_in_removing_from_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.failed_to_remove_from_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.modified_external_to_seam";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.deleted_external_to_seam";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
backup_access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.backup_access_code_pulled";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.unmanaged.converted_to_managed";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.unmanaged.failed_to_convert_to_managed";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.unmanaged.created";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.unmanaged.removed";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_id: string;
created_at: string;
event_id: string;
event_type: "access_grant.created";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_id: string;
created_at: string;
event_id: string;
event_type: "access_grant.deleted";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_id: string;
created_at: string;
event_id: string;
event_type: "access_grant.access_granted_to_all_doors";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_id: string;
acs_entrance_id: string;
created_at: string;
event_id: string;
event_type: "access_grant.access_granted_to_door";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_id: string;
acs_entrance_id: string;
created_at: string;
event_id: string;
event_type: "access_grant.access_to_door_lost";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_ids: string[];
access_grant_keys?: string[];
access_method_id: string;
code?: string;
created_at: string;
event_id: string;
event_type: "access_method.issued";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_ids: string[];
access_grant_keys?: string[];
access_method_id: string;
created_at: string;
event_id: string;
event_type: "access_method.card_encoding_required";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_ids: string[];
access_grant_keys?: string[];
access_method_id: string;
created_at: string;
event_id: string;
event_type: "access_method.revoked";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_ids: string[];
access_grant_keys?: string[];
access_method_id: string;
created_at: string;
event_id: string;
event_type: "access_method.deleted";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_ids: string[];
access_grant_keys?: string[];
access_method_id: string;
code?: string;
created_at: string;
event_id: string;
event_type: "access_method.reissued";
occurred_at: string;
workspace_id: string;
}
| {
acs_access_group_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_access_group.deleted";
occurred_at: string;
workspace_id: string;
}
| {
acs_credential_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_credential.deleted";
occurred_at: string;
workspace_id: string;
}
| {
acs_credential_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_credential.issued";
occurred_at: string;
workspace_id: string;
}
| {
acs_credential_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_credential.reissued";
occurred_at: string;
workspace_id: string;
}
| {
acs_credential_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_credential.invalidated";
occurred_at: string;
workspace_id: string;
}
| {
acs_encoder_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_encoder.added";
occurred_at: string;
workspace_id: string;
}
| {
acs_encoder_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_encoder.removed";
occurred_at: string;
workspace_id: string;
}
| {
acs_entrance_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_entrance.added";
occurred_at: string;
workspace_id: string;
}
| {
acs_entrance_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_entrance.removed";
occurred_at: string;
workspace_id: string;
}
| {
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_system.connected";
occurred_at: string;
workspace_id: string;
}
| {
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_system.disconnected";
occurred_at: string;
workspace_id: string;
}
| {
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_system.added";
occurred_at: string;
workspace_id: string;
}
| {
acs_system_id: string;
acs_user_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_user.deleted";
occurred_at: string;
workspace_id: string;
}
| {
acs_system_id: string;
acs_user_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_user.created";
occurred_at: string;
workspace_id: string;
}
| {
action_attempt_id: string;
action_type: string;
created_at: string;
event_id: string;
event_type: "action_attempt.lock_door.succeeded";
occurred_at: string;
status: string;
workspace_id: string;
}
| {
action_attempt_id: string;
action_type: string;
created_at: string;
event_id: string;
event_type: "action_attempt.lock_door.failed";
occurred_at: string;
status: string;
workspace_id: string;
}
| {
action_attempt_id: string;
action_type: string;
created_at: string;
event_id: string;
event_type: "action_attempt.unlock_door.succeeded";
occurred_at: string;
status: string;
workspace_id: string;
}
| {
action_attempt_id: string;
action_type: string;
created_at: string;
event_id: string;
event_type: "action_attempt.unlock_door.failed";
occurred_at: string;
status: string;
workspace_id: string;
}
| {
client_session_id: string;
created_at: string;
event_id: string;
event_type: "client_session.deleted";
occurred_at: string;
workspace_id: string;
}
| {
connect_webview_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connect_webview.login_succeeded";
occurred_at: string;
workspace_id: string;
}
| {
connect_webview_id: string;
created_at: string;
event_id: string;
event_type: "connect_webview.login_failed";
occurred_at: string;
workspace_id: string;
}
| {
connect_webview_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.connected";
occurred_at: string;
workspace_id: string;
}
| {
connect_webview_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.created";
occurred_at: string;
workspace_id: string;
}
| {
connect_webview_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.successful_login";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.disconnected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.completed_first_sync";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.deleted";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.completed_first_sync_after_reconnection";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.connected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.added";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.converted_to_unmanaged";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.unmanaged.converted_to_managed";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.unmanaged.connected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
error_code:
| "account_disconnected"
| "hub_disconnected"
| "device_disconnected";
event_id: string;
event_type: "device.disconnected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
error_code:
| "account_disconnected"
| "hub_disconnected"
| "device_disconnected";
event_id: string;
event_type: "device.unmanaged.disconnected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.tampered";
occurred_at: string;
workspace_id: string;
}
| {
battery_level: number;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.low_battery";
occurred_at: string;
workspace_id: string;
}
| {
battery_level: number;
battery_status: "critical"
| "low"
| "good"
| "full";
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.battery_status_changed";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.removed";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.deleted";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.third_party_integration_detected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.third_party_integration_no_longer_detected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.salto.privacy_mode_activated";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.salto.privacy_mode_deactivated";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.connection_became_flaky";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.connection_stabilized";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.error.subscription_required";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.error.subscription_required.resolved";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.accessory_keypad_connected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.accessory_keypad_disconnected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "noise_sensor.noise_threshold_triggered";
minut_metadata?: Record<string, unknown>;
noise_level_decibels?: number;
noise_level_nrs?: number;
noise_threshold_id?: string;
noise_threshold_name?: string;
noiseaware_metadata?: Record<string, unknown>;
occurred_at: string;
workspace_id: string;
}
| {
access_code_id?: string;
action_attempt_id?: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "lock.locked";
method: "unknown" | "keycode" | "manual" | "automatic" | "seamapi";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id?: string;
action_attempt_id?: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "lock.unlocked";
method: "unknown" | "keycode" | "manual" | "automatic" | "seamapi";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id?: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "lock.access_denied";
occurred_at: string;
workspace_id: string;
}
| {
climate_preset_key: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "thermostat.climate_preset_activated";
is_fallback_climate_preset: boolean;
occurred_at: string;
thermostat_schedule_id: null | string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
cooling_set_point_celsius?: number;
cooling_set_point_fahrenheit?: number;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "thermostat.manually_adjusted";
fan_mode_setting?: "auto" | "on" | "circulate";
heating_set_point_celsius?: number;
heating_set_point_fahrenheit?: number;
hvac_mode_setting?: "off" | "heat" | "cool" | "heat_cool" | "eco";
method: "seam" | "external";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "thermostat.temperature_threshold_exceeded";
lower_limit_celsius: null | number;
lower_limit_fahrenheit: null | number;
occurred_at: string;
temperature_celsius: number;
temperature_fahrenheit: number;
upper_limit_celsius: null | number;
upper_limit_fahrenheit: null | number;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "thermostat.temperature_threshold_no_longer_exceeded";
lower_limit_celsius: null | number;
lower_limit_fahrenheit: null | number;
occurred_at: string;
temperature_celsius: number;
temperature_fahrenheit: number;
upper_limit_celsius: null | number;
upper_limit_fahrenheit: null | number;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
desired_temperature_celsius?: number;
desired_temperature_fahrenheit?: number;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "thermostat.temperature_reached_set_point";
occurred_at: string;
temperature_celsius: number;
temperature_fahrenheit: number;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "thermostat.temperature_changed";
occurred_at: string;
temperature_celsius: number;
temperature_fahrenheit: number;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
device_name: string;
event_id: string;
event_type: "device.name_changed";
occurred_at: string;
workspace_id: string;
}
| {
created_at: string;
enrollment_automation_id: string;
event_id: string;
event_type: "enrollment_automation.deleted";
occurred_at: string;
workspace_id: string;
}
| {
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "phone.deactivated";
occurred_at: string;
workspace_id: string;
}
)[];
instant_keys?: {
client_session_id: string;
created_at: string;
customization?: {
logo_url?: string;
primary_color?: string;
secondary_color?: string;
};
customization_profile_id?: string;
expires_at: string;
instant_key_id: string;
instant_key_url: string;
user_identity_id: string;
workspace_id: string;
}[];
noise_thresholds?: {
device_id: string;
ends_daily_at: string;
name: string;
noise_threshold_decibels: number;
noise_threshold_id: string;
noise_threshold_nrs?: number;
starts_daily_at: string;
}[];
spaces?: {
acs_entrance_count: number;
created_at: string;
device_count: number;
display_name: string;
name: string;
space_id: string;
space_key?: string;
workspace_id: string;
}[];
thermostat_daily_programs?: {
created_at: string;
device_id: string;
name: null
| string;
periods: { climate_preset_key: string; starts_at_time: string }[];
thermostat_daily_program_id: string;
workspace_id: string;
}[];
thermostat_schedules?: {
climate_preset_key: string;
created_at: string;
device_id: string;
ends_at: string;
errors: { error_code: string; message: string }[];
is_override_allowed?: boolean;
max_override_period_minutes?: null | number;
name: null | string;
starts_at: string;
thermostat_schedule_id: string;
workspace_id: string;
}[];
unmanaged_access_codes?: {
access_code_id: string;
code: null
| string;
created_at: string;
device_id: string;
ends_at?: null | string;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: {
sites: {
site_id: ...;
site_name: ...;
site_user_subscription_limit: ...;
subscribed_site_user_count: ...;
}[];
};
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_access_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_after_multiple_retries";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "code_modified_external_to_seam";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_set_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_remove_from_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_attempt_prevented";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "no_space_for_access_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_too_many_pending_jobs";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_deletion";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_offline_access_code_no_variance_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_invalid_code_length";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_slots_full";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_temporarily_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_missing_keypad";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "salto_ks_user_not_subscribed";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_no_free_positions_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_no_free_slots_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_duplicate_code_name";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_potential_duplicate_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "dormakaba_oracode_no_valid_user_level";
is_access_code_error: true;
message: string;
}
)[];
is_managed: false;
name: null
| string;
starts_at?: null | string;
status: "set";
type: "time_bound" | "ongoing";
warnings: (
| {
created_at?: string;
message: string;
warning_code: "smartthings_failed_to_set_access_code";
}
| {
created_at?: string;
message: string;
warning_code: "august_device_programming_delay";
}
| {
created_at?: string;
message: string;
warning_code: "august_lock_temporarily_offline";
}
| {
created_at?: string;
message: string;
warning_code: "code_modified_external_to_seam";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_detected_duplicate";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_creation_outage";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_setting_on_device";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_removing_from_device";
}
| {
created_at?: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at?: string;
message: string;
warning_code: "igloo_algopin_must_be_used_within_24_hours";
}
| {
created_at?: string;
message: string;
warning_code: "management_transferred";
}
| {
created_at?: string;
message: string;
warning_code: "kwikset_unable_to_confirm_code";
}
)[];
workspace_id: string;
}[];
unmanaged_acs_access_groups?: {
access_group_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
access_group_type_display_name: string;
acs_access_group_id: string;
acs_system_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
external_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
external_type_display_name: string;
is_managed: false;
name: string;
warnings: {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_access_group";
}[];
workspace_id: string;
}[];
unmanaged_acs_credentials?: {
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: boolean;
door_names?: string[];
endpoint_id?: string;
key_id?: string;
key_issuing_request_id?: string;
override_guest_acs_entrance_ids?: string[];
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: string; message: string }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: false;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: boolean;
card_function_type: "guest" | "staff";
card_id?: string;
common_acs_entrance_ids?: string[];
credential_id?: string;
guest_acs_entrance_ids?: string[];
is_valid?: boolean;
joiner_acs_credential_ids?: string[];
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "waiting_to_be_issued";
}
| {
created_at: string;
message: string;
warning_code: "schedule_externally_modified";
}
| {
created_at: string;
message: string;
warning_code: "schedule_modified";
}
| { created_at: string; message: string; warning_code: "being_deleted" }
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_credential";
}
| {
created_at: string;
message: string;
warning_code: "needs_to_be_reissued";
}
)[];
workspace_id: string;
}[];
unmanaged_acs_users?: {
access_schedule?: { ends_at: null
| string; starts_at: string };
acs_system_id: string;
acs_user_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
email?: string;
email_address?: string;
errors: (
| {
created_at: string;
error_code: "deleted_externally";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
message: string;
}
| {
created_at: string;
error_code: "failed_to_create_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_update_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_delete_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "latch_conflict_with_resident_user";
message: string;
}
)[];
external_type?: | "pti_user"
| "brivo_user"
| "hid_credential_manager_user"
| "salto_site_user"
| "latch_user"
| "dormakaba_community_user"
| "salto_space_user";
external_type_display_name?: string;
full_name?: string;
hid_acs_system_id?: string;
is_managed: false;
is_suspended?: boolean;
last_successful_sync_at: null
| string;
pending_mutations?: (
| { created_at: string; message: string; mutation_code: "creating" }
| { created_at: string; message: string; mutation_code: "deleting" }
| {
created_at: string;
from: {
email_address?: (...) | (...) | (...);
full_name?: (...) | (...) | (...);
phone_number?: (...) | (...) | (...);
};
message: string;
mutation_code: "updating_user_information";
to: {
email_address?: (...)
| (...)
| (...);
full_name?: (...) | (...) | (...);
phone_number?: (...) | (...) | (...);
};
}
| {
created_at: string;
from: { ends_at: (...)
| (...); starts_at: (...) | (...) };
message: string;
mutation_code: "updating_access_schedule";
to: { ends_at: (...) | (...); starts_at: (...) | (...) };
}
| {
created_at: string;
from: { is_suspended: boolean };
message: string;
mutation_code: "updating_suspension_state";
to: { is_suspended: boolean };
}
| {
created_at: string;
from: { acs_access_group_id: (...)
| (...) };
message: string;
mutation_code: "updating_group_membership";
to: { acs_access_group_id: (...) | (...) };
}
)[];
phone_number?: string;
user_identity_email_address?: null
| string;
user_identity_full_name?: null | string;
user_identity_id?: string;
user_identity_phone_number?: null | string;
warnings: (
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_user_not_subscribed";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_user";
}
| {
created_at: string;
message: string;
warning_code: "latch_resident_user";
}
)[];
workspace_id: string;
}[];
unmanaged_devices?: {
can_hvac_cool?: boolean;
can_hvac_heat?: boolean;
can_hvac_heat_cool?: boolean;
can_program_offline_access_codes?: boolean;
can_program_online_access_codes?: boolean;
can_remotely_lock?: boolean;
can_remotely_unlock?: boolean;
can_run_thermostat_programs?: boolean;
can_simulate_connection?: boolean;
can_simulate_disconnection?: boolean;
can_simulate_hub_connection?: boolean;
can_simulate_hub_disconnection?: boolean;
can_simulate_paid_subscription?: boolean;
can_simulate_removal?: boolean;
can_turn_off_hvac?: boolean;
can_unlock_with_code?: boolean;
capabilities_supported: (
| "access_code"
| "lock"
| "noise_detection"
| "thermostat"
| "battery"
| "phone"
)[];
connected_account_id: string;
created_at: string;
custom_metadata: Record<string, string | boolean>;
device_id: string;
device_type:
| LockDeviceTypeFromMapping
| NoiseSensorDeviceTypeFromMapping
| ThermostatDeviceTypeFromMapping
| PhoneDeviceTypeFromMapping;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: {
sites: {
site_id: ...;
site_name: ...;
site_user_subscription_limit: ...;
subscribed_site_user_count: ...;
}[];
};
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
)[];
is_managed: false;
location: null
| { location_name?: string; timezone?: string };
properties: {
accessory_keypad?: {
battery?: { level: number };
is_connected: boolean;
};
battery?: {
level: number;
status: "critical"
| "low"
| "good"
| "full";
};
battery_level?: number;
image_alt_text?: string;
image_url?: string;
manufacturer?: string;
model: {
accessory_keypad_supported?: boolean;
can_connect_accessory_keypad?: boolean;
display_name: string;
has_built_in_keypad?: boolean;
manufacturer_display_name: string;
offline_access_codes_supported?: boolean;
online_access_codes_supported?: boolean;
};
name: string;
offline_access_codes_enabled?: boolean;
online: boolean;
online_access_codes_enabled?: boolean;
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "partial_backup_access_code_pool";
}
| {
created_at: string;
message: string;
warning_code: "many_active_backup_codes";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_office_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_privacy_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_subscription_limit_almost_reached";
}
| {
created_at: string;
message: string;
warning_code: "wyze_device_missing_gateway";
}
| {
created_at: string;
message: string;
warning_code: "functional_offline_device";
}
| {
created_at: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_lock_gateway_unlocking_not_enabled";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_weak_gateway_signal";
}
| {
created_at: string;
message: string;
warning_code: "power_saving_mode";
}
| {
created_at: string;
message: string;
warning_code: "temperature_threshold_exceeded";
}
| {
created_at: string;
message: string;
warning_code: "device_communication_degraded";
}
| {
created_at: string;
message: string;
warning_code: "scheduled_maintenance_window";
}
| {
created_at: string;
message: string;
warning_code: "device_has_flaky_connection";
}
| {
created_at: string;
message: string;
warning_code: "lockly_time_zone_not_configured";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_phone";
}
)[];
workspace_id: string;
}[];
user_identities?: {
acs_user_ids: string[];
created_at: string;
display_name: string;
email_address: null
| string;
errors: {
acs_system_id: string;
acs_user_id: string;
created_at: string;
error_code: "issue_with_acs_user";
message: string;
}[];
full_name: null
| string;
phone_number: null | string;
user_identity_id: string;
user_identity_key: null | string;
warnings: (
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "acs_user_profile_does_not_match_user_identity";
}
)[];
workspace_id: string;
}[];
workspaces?: {
company_name: string;
connect_partner_name: null
| string;
connect_webview_customization: {
inviter_logo_url?: string;
logo_shape?: "circle" | "square";
primary_button_color?: string;
primary_button_text_color?: string;
success_message?: string;
};
is_sandbox: boolean;
is_suspended: boolean;
name: string;
workspace_id: string;
}[];
},
{
access_codes?: {
access_code_id: string;
code: null
| string;
common_code_key: null | string;
created_at: string;
device_id: string;
ends_at?: null | string;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: {
sites: {
site_id: ...;
site_name: ...;
site_user_subscription_limit: ...;
subscribed_site_user_count: ...;
}[];
};
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_access_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_after_multiple_retries";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "code_modified_external_to_seam";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_set_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_remove_from_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_attempt_prevented";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "no_space_for_access_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_too_many_pending_jobs";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_deletion";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_offline_access_code_no_variance_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_invalid_code_length";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_slots_full";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_temporarily_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_missing_keypad";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "salto_ks_user_not_subscribed";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_no_free_positions_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_no_free_slots_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_duplicate_code_name";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_potential_duplicate_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "dormakaba_oracode_no_valid_user_level";
is_access_code_error: true;
message: string;
}
)[];
is_backup?: boolean;
is_backup_access_code_available: boolean;
is_external_modification_allowed: boolean;
is_managed: true;
is_offline_access_code: boolean;
is_one_time_use: boolean;
is_scheduled_on_device?: boolean;
is_waiting_for_code_assignment?: boolean;
name: null
| string;
pulled_backup_access_code_id?: null | string;
starts_at?: null | string;
status: "unknown" | "set" | "setting" | "unset" | "removing";
type: "time_bound" | "ongoing";
warnings: (
| {
created_at?: string;
message: string;
warning_code: "smartthings_failed_to_set_access_code";
}
| {
created_at?: string;
message: string;
warning_code: "august_device_programming_delay";
}
| {
created_at?: string;
message: string;
warning_code: "august_lock_temporarily_offline";
}
| {
created_at?: string;
message: string;
warning_code: "code_modified_external_to_seam";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_detected_duplicate";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_creation_outage";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_setting_on_device";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_removing_from_device";
}
| {
created_at?: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at?: string;
message: string;
warning_code: "igloo_algopin_must_be_used_within_24_hours";
}
| {
created_at?: string;
message: string;
warning_code: "management_transferred";
}
| {
created_at?: string;
message: string;
warning_code: "kwikset_unable_to_confirm_code";
}
)[];
workspace_id: string;
}[];
access_grants?: {
access_grant_id: string;
access_grant_key?: string;
access_method_ids: string[];
client_session_token?: string;
created_at: string;
customization_profile_id?: string;
display_name: string;
ends_at: null
| string;
instant_key_url?: string;
location_ids: string[];
name: null | string;
requested_access_methods: {
code?: string;
created_access_method_ids: string[];
created_at: string;
display_name: string;
mode: "code" | "card" | "mobile_key";
}[];
space_ids: string[];
starts_at: string;
user_identity_id: string;
workspace_id: string;
}[];
access_methods?: {
access_method_id: string;
client_session_token?: string;
code?: null
| string;
created_at: string;
customization_profile_id?: string;
display_name: string;
instant_key_url?: string;
is_encoding_required?: boolean;
is_issued: boolean;
issued_at: null | string;
mode: "code" | "card" | "mobile_key";
workspace_id: string;
}[];
acs_access_groups?: {
access_group_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
access_group_type_display_name: string;
acs_access_group_id: string;
acs_system_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
external_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
external_type_display_name: string;
is_managed: true;
name: string;
warnings: {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_access_group";
}[];
workspace_id: string;
}[];
acs_credentials?: {
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: boolean;
door_names?: string[];
endpoint_id?: string;
key_id?: string;
key_issuing_request_id?: string;
override_guest_acs_entrance_ids?: string[];
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: string; message: string }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: true;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: boolean;
card_function_type: "guest" | "staff";
card_id?: string;
common_acs_entrance_ids?: string[];
credential_id?: string;
guest_acs_entrance_ids?: string[];
is_valid?: boolean;
joiner_acs_credential_ids?: string[];
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "waiting_to_be_issued";
}
| {
created_at: string;
message: string;
warning_code: "schedule_externally_modified";
}
| {
created_at: string;
message: string;
warning_code: "schedule_modified";
}
| { created_at: string; message: string; warning_code: "being_deleted" }
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_credential";
}
| {
created_at: string;
message: string;
warning_code: "needs_to_be_reissued";
}
)[];
workspace_id: string;
}[];
acs_encoders?: {
acs_encoder_id: string;
acs_system_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
errors: {
created_at: string;
error_code: "acs_encoder_removed";
message: string;
}[];
workspace_id: string;
}[];
acs_entrances?: {
acs_entrance_id: string;
acs_system_id: string;
assa_abloy_vostio_metadata?: {
door_name: string;
door_number?: number;
door_type: "CommonDoor"
| "EntranceDoor"
| "GuestDoor"
| "Elevator";
pms_id?: string;
stand_open?: boolean;
};
can_unlock_with_card?: boolean;
can_unlock_with_code?: boolean;
can_unlock_with_mobile_key?: boolean;
connected_account_id: string;
created_at: string;
display_name: string;
dormakaba_ambiance_metadata?: { access_point_name: string };
dormakaba_community_metadata?: { access_point_name: string };
errors: { error_code: string; message: string }[];
hotek_metadata?: { room_number: string };
latch_metadata?: {
accessibility_type: string;
door_name: string;
door_type: string;
is_connected: boolean;
};
salto_ks_metadata?: {
battery_level: string;
door_name: string;
intrusion_alarm?: boolean;
left_open_alarm?: boolean;
lock_type: string;
locked_state: string;
online?: boolean;
privacy_mode?: boolean;
};
salto_space_metadata?: {
door_description?: string;
door_id?: string;
door_name?: string;
ext_door_id?: string;
room_description?: string;
room_name?: string;
};
visionline_metadata?: {
door_category: | "entrance"
| "guest"
| "elevator reader"
| "common"
| "common (PMS)";
door_name: string;
profiles?: {
visionline_door_profile_id: string;
visionline_door_profile_type: (...)
| (...)
| (...);
}[];
};
}[];
acs_systems?: {
acs_access_group_count?: number;
acs_system_id: string;
acs_user_count?: number;
connected_account_id: string;
connected_account_ids: string[];
created_at: string;
default_credential_manager_acs_system_id?: null
| string;
errors: (
| {
created_at: string;
error_code: "seam_bridge_disconnected";
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "visionline_instance_unreachable";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
message: string;
}
| {
created_at: string;
error_code: "acs_system_disconnected";
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_certification_expired";
message: string;
}
)[];
external_type?: | "assa_abloy_credential_service"
| "assa_abloy_vostio"
| "assa_abloy_vostio_credential_service"
| "pti_site"
| "alta_org"
| "salto_ks_site"
| "salto_space_system"
| "brivo_account"
| "hid_credential_manager_organization"
| "visionline_system"
| "latch_building"
| "dormakaba_community_site"
| "dormakaba_ambiance_site"
| "legic_connect_credential_service";
external_type_display_name?: string;
image_alt_text: string;
image_url: string;
is_credential_manager: boolean;
location: { time_zone: null
| string };
name: string;
system_type?:
| "assa_abloy_credential_service"
| "assa_abloy_vostio"
| "assa_abloy_vostio_credential_service"
| "pti_site"
| "alta_org"
| "salto_ks_site"
| "salto_space_system"
| "brivo_account"
| "hid_credential_manager_organization"
| "visionline_system"
| "latch_building"
| "dormakaba_community_site"
| "dormakaba_ambiance_site"
| "legic_connect_credential_service";
system_type_display_name?: string;
visionline_metadata?: {
lan_address: string;
mobile_access_uuid: string;
system_id: string;
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "salto_ks_subscription_limit_almost_reached";
}
| {
created_at: string;
message: string;
misconfigured_acs_entrance_ids?: string[];
warning_code: "time_zone_does_not_match_location";
}
)[];
workspace_id: string;
}[];
acs_users?: {
access_schedule?: { ends_at: null
| string; starts_at: string };
acs_system_id: string;
acs_user_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
email?: string;
email_address?: string;
errors: (
| {
created_at: string;
error_code: "deleted_externally";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
message: string;
}
| {
created_at: string;
error_code: "failed_to_create_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_update_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_delete_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "latch_conflict_with_resident_user";
message: string;
}
)[];
external_type?: | "pti_user"
| "brivo_user"
| "hid_credential_manager_user"
| "salto_site_user"
| "latch_user"
| "dormakaba_community_user"
| "salto_space_user";
external_type_display_name?: string;
full_name?: string;
hid_acs_system_id?: string;
is_managed: true;
is_suspended?: boolean;
last_successful_sync_at: null
| string;
pending_mutations?: (
| { created_at: string; message: string; mutation_code: "creating" }
| { created_at: string; message: string; mutation_code: "deleting" }
| {
created_at: string;
from: {
email_address?: (...) | (...) | (...);
full_name?: (...) | (...) | (...);
phone_number?: (...) | (...) | (...);
};
message: string;
mutation_code: "updating_user_information";
to: {
email_address?: (...)
| (...)
| (...);
full_name?: (...) | (...) | (...);
phone_number?: (...) | (...) | (...);
};
}
| {
created_at: string;
from: { ends_at: (...)
| (...); starts_at: (...) | (...) };
message: string;
mutation_code: "updating_access_schedule";
to: { ends_at: (...) | (...); starts_at: (...) | (...) };
}
| {
created_at: string;
from: { is_suspended: boolean };
message: string;
mutation_code: "updating_suspension_state";
to: { is_suspended: boolean };
}
| {
created_at: string;
from: { acs_access_group_id: (...)
| (...) };
message: string;
mutation_code: "updating_group_membership";
to: { acs_access_group_id: (...) | (...) };
}
)[];
phone_number?: string;
user_identity_email_address?: null
| string;
user_identity_full_name?: null | string;
user_identity_id?: string;
user_identity_phone_number?: null | string;
warnings: (
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_user_not_subscribed";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_user";
}
| {
created_at: string;
message: string;
warning_code: "latch_resident_user";
}
)[];
workspace_id: string;
}[];
action_attempts?: (
| {
action_attempt_id: string;
action_type: "ACTIVATE_CLIMATE_PRESET";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "ACTIVATE_CLIMATE_PRESET";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "ACTIVATE_CLIMATE_PRESET";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "SYNC_ACCESS_CODES";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "SYNC_ACCESS_CODES";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "SYNC_ACCESS_CODES";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "CREATE_ACCESS_CODE";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "CREATE_ACCESS_CODE";
error: null;
result: { access_code?: any };
status: "success";
}
| {
action_attempt_id: string;
action_type: "CREATE_ACCESS_CODE";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "DELETE_ACCESS_CODE";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "DELETE_ACCESS_CODE";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "DELETE_ACCESS_CODE";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "UPDATE_ACCESS_CODE";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "UPDATE_ACCESS_CODE";
error: null;
result: { access_code?: any };
status: "success";
}
| {
action_attempt_id: string;
action_type: "UPDATE_ACCESS_CODE";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "CREATE_NOISE_THRESHOLD";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "CREATE_NOISE_THRESHOLD";
error: null;
result: { noise_threshold?: any };
status: "success";
}
| {
action_attempt_id: string;
action_type: "CREATE_NOISE_THRESHOLD";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "DELETE_NOISE_THRESHOLD";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "DELETE_NOISE_THRESHOLD";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "DELETE_NOISE_THRESHOLD";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "UPDATE_NOISE_THRESHOLD";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "UPDATE_NOISE_THRESHOLD";
error: null;
result: { noise_threshold?: any };
status: "success";
}
| {
action_attempt_id: string;
action_type: "UPDATE_NOISE_THRESHOLD";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "ENCODE_CREDENTIAL";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "ENCODE_CREDENTIAL";
error: null;
result: | {
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: (...) | (...) | (...);
door_names?: (...) | (...);
endpoint_id?: (...) | (...);
key_id?: (...) | (...);
key_issuing_request_id?: (...) | (...);
override_guest_acs_entrance_ids?: (...) | (...);
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: string; message: string }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: true;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: (...) | (...) | (...);
card_function_type: (...) | (...);
card_id?: (...) | (...);
common_acs_entrance_ids?: (...) | (...);
credential_id?: (...) | (...);
guest_acs_entrance_ids?: (...) | (...);
is_valid?: (...) | (...) | (...);
joiner_acs_credential_ids?: (...) | (...);
};
warnings: (
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
)[];
workspace_id: string;
}
| {
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: (...) | (...) | (...);
door_names?: (...) | (...);
endpoint_id?: (...) | (...);
key_id?: (...) | (...);
key_issuing_request_id?: (...) | (...);
override_guest_acs_entrance_ids?: (...) | (...);
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: string; message: string }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: false;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: (...) | (...) | (...);
card_function_type: (...) | (...);
card_id?: (...) | (...);
common_acs_entrance_ids?: (...) | (...);
credential_id?: (...) | (...);
guest_acs_entrance_ids?: (...) | (...);
is_valid?: (...) | (...) | (...);
joiner_acs_credential_ids?: (...) | (...);
};
warnings: (
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
| { created_at: ...; message: ...; warning_code: ... }
)[];
workspace_id: string;
};
status: "success";
}
| {
action_attempt_id: string;
action_type: "ENCODE_CREDENTIAL";
error: | { message: string; type: "uncategorized_error" }
| { message: string; type: "action_attempt_expired" }
| { message: string; type: "no_credential_on_encoder" }
| { message: string; type: "incompatible_card_format" }
| { message: string; type: "credential_cannot_be_reissued" };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "LOCK_DOOR";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "LOCK_DOOR";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "LOCK_DOOR";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "PUSH_THERMOSTAT_PROGRAMS";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "PUSH_THERMOSTAT_PROGRAMS";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "PUSH_THERMOSTAT_PROGRAMS";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "RESET_SANDBOX_WORKSPACE";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "RESET_SANDBOX_WORKSPACE";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "RESET_SANDBOX_WORKSPACE";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "SCAN_CREDENTIAL";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "SCAN_CREDENTIAL";
error: null;
result: {
acs_credential_on_encoder: | null
| {
card_number: null
| string;
created_at: null | string;
ends_at: null | string;
is_issued: null | boolean;
starts_at: null | string;
visionline_metadata?: {
cancelled: ...;
card_format: ...;
card_holder?: ...;
card_id: ...;
common_acs_entrance_ids?: ...;
discarded: ...;
expired: ...;
guest_acs_entrance_ids?: ...;
number_of_issued_cards: ...;
overridden?: ...;
overwritten: ...;
pending_auto_update: ...;
};
};
acs_credential_on_seam: | null
| {
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: ...;
door_names?: ...;
endpoint_id?: ...;
key_id?: ...;
key_issuing_request_id?: ...;
override_guest_acs_entrance_ids?: ...;
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: ...; message: ... }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: true;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: ...;
card_function_type: ...;
card_id?: ...;
common_acs_entrance_ids?: ...;
credential_id?: ...;
guest_acs_entrance_ids?: ...;
is_valid?: ...;
joiner_acs_credential_ids?: ...;
};
warnings: ((...) | (...) | (...) | (...) | (...) | (...))[];
workspace_id: string;
}
| {
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: ...;
door_names?: ...;
endpoint_id?: ...;
key_id?: ...;
key_issuing_request_id?: ...;
override_guest_acs_entrance_ids?: ...;
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: ...; message: ... }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: false;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: ...;
card_function_type: ...;
card_id?: ...;
common_acs_entrance_ids?: ...;
credential_id?: ...;
guest_acs_entrance_ids?: ...;
is_valid?: ...;
joiner_acs_credential_ids?: ...;
};
warnings: ((...) | (...) | (...) | (...) | (...) | (...))[];
workspace_id: string;
};
warnings: {
warning_code: | "acs_credential_on_encoder_out_of_sync"
| "acs_credential_on_seam_not_found";
warning_message: string;
}[];
};
status: "success";
}
| {
action_attempt_id: string;
action_type: "SCAN_CREDENTIAL";
error: | { message: string; type: "uncategorized_error" }
| { message: string; type: "action_attempt_expired" }
| { message: string; type: "no_credential_on_encoder" };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "SET_FAN_MODE";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "SET_FAN_MODE";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "SET_FAN_MODE";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "SET_HVAC_MODE";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "SET_HVAC_MODE";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "SET_HVAC_MODE";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "SIMULATE_KEYPAD_CODE_ENTRY";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "SIMULATE_KEYPAD_CODE_ENTRY";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "SIMULATE_KEYPAD_CODE_ENTRY";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "SIMULATE_MANUAL_LOCK_VIA_KEYPAD";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "SIMULATE_MANUAL_LOCK_VIA_KEYPAD";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "SIMULATE_MANUAL_LOCK_VIA_KEYPAD";
error: { message: string; type: string };
result: null;
status: "error";
}
| {
action_attempt_id: string;
action_type: "UNLOCK_DOOR";
error: null;
result: null;
status: "pending";
}
| {
action_attempt_id: string;
action_type: "UNLOCK_DOOR";
error: null;
result: {};
status: "success";
}
| {
action_attempt_id: string;
action_type: "UNLOCK_DOOR";
error: { message: string; type: string };
result: null;
status: "error";
}
)[];
batch_type: "spaces"
| "access_grants"
| "access_methods"
| "workspaces";
client_sessions?: {
client_session_id: string;
connect_webview_ids: string[];
connected_account_ids: string[];
created_at: string;
customer_id?: string;
device_count: number;
expires_at: string;
token: string;
user_identifier_key: null | string;
user_identity_id?: string;
user_identity_ids: string[];
workspace_id: string;
}[];
connect_webviews?: {
accepted_capabilities: (
"lock"
| "thermostat"
| "noise_sensor"
| "access_control"
)[];
accepted_devices: string[];
accepted_providers: string[];
any_device_allowed: boolean;
any_provider_allowed: boolean;
authorized_at: null | string;
automatically_manage_new_devices: boolean;
connect_webview_id: string;
connected_account_id: null | string;
created_at: string;
custom_metadata: Record<string, string | boolean>;
custom_redirect_failure_url: null | string;
custom_redirect_url: null | string;
customer_key?: string;
device_selection_mode: "none" | "single" | "multiple";
login_successful: boolean;
selected_provider: null | string;
status: "pending" | "failed" | "authorized";
url: string;
wait_for_device_creation: boolean;
workspace_id: string;
}[];
customization_profiles?: {
created_at: string;
customization_profile_id: string;
logo_url?: string;
name: null
| string;
primary_color?: string;
secondary_color?: string;
workspace_id: string;
}[];
devices?: {
can_hvac_cool?: boolean;
can_hvac_heat?: boolean;
can_hvac_heat_cool?: boolean;
can_program_offline_access_codes?: boolean;
can_program_online_access_codes?: boolean;
can_remotely_lock?: boolean;
can_remotely_unlock?: boolean;
can_run_thermostat_programs?: boolean;
can_simulate_connection?: boolean;
can_simulate_disconnection?: boolean;
can_simulate_hub_connection?: boolean;
can_simulate_hub_disconnection?: boolean;
can_simulate_paid_subscription?: boolean;
can_simulate_removal?: boolean;
can_turn_off_hvac?: boolean;
can_unlock_with_code?: boolean;
capabilities_supported: (
| "access_code"
| "lock"
| "noise_detection"
| "thermostat"
| "battery"
| "phone"
)[];
connected_account_id: string;
created_at: string;
custom_metadata: Record<string, string | boolean>;
device_id: string;
device_type:
| LockDeviceTypeFromMapping
| NoiseSensorDeviceTypeFromMapping
| ThermostatDeviceTypeFromMapping
| PhoneDeviceTypeFromMapping;
display_name: string;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: {
sites: {
site_id: ...;
site_name: ...;
site_user_subscription_limit: ...;
subscribed_site_user_count: ...;
}[];
};
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
)[];
is_managed: true;
location: null
| { location_name?: string; timezone?: string };
nickname?: string;
properties: {
accessory_keypad?: {
battery?: { level: ... };
is_connected: boolean;
};
appearance: { name: string };
battery?: {
level: number;
status: "critical" | "low" | "good" | "full";
};
battery_level?: number;
currently_triggering_noise_threshold_ids?: string[];
has_direct_power?: boolean;
image_alt_text?: string;
image_url?: string;
manufacturer?: string;
model: {
accessory_keypad_supported?: boolean;
can_connect_accessory_keypad?: boolean;
display_name: string;
has_built_in_keypad?: boolean;
manufacturer_display_name: string;
offline_access_codes_supported?: boolean;
online_access_codes_supported?: boolean;
};
name: string;
noise_level_decibels?: number;
offline_access_codes_enabled?: boolean;
online: boolean;
online_access_codes_enabled?: boolean;
serial_number?: string;
supports_accessory_keypad?: boolean;
supports_offline_access_codes?: boolean;
} & {
assa_abloy_credential_service_metadata?: {
endpoints: { endpoint_id: ...; is_active: ... }[];
has_active_endpoint: boolean;
};
salto_space_credential_service_metadata?: { has_active_phone: boolean };
} & {
akiles_metadata?: {
_member_group_id?: string;
gadget_id: string;
gadget_name: string;
product_name: string;
};
assa_abloy_vostio_metadata?: { encoder_name: string };
august_metadata?: {
has_keypad: boolean;
house_id?: string;
house_name: string;
keypad_battery_level?: string;
lock_id: string;
lock_name: string;
model?: string;
};
avigilon_alta_metadata?: {
entry_name: string;
entry_relays_total_count: number;
org_name: string;
site_id: number;
site_name: string;
zone_id: number;
zone_name: string;
};
brivo_metadata?: { activation_enabled?: boolean; device_name?: string };
controlbyweb_metadata?: {
device_id: string;
device_name: string;
relay_name: null | string;
};
dormakaba_oracode_metadata?: {
device_id?: string
| number;
door_id?: number;
door_is_wireless: boolean;
door_name: string;
iana_timezone?: string;
predefined_time_slots?: (...)[];
site_id: null | number;
site_name: string;
};
ecobee_metadata?: { device_name: string; ecobee_device_id: string };
four_suites_metadata?: {
device_id: number;
device_name: string;
reclose_delay_in_seconds: number;
};
genie_metadata?: { device_name: string; door_name: string };
honeywell_resideo_metadata?: {
device_name: string;
honeywell_resideo_device_id: string;
};
hubitat_metadata?: {
device_id: string;
device_label: string;
device_name: string;
};
igloo_metadata?: {
bridge_id: string;
device_id: string;
model?: string;
};
igloohome_metadata?: {
bridge_id?: string;
bridge_name?: string;
device_id: string;
device_name: string;
is_keypad_linked_to_bridge?: boolean;
keypad_id?: string;
};
keynest_metadata?: { device_name?: string };
kwikset_metadata?: {
device_id: string;
device_name: string;
model_number: string;
};
lockly_metadata?: {
device_id: string;
device_name: string;
model?: string;
};
minut_metadata?: {
device_id: string;
device_name: string;
latest_sensor_values: {
accelerometer_z: { time: ...; value: ... };
humidity: { time: ...; value: ... };
pressure: { time: ...; value: ... };
sound: { time: ...; value: ... };
temperature: { time: ...; value: ... };
};
};
nest_metadata?: {
device_custom_name: string;
device_name: string;
display_name?: string;
nest_device_id: string;
};
noiseaware_metadata?: {
device_id: string;
device_model: "indoor"
| "outdoor";
device_name: string;
noise_level_decibel: number;
noise_level_nrs: number;
};
nuki_metadata?: {
device_id: string;
device_name: string;
keypad_2_paired?: boolean;
keypad_battery_critical?: boolean;
keypad_paired?: boolean;
};
salto_ks_metadata?: {
battery_level: string;
customer_reference: string;
lock_id: string;
lock_type: string;
locked_state: string;
model?: string;
};
salto_metadata?: {
battery_level: string;
customer_reference: string;
lock_id: string;
lock_type: string;
locked_state: string;
model?: string;
};
schlage_metadata?: {
device_id: string;
device_name: string;
model?: string;
};
seam_bridge_metadata?: {
device_num: number;
name: string;
unlock_method?: "bridge"
| "doorking";
};
sensi_metadata?: {
device_id: string;
device_name: string;
product_type: string;
};
smartthings_metadata?: {
device_id: string;
device_name: string;
location_id?: string;
model?: string;
};
tado_metadata?: { device_type: string; serial_no: string };
tedee_metadata?: {
bridge_id: number;
bridge_name: string;
device_id: number;
device_model: string;
device_name: string;
keypad_id?: number;
serial_number: string;
};
ttlock_metadata?: {
feature_value: string;
features: {
incomplete_keyboard_passcode: boolean;
lock_command: boolean;
passcode: boolean;
passcode_management: boolean;
unlock_via_gateway: boolean;
wifi: boolean;
};
has_gateway?: boolean;
lock_alias: string;
lock_id: number;
wireless_keypads?: (...)[];
};
two_n_metadata?: { device_id: number; device_name: string };
visionline_metadata?: { encoder_id: string };
wyze_metadata?: {
device_id: string;
device_info_model: string;
device_name: string;
keypad_uuid?: string;
locker_status_hardlock?: number;
product_model: string;
product_name: string;
product_type: string;
};
} & {
_experimental_supported_code_from_access_codes_lengths?: number[];
code_constraints?: (
| { constraint_type: ... }
| { constraint_type: ...; max_length?: ...; min_length?: ... }
)[];
door_open?: boolean;
has_native_entry_events?: boolean;
keypad_battery?: { level: number };
locked?: boolean;
max_active_codes_supported?: number;
supported_code_lengths?: number[];
supports_backup_access_code_pool?: boolean;
} & {
active_thermostat_schedule?: | null
| {
climate_preset_key: string;
created_at: string;
device_id: string;
ends_at: string;
errors: { error_code: ...; message: ... }[];
is_override_allowed?: boolean;
max_override_period_minutes?: null | number;
name: null | string;
starts_at: string;
thermostat_schedule_id: string;
workspace_id: string;
};
active_thermostat_schedule_id?: null
| string;
available_climate_preset_modes?: (
"home"
| "away"
| "wake"
| "sleep"
| "occupied"
| "unoccupied"
)[];
available_climate_presets?: {
can_delete: boolean;
can_edit: boolean;
can_program: boolean;
climate_preset_key: string;
climate_preset_mode?:
| (...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...);
cooling_set_point_celsius?: (...) | (...);
cooling_set_point_fahrenheit?: (...) | (...);
display_name: string;
ecobee_metadata?: (...) | (...);
fan_mode_setting?: (...) | (...) | (...) | (...);
heating_set_point_celsius?: (...) | (...);
heating_set_point_fahrenheit?: (...) | (...);
hvac_mode_setting?: (...) | (...) | (...) | (...) | (...) | (...);
manual_override_allowed: boolean;
name?: (...) | (...) | (...);
}[];
available_fan_mode_settings?: ("auto" | "on" | "circulate")[];
available_hvac_mode_settings?: (
"off"
| "heat"
| "cool"
| "heat_cool"
| "eco"
)[];
current_climate_setting?: {
can_delete?: boolean;
can_edit?: boolean;
can_program?: boolean;
climate_preset_key?: string;
climate_preset_mode?:
| "home"
| "away"
| "wake"
| "sleep"
| "occupied"
| "unoccupied";
cooling_set_point_celsius?: number;
cooling_set_point_fahrenheit?: number;
display_name?: string;
ecobee_metadata?: { climate_ref: ...; is_optimized: ...; owner: ... };
fan_mode_setting?: "auto" | "on" | "circulate";
heating_set_point_celsius?: number;
heating_set_point_fahrenheit?: number;
hvac_mode_setting?: "off" | "heat" | "cool" | "heat_cool" | "eco";
manual_override_allowed?: boolean;
name?: null | string;
};
default_climate_setting?: {
can_delete?: boolean;
can_edit?: boolean;
can_program?: boolean;
climate_preset_key?: string;
climate_preset_mode?: | "home"
| "away"
| "wake"
| "sleep"
| "occupied"
| "unoccupied";
cooling_set_point_celsius?: number;
cooling_set_point_fahrenheit?: number;
display_name?: string;
ecobee_metadata?: { climate_ref: ...; is_optimized: ...; owner: ... };
fan_mode_setting?: "auto" | "on" | "circulate";
heating_set_point_celsius?: number;
heating_set_point_fahrenheit?: number;
hvac_mode_setting?: "off" | "heat" | "cool" | "heat_cool" | "eco";
manual_override_allowed?: boolean;
name?: null | string;
};
fallback_climate_preset_key?: null
| string;
fan_mode_setting?: "auto" | "on" | "circulate";
is_cooling?: boolean;
is_fan_running?: boolean;
is_heating?: boolean;
is_temporary_manual_override_active?: boolean;
max_cooling_set_point_celsius?: number;
max_cooling_set_point_fahrenheit?: number;
max_heating_set_point_celsius?: number;
max_heating_set_point_fahrenheit?: number;
max_thermostat_daily_program_periods_per_day?: number;
min_cooling_set_point_celsius?: number;
min_cooling_set_point_fahrenheit?: number;
min_heating_cooling_delta_celsius?: number;
min_heating_cooling_delta_fahrenheit?: number;
min_heating_set_point_celsius?: number;
min_heating_set_point_fahrenheit?: number;
relative_humidity?: number;
temperature_celsius?: number;
temperature_fahrenheit?: number;
temperature_threshold?: {
lower_limit_celsius: null | number;
lower_limit_fahrenheit: null | number;
upper_limit_celsius: null | number;
upper_limit_fahrenheit: null | number;
};
thermostat_daily_program_period_precision_minutes?: number;
thermostat_daily_programs?: {
created_at: string;
device_id: string;
name: (...)
| (...);
periods: (...)[];
thermostat_daily_program_id: string;
workspace_id: string;
}[];
thermostat_weekly_program?: | null
| {
created_at: string;
friday_program_id: null
| string;
monday_program_id: null | string;
saturday_program_id: null | string;
sunday_program_id: null | string;
thursday_program_id: null | string;
tuesday_program_id: null | string;
wednesday_program_id: null | string;
};
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "partial_backup_access_code_pool";
}
| {
created_at: string;
message: string;
warning_code: "many_active_backup_codes";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_office_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_privacy_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_subscription_limit_almost_reached";
}
| {
created_at: string;
message: string;
warning_code: "wyze_device_missing_gateway";
}
| {
created_at: string;
message: string;
warning_code: "functional_offline_device";
}
| {
created_at: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_lock_gateway_unlocking_not_enabled";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_weak_gateway_signal";
}
| {
created_at: string;
message: string;
warning_code: "power_saving_mode";
}
| {
created_at: string;
message: string;
warning_code: "temperature_threshold_exceeded";
}
| {
created_at: string;
message: string;
warning_code: "device_communication_degraded";
}
| {
created_at: string;
message: string;
warning_code: "scheduled_maintenance_window";
}
| {
created_at: string;
message: string;
warning_code: "device_has_flaky_connection";
}
| {
created_at: string;
message: string;
warning_code: "lockly_time_zone_not_configured";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_phone";
}
)[];
workspace_id: string;
}[];
events?: (
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.created";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.changed";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
code: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.scheduled_on_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
code: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.set_on_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.removed_from_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.delay_in_setting_on_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.failed_to_set_on_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
code: null
| string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.deleted";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.delay_in_removing_from_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.failed_to_remove_from_device";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.modified_external_to_seam";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.deleted_external_to_seam";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
backup_access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.backup_access_code_pulled";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.unmanaged.converted_to_managed";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.unmanaged.failed_to_convert_to_managed";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.unmanaged.created";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "access_code.unmanaged.removed";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_id: string;
created_at: string;
event_id: string;
event_type: "access_grant.created";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_id: string;
created_at: string;
event_id: string;
event_type: "access_grant.deleted";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_id: string;
created_at: string;
event_id: string;
event_type: "access_grant.access_granted_to_all_doors";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_id: string;
acs_entrance_id: string;
created_at: string;
event_id: string;
event_type: "access_grant.access_granted_to_door";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_id: string;
acs_entrance_id: string;
created_at: string;
event_id: string;
event_type: "access_grant.access_to_door_lost";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_ids: string[];
access_grant_keys?: string[];
access_method_id: string;
code?: string;
created_at: string;
event_id: string;
event_type: "access_method.issued";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_ids: string[];
access_grant_keys?: string[];
access_method_id: string;
created_at: string;
event_id: string;
event_type: "access_method.card_encoding_required";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_ids: string[];
access_grant_keys?: string[];
access_method_id: string;
created_at: string;
event_id: string;
event_type: "access_method.revoked";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_ids: string[];
access_grant_keys?: string[];
access_method_id: string;
created_at: string;
event_id: string;
event_type: "access_method.deleted";
occurred_at: string;
workspace_id: string;
}
| {
access_grant_ids: string[];
access_grant_keys?: string[];
access_method_id: string;
code?: string;
created_at: string;
event_id: string;
event_type: "access_method.reissued";
occurred_at: string;
workspace_id: string;
}
| {
acs_access_group_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_access_group.deleted";
occurred_at: string;
workspace_id: string;
}
| {
acs_credential_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_credential.deleted";
occurred_at: string;
workspace_id: string;
}
| {
acs_credential_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_credential.issued";
occurred_at: string;
workspace_id: string;
}
| {
acs_credential_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_credential.reissued";
occurred_at: string;
workspace_id: string;
}
| {
acs_credential_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_credential.invalidated";
occurred_at: string;
workspace_id: string;
}
| {
acs_encoder_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_encoder.added";
occurred_at: string;
workspace_id: string;
}
| {
acs_encoder_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_encoder.removed";
occurred_at: string;
workspace_id: string;
}
| {
acs_entrance_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_entrance.added";
occurred_at: string;
workspace_id: string;
}
| {
acs_entrance_id: string;
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_entrance.removed";
occurred_at: string;
workspace_id: string;
}
| {
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_system.connected";
occurred_at: string;
workspace_id: string;
}
| {
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_system.disconnected";
occurred_at: string;
workspace_id: string;
}
| {
acs_system_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_system.added";
occurred_at: string;
workspace_id: string;
}
| {
acs_system_id: string;
acs_user_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_user.deleted";
occurred_at: string;
workspace_id: string;
}
| {
acs_system_id: string;
acs_user_id: string;
connected_account_id?: string;
created_at: string;
event_id: string;
event_type: "acs_user.created";
occurred_at: string;
workspace_id: string;
}
| {
action_attempt_id: string;
action_type: string;
created_at: string;
event_id: string;
event_type: "action_attempt.lock_door.succeeded";
occurred_at: string;
status: string;
workspace_id: string;
}
| {
action_attempt_id: string;
action_type: string;
created_at: string;
event_id: string;
event_type: "action_attempt.lock_door.failed";
occurred_at: string;
status: string;
workspace_id: string;
}
| {
action_attempt_id: string;
action_type: string;
created_at: string;
event_id: string;
event_type: "action_attempt.unlock_door.succeeded";
occurred_at: string;
status: string;
workspace_id: string;
}
| {
action_attempt_id: string;
action_type: string;
created_at: string;
event_id: string;
event_type: "action_attempt.unlock_door.failed";
occurred_at: string;
status: string;
workspace_id: string;
}
| {
client_session_id: string;
created_at: string;
event_id: string;
event_type: "client_session.deleted";
occurred_at: string;
workspace_id: string;
}
| {
connect_webview_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connect_webview.login_succeeded";
occurred_at: string;
workspace_id: string;
}
| {
connect_webview_id: string;
created_at: string;
event_id: string;
event_type: "connect_webview.login_failed";
occurred_at: string;
workspace_id: string;
}
| {
connect_webview_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.connected";
occurred_at: string;
workspace_id: string;
}
| {
connect_webview_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.created";
occurred_at: string;
workspace_id: string;
}
| {
connect_webview_id: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.successful_login";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.disconnected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.completed_first_sync";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.deleted";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
event_id: string;
event_type: "connected_account.completed_first_sync_after_reconnection";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.connected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.added";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.converted_to_unmanaged";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.unmanaged.converted_to_managed";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.unmanaged.connected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
error_code:
| "account_disconnected"
| "hub_disconnected"
| "device_disconnected";
event_id: string;
event_type: "device.disconnected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
error_code:
| "account_disconnected"
| "hub_disconnected"
| "device_disconnected";
event_id: string;
event_type: "device.unmanaged.disconnected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.tampered";
occurred_at: string;
workspace_id: string;
}
| {
battery_level: number;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.low_battery";
occurred_at: string;
workspace_id: string;
}
| {
battery_level: number;
battery_status: "critical"
| "low"
| "good"
| "full";
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.battery_status_changed";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.removed";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.deleted";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.third_party_integration_detected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.third_party_integration_no_longer_detected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.salto.privacy_mode_activated";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.salto.privacy_mode_deactivated";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.connection_became_flaky";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.connection_stabilized";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.error.subscription_required";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.error.subscription_required.resolved";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.accessory_keypad_connected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "device.accessory_keypad_disconnected";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "noise_sensor.noise_threshold_triggered";
minut_metadata?: Record<string, unknown>;
noise_level_decibels?: number;
noise_level_nrs?: number;
noise_threshold_id?: string;
noise_threshold_name?: string;
noiseaware_metadata?: Record<string, unknown>;
occurred_at: string;
workspace_id: string;
}
| {
access_code_id?: string;
action_attempt_id?: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "lock.locked";
method: "unknown" | "keycode" | "manual" | "automatic" | "seamapi";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id?: string;
action_attempt_id?: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "lock.unlocked";
method: "unknown" | "keycode" | "manual" | "automatic" | "seamapi";
occurred_at: string;
workspace_id: string;
}
| {
access_code_id?: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "lock.access_denied";
occurred_at: string;
workspace_id: string;
}
| {
climate_preset_key: string;
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "thermostat.climate_preset_activated";
is_fallback_climate_preset: boolean;
occurred_at: string;
thermostat_schedule_id: null | string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
cooling_set_point_celsius?: number;
cooling_set_point_fahrenheit?: number;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "thermostat.manually_adjusted";
fan_mode_setting?: "auto" | "on" | "circulate";
heating_set_point_celsius?: number;
heating_set_point_fahrenheit?: number;
hvac_mode_setting?: "off" | "heat" | "cool" | "heat_cool" | "eco";
method: "seam" | "external";
occurred_at: string;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "thermostat.temperature_threshold_exceeded";
lower_limit_celsius: null | number;
lower_limit_fahrenheit: null | number;
occurred_at: string;
temperature_celsius: number;
temperature_fahrenheit: number;
upper_limit_celsius: null | number;
upper_limit_fahrenheit: null | number;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "thermostat.temperature_threshold_no_longer_exceeded";
lower_limit_celsius: null | number;
lower_limit_fahrenheit: null | number;
occurred_at: string;
temperature_celsius: number;
temperature_fahrenheit: number;
upper_limit_celsius: null | number;
upper_limit_fahrenheit: null | number;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
desired_temperature_celsius?: number;
desired_temperature_fahrenheit?: number;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "thermostat.temperature_reached_set_point";
occurred_at: string;
temperature_celsius: number;
temperature_fahrenheit: number;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "thermostat.temperature_changed";
occurred_at: string;
temperature_celsius: number;
temperature_fahrenheit: number;
workspace_id: string;
}
| {
connected_account_custom_metadata?: Record<string, string | boolean>;
connected_account_id: string;
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
device_name: string;
event_id: string;
event_type: "device.name_changed";
occurred_at: string;
workspace_id: string;
}
| {
created_at: string;
enrollment_automation_id: string;
event_id: string;
event_type: "enrollment_automation.deleted";
occurred_at: string;
workspace_id: string;
}
| {
created_at: string;
device_custom_metadata?: Record<string, string | boolean>;
device_id: string;
event_id: string;
event_type: "phone.deactivated";
occurred_at: string;
workspace_id: string;
}
)[];
instant_keys?: {
client_session_id: string;
created_at: string;
customization?: {
logo_url?: string;
primary_color?: string;
secondary_color?: string;
};
customization_profile_id?: string;
expires_at: string;
instant_key_id: string;
instant_key_url: string;
user_identity_id: string;
workspace_id: string;
}[];
noise_thresholds?: {
device_id: string;
ends_daily_at: string;
name: string;
noise_threshold_decibels: number;
noise_threshold_id: string;
noise_threshold_nrs?: number;
starts_daily_at: string;
}[];
spaces?: {
acs_entrance_count: number;
created_at: string;
device_count: number;
display_name: string;
name: string;
space_id: string;
space_key?: string;
workspace_id: string;
}[];
thermostat_daily_programs?: {
created_at: string;
device_id: string;
name: null
| string;
periods: { climate_preset_key: string; starts_at_time: string }[];
thermostat_daily_program_id: string;
workspace_id: string;
}[];
thermostat_schedules?: {
climate_preset_key: string;
created_at: string;
device_id: string;
ends_at: string;
errors: { error_code: string; message: string }[];
is_override_allowed?: boolean;
max_override_period_minutes?: null | number;
name: null | string;
starts_at: string;
thermostat_schedule_id: string;
workspace_id: string;
}[];
unmanaged_access_codes?: {
access_code_id: string;
code: null
| string;
created_at: string;
device_id: string;
ends_at?: null | string;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: {
sites: {
site_id: ...;
site_name: ...;
site_user_subscription_limit: ...;
subscribed_site_user_count: ...;
}[];
};
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_access_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_failed_to_set_after_multiple_retries";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "code_modified_external_to_seam";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_set_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "failed_to_remove_from_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "duplicate_code_attempt_prevented";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "no_space_for_access_code_on_device";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_too_many_pending_jobs";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_bridge_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "kwikset_unable_to_confirm_deletion";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "igloohome_offline_access_code_no_variance_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_invalid_code_length";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_device_slots_full";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_temporarily_offline";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "august_lock_missing_keypad";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "salto_ks_user_not_subscribed";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_device_programming_delay";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "hubitat_no_free_positions_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "smartthings_no_free_slots_available";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_duplicate_code_name";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "wyze_potential_duplicate_code";
is_access_code_error: true;
message: string;
}
| {
created_at?: string;
error_code: "dormakaba_oracode_no_valid_user_level";
is_access_code_error: true;
message: string;
}
)[];
is_managed: false;
name: null
| string;
starts_at?: null | string;
status: "set";
type: "time_bound" | "ongoing";
warnings: (
| {
created_at?: string;
message: string;
warning_code: "smartthings_failed_to_set_access_code";
}
| {
created_at?: string;
message: string;
warning_code: "august_device_programming_delay";
}
| {
created_at?: string;
message: string;
warning_code: "august_lock_temporarily_offline";
}
| {
created_at?: string;
message: string;
warning_code: "code_modified_external_to_seam";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_detected_duplicate";
}
| {
created_at?: string;
message: string;
warning_code: "schlage_creation_outage";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_setting_on_device";
}
| {
created_at?: string;
message: string;
warning_code: "delay_in_removing_from_device";
}
| {
created_at?: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at?: string;
message: string;
warning_code: "igloo_algopin_must_be_used_within_24_hours";
}
| {
created_at?: string;
message: string;
warning_code: "management_transferred";
}
| {
created_at?: string;
message: string;
warning_code: "kwikset_unable_to_confirm_code";
}
)[];
workspace_id: string;
}[];
unmanaged_acs_access_groups?: {
access_group_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
access_group_type_display_name: string;
acs_access_group_id: string;
acs_system_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
external_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_access_group"
| "dormakaba_ambiance_access_group";
external_type_display_name: string;
is_managed: false;
name: string;
warnings: {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_access_group";
}[];
workspace_id: string;
}[];
unmanaged_acs_credentials?: {
access_method: "code"
| "card"
| "mobile_key";
acs_credential_id: string;
acs_credential_pool_id?: string;
acs_system_id: string;
acs_user_id?: string;
assa_abloy_vostio_metadata?: {
auto_join?: boolean;
door_names?: string[];
endpoint_id?: string;
key_id?: string;
key_issuing_request_id?: string;
override_guest_acs_entrance_ids?: string[];
};
card_number?: null
| string;
code?: null | string;
connected_account_id: string;
created_at: string;
display_name: string;
ends_at?: string;
errors: { error_code: string; message: string }[];
external_type?:
| "pti_card"
| "brivo_credential"
| "hid_credential"
| "visionline_card"
| "salto_ks_credential"
| "assa_abloy_vostio_key"
| "salto_space_key"
| "latch_access"
| "dormakaba_ambiance_credential";
external_type_display_name?: string;
is_issued?: boolean;
is_latest_desired_state_synced_with_provider?: null
| boolean;
is_managed: false;
is_multi_phone_sync_credential?: boolean;
is_one_time_use?: boolean;
issued_at?: null | string;
latest_desired_state_synced_with_provider_at?: null | string;
parent_acs_credential_id?: string;
starts_at?: string;
user_identity_id?: string;
visionline_metadata?: {
auto_join?: boolean;
card_function_type: "guest" | "staff";
card_id?: string;
common_acs_entrance_ids?: string[];
credential_id?: string;
guest_acs_entrance_ids?: string[];
is_valid?: boolean;
joiner_acs_credential_ids?: string[];
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "waiting_to_be_issued";
}
| {
created_at: string;
message: string;
warning_code: "schedule_externally_modified";
}
| {
created_at: string;
message: string;
warning_code: "schedule_modified";
}
| { created_at: string; message: string; warning_code: "being_deleted" }
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_credential";
}
| {
created_at: string;
message: string;
warning_code: "needs_to_be_reissued";
}
)[];
workspace_id: string;
}[];
unmanaged_acs_users?: {
access_schedule?: { ends_at: null
| string; starts_at: string };
acs_system_id: string;
acs_user_id: string;
connected_account_id: string;
created_at: string;
display_name: string;
email?: string;
email_address?: string;
errors: (
| {
created_at: string;
error_code: "deleted_externally";
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
message: string;
}
| {
created_at: string;
error_code: "failed_to_create_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_update_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "failed_to_delete_on_acs_system";
message: string;
}
| {
created_at: string;
error_code: "latch_conflict_with_resident_user";
message: string;
}
)[];
external_type?: | "pti_user"
| "brivo_user"
| "hid_credential_manager_user"
| "salto_site_user"
| "latch_user"
| "dormakaba_community_user"
| "salto_space_user";
external_type_display_name?: string;
full_name?: string;
hid_acs_system_id?: string;
is_managed: false;
is_suspended?: boolean;
last_successful_sync_at: null
| string;
pending_mutations?: (
| { created_at: string; message: string; mutation_code: "creating" }
| { created_at: string; message: string; mutation_code: "deleting" }
| {
created_at: string;
from: {
email_address?: (...) | (...) | (...);
full_name?: (...) | (...) | (...);
phone_number?: (...) | (...) | (...);
};
message: string;
mutation_code: "updating_user_information";
to: {
email_address?: (...)
| (...)
| (...);
full_name?: (...) | (...) | (...);
phone_number?: (...) | (...) | (...);
};
}
| {
created_at: string;
from: { ends_at: (...)
| (...); starts_at: (...) | (...) };
message: string;
mutation_code: "updating_access_schedule";
to: { ends_at: (...) | (...); starts_at: (...) | (...) };
}
| {
created_at: string;
from: { is_suspended: boolean };
message: string;
mutation_code: "updating_suspension_state";
to: { is_suspended: boolean };
}
| {
created_at: string;
from: { acs_access_group_id: (...)
| (...) };
message: string;
mutation_code: "updating_group_membership";
to: { acs_access_group_id: (...) | (...) };
}
)[];
phone_number?: string;
user_identity_email_address?: null
| string;
user_identity_full_name?: null | string;
user_identity_id?: string;
user_identity_phone_number?: null | string;
warnings: (
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_user_not_subscribed";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_acs_user";
}
| {
created_at: string;
message: string;
warning_code: "latch_resident_user";
}
)[];
workspace_id: string;
}[];
unmanaged_devices?: {
can_hvac_cool?: boolean;
can_hvac_heat?: boolean;
can_hvac_heat_cool?: boolean;
can_program_offline_access_codes?: boolean;
can_program_online_access_codes?: boolean;
can_remotely_lock?: boolean;
can_remotely_unlock?: boolean;
can_run_thermostat_programs?: boolean;
can_simulate_connection?: boolean;
can_simulate_disconnection?: boolean;
can_simulate_hub_connection?: boolean;
can_simulate_hub_disconnection?: boolean;
can_simulate_paid_subscription?: boolean;
can_simulate_removal?: boolean;
can_turn_off_hvac?: boolean;
can_unlock_with_code?: boolean;
capabilities_supported: (
| "access_code"
| "lock"
| "noise_detection"
| "thermostat"
| "battery"
| "phone"
)[];
connected_account_id: string;
created_at: string;
custom_metadata: Record<string, string | boolean>;
device_id: string;
device_type:
| LockDeviceTypeFromMapping
| NoiseSensorDeviceTypeFromMapping
| ThermostatDeviceTypeFromMapping
| PhoneDeviceTypeFromMapping;
errors: (
| {
created_at: string;
error_code: "account_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "invalid_credentials";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "bridge_disconnected";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_bridge_error?: boolean;
is_connected_account_error?: boolean;
message: string;
salto_ks_metadata: {
sites: {
site_id: ...;
site_name: ...;
site_user_subscription_limit: ...;
subscribed_site_user_count: ...;
}[];
};
}
| {
created_at: string;
error_code: "device_offline";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_removed";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "hub_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "device_disconnected";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "account_disconnected";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "empty_backup_access_code_pool";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_not_authorized";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "august_lock_missing_bridge";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "salto_ks_subscription_limit_exceeded";
is_connected_account_error: true;
is_device_error: false;
message: string;
}
| {
created_at: string;
error_code: "ttlock_lock_not_paired_to_gateway";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "missing_device_credentials";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "auxiliary_heat_running";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "subscription_required";
is_device_error: true;
message: string;
}
| {
created_at: string;
error_code: "lockly_missing_wifi_bridge";
is_device_error: true;
message: string;
}
)[];
is_managed: false;
location: null
| { location_name?: string; timezone?: string };
properties: {
accessory_keypad?: {
battery?: { level: number };
is_connected: boolean;
};
battery?: {
level: number;
status: "critical"
| "low"
| "good"
| "full";
};
battery_level?: number;
image_alt_text?: string;
image_url?: string;
manufacturer?: string;
model: {
accessory_keypad_supported?: boolean;
can_connect_accessory_keypad?: boolean;
display_name: string;
has_built_in_keypad?: boolean;
manufacturer_display_name: string;
offline_access_codes_supported?: boolean;
online_access_codes_supported?: boolean;
};
name: string;
offline_access_codes_enabled?: boolean;
online: boolean;
online_access_codes_enabled?: boolean;
};
warnings: (
| {
created_at: string;
message: string;
warning_code: "partial_backup_access_code_pool";
}
| {
created_at: string;
message: string;
warning_code: "many_active_backup_codes";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_office_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_privacy_mode";
}
| {
created_at: string;
message: string;
warning_code: "salto_ks_subscription_limit_almost_reached";
}
| {
created_at: string;
message: string;
warning_code: "wyze_device_missing_gateway";
}
| {
created_at: string;
message: string;
warning_code: "functional_offline_device";
}
| {
created_at: string;
message: string;
warning_code: "third_party_integration_detected";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_lock_gateway_unlocking_not_enabled";
}
| {
created_at: string;
message: string;
warning_code: "ttlock_weak_gateway_signal";
}
| {
created_at: string;
message: string;
warning_code: "power_saving_mode";
}
| {
created_at: string;
message: string;
warning_code: "temperature_threshold_exceeded";
}
| {
created_at: string;
message: string;
warning_code: "device_communication_degraded";
}
| {
created_at: string;
message: string;
warning_code: "scheduled_maintenance_window";
}
| {
created_at: string;
message: string;
warning_code: "device_has_flaky_connection";
}
| {
created_at: string;
message: string;
warning_code: "lockly_time_zone_not_configured";
}
| {
created_at: string;
message: string;
warning_code: "unknown_issue_with_phone";
}
)[];
workspace_id: string;
}[];
user_identities?: {
acs_user_ids: string[];
created_at: string;
display_name: string;
email_address: null
| string;
errors: {
acs_system_id: string;
acs_user_id: string;
created_at: string;
error_code: "issue_with_acs_user";
message: string;
}[];
full_name: null
| string;
phone_number: null | string;
user_identity_id: string;
user_identity_key: null | string;
warnings: (
| {
created_at: string;
message: string;
warning_code: "being_deleted";
}
| {
created_at: string;
message: string;
warning_code: "acs_user_profile_does_not_match_user_identity";
}
)[];
workspace_id: string;
}[];
workspaces?: {
company_name: string;
connect_partner_name: null
| string;
connect_webview_customization: {
inviter_logo_url?: string;
logo_shape?: "circle" | "square";
primary_button_color?: string;
primary_button_text_color?: string;
success_message?: string;
};
is_sandbox: boolean;
is_suspended: boolean;
name: string;
workspace_id: string;
}[];
},
> = ...