batch: ZodObject<
{
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",
],
>;
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",
],
>;
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";
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";
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";
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";
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_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_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",
>;
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_community_metadata?: { access_point_name: string };
errors: { error_code: string; message: 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_community_metadata?: { access_point_name: string };
errors: { error_code: string; message: 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"
| "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"
| "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"
| "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"
| "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",
>,
>;
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: ...;
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_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?: ...;
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_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?: ...;
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_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_simulate_connection: ZodOptional<ZodBoolean>;
can_simulate_disconnection: 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_simulate_connection?: boolean;
can_simulate_disconnection?: 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?: { device_name: string };
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?: {
address: (...)
| (...);
current_or_last_store_id: number;
current_status: (...) | (...);
current_user_company: (...) | (...);
current_user_email: (...) | (...);
current_user_name: (...) | (...);
current_user_phone_number: (...) | (...);
default_office_id: number;
device_name: string;
fob_id: number;
handover_method: (...) | (...);
has_photo: boolean;
key_id: string;
key_notes: (...) | (...);
keynest_app_user: (...) | (...);
last_movement: string;
property_id: (...) | (...);
property_postcode: (...) | (...);
status_type: string;
subscription_plan: string;
};
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;
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_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: "nest_thermostat_in_manual_eco_mode";
}
| {
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_simulate_connection?: boolean;
can_simulate_disconnection?: 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?: { device_name: string };
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?: {
address: (...)
| (...);
current_or_last_store_id: number;
current_status: (...) | (...);
current_user_company: (...) | (...);
current_user_email: (...) | (...);
current_user_name: (...) | (...);
current_user_phone_number: (...) | (...);
default_office_id: number;
device_name: string;
fob_id: number;
handover_method: (...) | (...);
has_photo: boolean;
key_id: string;
key_notes: (...) | (...);
keynest_app_user: (...) | (...);
last_movement: string;
property_id: (...) | (...);
property_postcode: (...) | (...);
status_type: string;
subscription_plan: string;
};
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;
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_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: "nest_thermostat_in_manual_eco_mode";
}
| {
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",
>,
>;
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",
>,
>;
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",
],
>;
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",
],
>;
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";
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";
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";
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";
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_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_simulate_connection: ZodOptional<ZodBoolean>;
can_simulate_disconnection: ZodOptional<ZodBoolean>;
can_simulate_removal: ZodOptional<ZodBoolean>;
can_turn_off_hvac: ZodOptional<ZodBoolean>;
can_unlock_with_code: ZodOptional<ZodBoolean>;
},
| "location"
| "device_id"
| "workspace_id"
| "created_at"
| "errors"
| "connected_account_id"
| "warnings"
| "device_type"
| "capabilities_supported",
> & {
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<(...)>;
},
| "name"
| "online"
| "battery"
| "model"
| "battery_level"
| "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_simulate_connection: ZodOptional<ZodBoolean>;
can_simulate_disconnection: 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_simulate_connection?: boolean;
can_simulate_disconnection?: 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;
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: "low"
| "full"
| "critical"
| "good";
};
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: "nest_thermostat_in_manual_eco_mode";
}
| {
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_simulate_connection?: boolean;
can_simulate_disconnection?: 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;
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: "low"
| "full"
| "critical"
| "good";
};
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: "nest_thermostat_in_manual_eco_mode";
}
| {
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?: "square"
| "circle";
primary_button_color?: string;
primary_button_text_color?: string;
success_message?: string;
},
{
inviter_logo_url?: string;
logo_shape?: "square"
| "circle";
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?: "square" | "circle";
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?: "square" | "circle";
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,
{
acs_access_groups?: {
access_group_type: | "pti_unit"
| "pti_access_level"
| "salto_ks_access_group"
| "brivo_group"
| "salto_space_group"
| "dormakaba_community_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";
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_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_community_metadata?: { access_point_name: string };
errors: { error_code: string; message: 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"
| "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"
| "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";
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";
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";
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";
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;
}[];
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_simulate_connection?: boolean;
can_simulate_disconnection?: 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: "low" | "full" | "critical" | "good";
};
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?: { 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?: {
address: null
| string;
current_or_last_store_id: number;
current_status: null | string;
current_user_company: null | string;
current_user_email: null | string;
current_user_name: null | string;
current_user_phone_number: null | string;
default_office_id: number;
device_name: string;
fob_id: number;
handover_method: null | string;
has_photo: boolean;
key_id: string;
key_notes: null | string;
keynest_app_user: null | string;
last_movement: string;
property_id: null | string;
property_postcode: null | string;
status_type: string;
subscription_plan: 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;
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_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: "nest_thermostat_in_manual_eco_mode";
}
| {
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;
}[];
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;
}[];
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";
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";
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_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_simulate_connection?: boolean;
can_simulate_disconnection?: 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;
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: "low"
| "full"
| "critical"
| "good";
};
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: "nest_thermostat_in_manual_eco_mode";
}
| {
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?: "square" | "circle";
primary_button_color?: string;
primary_button_text_color?: string;
success_message?: string;
};
is_sandbox: boolean;
is_suspended: boolean;
name: string;
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";
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";
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_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_community_metadata?: { access_point_name: string };
errors: { error_code: string; message: 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"
| "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"
| "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";
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";
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";
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";
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;
}[];
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_simulate_connection?: boolean;
can_simulate_disconnection?: 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: "low" | "full" | "critical" | "good";
};
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?: { 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?: {
address: null
| string;
current_or_last_store_id: number;
current_status: null | string;
current_user_company: null | string;
current_user_email: null | string;
current_user_name: null | string;
current_user_phone_number: null | string;
default_office_id: number;
device_name: string;
fob_id: number;
handover_method: null | string;
has_photo: boolean;
key_id: string;
key_notes: null | string;
keynest_app_user: null | string;
last_movement: string;
property_id: null | string;
property_postcode: null | string;
status_type: string;
subscription_plan: 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;
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_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: "nest_thermostat_in_manual_eco_mode";
}
| {
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;
}[];
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;
}[];
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";
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";
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_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_simulate_connection?: boolean;
can_simulate_disconnection?: 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;
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: "low"
| "full"
| "critical"
| "good";
};
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: "nest_thermostat_in_manual_eco_mode";
}
| {
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?: "square" | "circle";
primary_button_color?: string;
primary_button_text_color?: string;
success_message?: string;
};
is_sandbox: boolean;
is_suspended: boolean;
name: string;
workspace_id: string;
}[];
},
> = ...