From 35c8fbaf88f7d9e6884efe65a4a8739167f1cf58 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Wed, 21 Aug 2024 03:43:25 +0900 Subject: [PATCH] move files to match api --- .prettierignore | 1 + docs/SUMMARY.md | 68 +++--- .../{create-an-access-code.md => create.md} | 0 ...any-access-codes.md => create_multiple.md} | 0 .../{delete-an-access-code.md => delete.md} | 0 .../{get-an-access-code.md => get.md} | 0 .../{list-access-codes.md => list.md} | 0 ...ess-code.md => pull_backup_access_code.md} | 0 .../convert_to_managed.md} | 0 .../delete.md} | 0 .../get.md} | 0 .../list.md} | 0 .../{update-an-access-code.md => update.md} | 0 .../{access-control-systems => acs}/README.md | 0 .../access-groups/README.md | 0 .../access-groups/add_user.md} | 0 .../access-groups/get.md} | 0 .../access-groups/list.md} | 0 .../access-groups/list_users.md} | 0 .../access-groups/remove_user.md} | 0 .../credentials/README.md | 0 .../credentials/assign.md} | 0 .../credentials/create.md} | 0 .../credentials/delete.md} | 0 .../credentials/get.md} | 0 .../credentials/list.md} | 0 .../credentials/list_accessible_entrances.md} | 0 .../credentials/unassign.md} | 0 .../credentials/update.md} | 0 .../entrances/README.md | 0 .../entrances/get.md} | 0 .../entrances/list.md} | 0 .../list_credentials_with_access.md} | 0 .../systems/README.md | 0 .../get-system.md => acs/systems/get.md} | 0 .../list-systems.md => acs/systems/list.md} | 0 ...patible_credential_manager_acs_systems.md} | 0 .../users/README.md | 0 .../users/add_to_access_group.md} | 0 .../create-user.md => acs/users/create.md} | 0 .../delete-user.md => acs/users/delete.md} | 0 .../users/get-user.md => acs/users/get.md} | 0 .../users/list-users.md => acs/users/list.md} | 0 .../users/remove_from_access_group.md} | 0 .../users/suspend.md} | 0 .../users/unsuspend.md} | 0 .../update-user.md => acs/users/update.md} | 0 .../README.md | 0 .../get.md} | 0 .../README.md | 0 .../create.md} | 0 .../delete.md} | 0 .../get.md} | 0 .../get_or_create.md} | 0 .../grant_access.md} | 0 .../list.md} | 0 .../README.md | 0 .../create.md} | 0 .../delete.md} | 0 .../get.md} | 0 .../list.md} | 0 .../README.md | 0 .../delete.md} | 0 .../get.md} | 0 .../list.md} | 0 .../update.md} | 0 .../devices/{delete-device.md => delete.md} | 0 docs/api-clients/devices/get-device-1.md | 210 ------------------ .../devices/{get-device.md => get.md} | 0 .../devices/{list-devices.md => list.md} | 0 ...-providers.md => list_device_providers.md} | 0 .../list.md} | 0 .../update.md} | 0 .../devices/{update-device.md => update.md} | 0 .../events/{get-an-event.md => get.md} | 0 .../events/{list-events.md => list.md} | 0 .../api-clients/locks/{get-lock.md => get.md} | 0 .../locks/{list-locks.md => list.md} | 0 .../locks/{lock-a-lock.md => lock_door.md} | 0 .../{unlock-a-lock.md => unlock_door.md} | 0 .../README.md | 0 .../noise_thresholds/create.md} | 0 .../noise_thresholds/delete.md} | 0 .../noise_thresholds/list.md} | 0 .../noise_thresholds/update.md} | 0 docs/api-clients/overview.md | 2 +- .../{set-to-cool-mode.md => cool.md} | 0 .../{set-to-heat-mode.md => heat.md} | 0 ...to-heat-cool-auto-mode.md => heat_cool.md} | 0 .../{set-to-off-mode.md => off.md} | 0 .../{set-fan-mode.md => set_fan_mode.md} | 0 docs/api-clients/thermostats/update.md | 92 ++++++++ .../README.md | 0 .../add_acs_user.md} | 0 .../create.md} | 0 .../delete.md} | 2 +- .../enrollment_automations}/README.md | 0 .../enrollment_automations/delete.md} | 0 .../enrollment_automations/get.md} | 0 .../enrollment_automations/launch.md} | 0 .../enrollment_automations/list.md} | 0 .../get.md} | 0 .../grant_access_to_device.md} | 0 .../list.md} | 0 .../list_accessible_devices.md} | 0 .../list_acs_systems.md} | 0 .../list_acs_users.md} | 0 .../remove_acs_user.md} | 0 .../revoke_access_to_device.md} | 0 .../workspaces/{get-workspace.md => get.md} | 0 .../{reset-workspace.md => reset_sandbox.md} | 0 {generated-docs => docs}/api/README.md | 0 docs/api/acs/systems/list.md | 93 ++++++++ .../assigning-credentials-to-users.md | 4 +- .../access-systems/managing-credentials.md | 4 +- ...ng-credentials-and-associated-entrances.md | 2 +- .../retrieving-acs-system-details.md | 6 +- .../retrieving-entrance-details.md | 10 +- ...nding-access-control-system-differences.md | 10 +- .../latch-access-control-system/README.md | 2 +- ...rogramming-code-based-latch-credentials.md | 34 +-- ...rogramming-latch-acs-mobile-credentials.md | 64 +++--- docs/products/access-systems/README.md | 4 +- .../assigning-users-to-access-groups.md | 4 +- .../suspending-and-unsuspending-users.md | 4 +- .../access-systems/user-management.md | 14 +- ...-app-user-accounts-with-user-identities.md | 38 ++-- {generated-docs => docs}/sdk/README.md | 0 docs/sdk/javascript/acs/systems/list.md | 3 + ...ems-connected-through-a-connect-webview.md | 2 +- generated-docs/api/acs/systems/list.md | 3 - .../sdk/javascript/acs/systems/list.md | 3 - package-lock.json | 16 +- package.json | 4 +- src/layouts/api-reference.hbs | 50 ++++- src/lib/reference.ts | 48 +++- src/lib/template-context.ts | 77 +++++++ src/metalsmith.ts | 8 +- 138 files changed, 505 insertions(+), 377 deletions(-) rename docs/api-clients/access-codes/{create-an-access-code.md => create.md} (100%) rename docs/api-clients/access-codes/{create-many-access-codes.md => create_multiple.md} (100%) rename docs/api-clients/access-codes/{delete-an-access-code.md => delete.md} (100%) rename docs/api-clients/access-codes/{get-an-access-code.md => get.md} (100%) rename docs/api-clients/access-codes/{list-access-codes.md => list.md} (100%) rename docs/api-clients/access-codes/{pull-backup-access-code.md => pull_backup_access_code.md} (100%) rename docs/api-clients/access-codes/{convert-an-unmanaged-access-code.md => unmanaged/convert_to_managed.md} (100%) rename docs/api-clients/access-codes/{delete-an-unmanaged-access-code.md => unmanaged/delete.md} (100%) rename docs/api-clients/access-codes/{get-an-unmanaged-access-code.md => unmanaged/get.md} (100%) rename docs/api-clients/access-codes/{list-unmanaged-access-codes.md => unmanaged/list.md} (100%) rename docs/api-clients/access-codes/{update-an-access-code.md => update.md} (100%) rename docs/api-clients/{access-control-systems => acs}/README.md (100%) rename docs/api-clients/{access-control-systems => acs}/access-groups/README.md (100%) rename docs/api-clients/{access-control-systems/access-groups/add-user-to-access-group.md => acs/access-groups/add_user.md} (100%) rename docs/api-clients/{access-control-systems/access-groups/get-access-group.md => acs/access-groups/get.md} (100%) rename docs/api-clients/{access-control-systems/access-groups/list-access-groups.md => acs/access-groups/list.md} (100%) rename docs/api-clients/{access-control-systems/access-groups/list-users-in-access-group.md => acs/access-groups/list_users.md} (100%) rename docs/api-clients/{access-control-systems/access-groups/remove-user-from-access-group.md => acs/access-groups/remove_user.md} (100%) rename docs/api-clients/{access-control-systems => acs}/credentials/README.md (100%) rename docs/api-clients/{access-control-systems/credentials/assign-a-credential-to-a-user.md => acs/credentials/assign.md} (100%) rename docs/api-clients/{access-control-systems/credentials/create-credential-for-user.md => acs/credentials/create.md} (100%) rename docs/api-clients/{access-control-systems/credentials/delete-credential.md => acs/credentials/delete.md} (100%) rename docs/api-clients/{access-control-systems/credentials/get-credential.md => acs/credentials/get.md} (100%) rename docs/api-clients/{access-control-systems/credentials/list-credentials.md => acs/credentials/list.md} (100%) rename docs/api-clients/{access-control-systems/credentials/list-accessible-entrances.md => acs/credentials/list_accessible_entrances.md} (100%) rename docs/api-clients/{access-control-systems/credentials/unassign-a-credential-from-a-user.md => acs/credentials/unassign.md} (100%) rename docs/api-clients/{access-control-systems/credentials/update-a-credential.md => acs/credentials/update.md} (100%) rename docs/api-clients/{access-control-systems => acs}/entrances/README.md (100%) rename docs/api-clients/{access-control-systems/entrances/get-an-entrance.md => acs/entrances/get.md} (100%) rename docs/api-clients/{access-control-systems/entrances/list-entrances.md => acs/entrances/list.md} (100%) rename docs/api-clients/{access-control-systems/entrances/list-credentials-with-access-to-an-entrance.md => acs/entrances/list_credentials_with_access.md} (100%) rename docs/api-clients/{access-control-systems => acs}/systems/README.md (100%) rename docs/api-clients/{access-control-systems/systems/get-system.md => acs/systems/get.md} (100%) rename docs/api-clients/{access-control-systems/systems/list-systems.md => acs/systems/list.md} (100%) rename docs/api-clients/{access-control-systems/systems/list-compatible-credential-manager-acs-systems.md => acs/systems/list_compatible_credential_manager_acs_systems.md} (100%) rename docs/api-clients/{access-control-systems => acs}/users/README.md (100%) rename docs/api-clients/{access-control-systems/users/add-user-to-access-group.md => acs/users/add_to_access_group.md} (100%) rename docs/api-clients/{access-control-systems/users/create-user.md => acs/users/create.md} (100%) rename docs/api-clients/{access-control-systems/users/delete-user.md => acs/users/delete.md} (100%) rename docs/api-clients/{access-control-systems/users/get-user.md => acs/users/get.md} (100%) rename docs/api-clients/{access-control-systems/users/list-users.md => acs/users/list.md} (100%) rename docs/api-clients/{access-control-systems/users/remove-user-from-access-group.md => acs/users/remove_from_access_group.md} (100%) rename docs/api-clients/{access-control-systems/users/suspend-a-user.md => acs/users/suspend.md} (100%) rename docs/api-clients/{access-control-systems/users/unsuspend-a-user.md => acs/users/unsuspend.md} (100%) rename docs/api-clients/{access-control-systems/users/update-user.md => acs/users/update.md} (100%) rename docs/api-clients/{action-attempt => action_attempts}/README.md (100%) rename docs/api-clients/{action-attempt/get-action-attempt.md => action_attempts/get.md} (100%) rename docs/api-clients/{client-sessions => client_sessions}/README.md (100%) rename docs/api-clients/{client-sessions/create-a-client-session.md => client_sessions/create.md} (100%) rename docs/api-clients/{client-sessions/delete-a-client-session.md => client_sessions/delete.md} (100%) rename docs/api-clients/{client-sessions/get-a-client-session.md => client_sessions/get.md} (100%) rename docs/api-clients/{client-sessions/get-or-create-a-client-session.md => client_sessions/get_or_create.md} (100%) rename docs/api-clients/{client-sessions/grant-access-to-a-client-session.md => client_sessions/grant_access.md} (100%) rename docs/api-clients/{client-sessions/list-client-sessions.md => client_sessions/list.md} (100%) rename docs/api-clients/{connect-webviews => connect_webviews}/README.md (100%) rename docs/api-clients/{connect-webviews/create-a-connect-webview.md => connect_webviews/create.md} (100%) rename docs/api-clients/{connect-webviews/delete-a-connect-webview.md => connect_webviews/delete.md} (100%) rename docs/api-clients/{connect-webviews/get-a-connect-webview.md => connect_webviews/get.md} (100%) rename docs/api-clients/{connect-webviews/list-connect-webviews.md => connect_webviews/list.md} (100%) rename docs/api-clients/{connected-accounts => connected_accounts}/README.md (100%) rename docs/api-clients/{connected-accounts/delete-a-connected-account.md => connected_accounts/delete.md} (100%) rename docs/api-clients/{connected-accounts/get-a-connected-account.md => connected_accounts/get.md} (100%) rename docs/api-clients/{connected-accounts/list-connected-accounts.md => connected_accounts/list.md} (100%) rename docs/api-clients/{connected-accounts/update-a-connected-account.md => connected_accounts/update.md} (100%) rename docs/api-clients/devices/{delete-device.md => delete.md} (100%) delete mode 100644 docs/api-clients/devices/get-device-1.md rename docs/api-clients/devices/{get-device.md => get.md} (100%) rename docs/api-clients/devices/{list-devices.md => list.md} (100%) rename docs/api-clients/devices/{list-device-providers.md => list_device_providers.md} (100%) rename docs/api-clients/devices/{list-unmanaged-devices.md => unmanaged/list.md} (100%) rename docs/api-clients/devices/{update-unmanaged-device.md => unmanaged/update.md} (100%) rename docs/api-clients/devices/{update-device.md => update.md} (100%) rename docs/api-clients/events/{get-an-event.md => get.md} (100%) rename docs/api-clients/events/{list-events.md => list.md} (100%) rename docs/api-clients/locks/{get-lock.md => get.md} (100%) rename docs/api-clients/locks/{list-locks.md => list.md} (100%) rename docs/api-clients/locks/{lock-a-lock.md => lock_door.md} (100%) rename docs/api-clients/locks/{unlock-a-lock.md => unlock_door.md} (100%) rename docs/api-clients/{noise-sensors => noise_sensors}/README.md (100%) rename docs/api-clients/{noise-sensors/create-noise-threshold.md => noise_sensors/noise_thresholds/create.md} (100%) rename docs/api-clients/{noise-sensors/delete-noise-threshold.md => noise_sensors/noise_thresholds/delete.md} (100%) rename docs/api-clients/{noise-sensors/list-noise-thresholds.md => noise_sensors/noise_thresholds/list.md} (100%) rename docs/api-clients/{noise-sensors/update-noise-threshold.md => noise_sensors/noise_thresholds/update.md} (100%) rename docs/api-clients/thermostats/{set-to-cool-mode.md => cool.md} (100%) rename docs/api-clients/thermostats/{set-to-heat-mode.md => heat.md} (100%) rename docs/api-clients/thermostats/{set-to-heat-cool-auto-mode.md => heat_cool.md} (100%) rename docs/api-clients/thermostats/{set-to-off-mode.md => off.md} (100%) rename docs/api-clients/thermostats/{set-fan-mode.md => set_fan_mode.md} (100%) create mode 100644 docs/api-clients/thermostats/update.md rename docs/api-clients/{user-identities => user_identities}/README.md (100%) rename docs/api-clients/{user-identities/add-an-acs-user-to-a-user-identity.md => user_identities/add_acs_user.md} (100%) rename docs/api-clients/{user-identities/create-a-user-identity.md => user_identities/create.md} (100%) rename docs/api-clients/{user-identities/delete-a-user-identity.md => user_identities/delete.md} (85%) rename docs/api-clients/{user-identities/enrollment-automations => user_identities/enrollment_automations}/README.md (100%) rename docs/api-clients/{user-identities/enrollment-automations/delete-an-enrollment-automation.md => user_identities/enrollment_automations/delete.md} (100%) rename docs/api-clients/{user-identities/enrollment-automations/get-an-enrollment-automation.md => user_identities/enrollment_automations/get.md} (100%) rename docs/api-clients/{user-identities/enrollment-automations/launch-an-enrollment-automation.md => user_identities/enrollment_automations/launch.md} (100%) rename docs/api-clients/{user-identities/enrollment-automations/list-enrollment-automations.md => user_identities/enrollment_automations/list.md} (100%) rename docs/api-clients/{user-identities/get-a-user-identity.md => user_identities/get.md} (100%) rename docs/api-clients/{user-identities/grant-a-user-identity-access-to-a-device.md => user_identities/grant_access_to_device.md} (100%) rename docs/api-clients/{user-identities/list-user-identities.md => user_identities/list.md} (100%) rename docs/api-clients/{user-identities/list-accessible-devices-for-a-user-identity.md => user_identities/list_accessible_devices.md} (100%) rename docs/api-clients/{user-identities/list-acs-systems-associated-with-a-user-identity.md => user_identities/list_acs_systems.md} (100%) rename docs/api-clients/{user-identities/list-acs-users-associated-with-a-user-identity.md => user_identities/list_acs_users.md} (100%) rename docs/api-clients/{user-identities/remove-an-acs-user-from-a-user-identity.md => user_identities/remove_acs_user.md} (100%) rename docs/api-clients/{user-identities/revoke-access-to-a-device-from-a-user-identity.md => user_identities/revoke_access_to_device.md} (100%) rename docs/api-clients/workspaces/{get-workspace.md => get.md} (100%) rename docs/api-clients/workspaces/{reset-workspace.md => reset_sandbox.md} (100%) rename {generated-docs => docs}/api/README.md (100%) create mode 100644 docs/api/acs/systems/list.md rename {generated-docs => docs}/sdk/README.md (100%) create mode 100644 docs/sdk/javascript/acs/systems/list.md delete mode 100644 generated-docs/api/acs/systems/list.md delete mode 100644 generated-docs/sdk/javascript/acs/systems/list.md create mode 100644 src/lib/template-context.ts diff --git a/.prettierignore b/.prettierignore index fac0f41d..98cc195f 100644 --- a/.prettierignore +++ b/.prettierignore @@ -9,6 +9,7 @@ docs seam-sdk-playground gitbook-plugin +*.hbs # TypeScript build output *.d.ts diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 798a6eed..592d846b 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -153,40 +153,40 @@ * [Lock a Lock](api-clients/locks/lock-a-lock.md) * [Unlock a Lock](api-clients/locks/unlock-a-lock.md) * [List Locks](api-clients/locks/list-locks.md) -* [Access Control Systems](api-clients/access-control-systems/README.md) - * [Systems](api-clients/access-control-systems/systems/README.md) - * [List Systems](api-clients/access-control-systems/systems/list-systems.md) - * [Get a System](api-clients/access-control-systems/systems/get-system.md) - * [List Compatible Credential Manager ACS Systems](api-clients/access-control-systems/systems/list-compatible-credential-manager-acs-systems.md) - * [Users](api-clients/access-control-systems/users/README.md) - * [Create a User](api-clients/access-control-systems/users/create-user.md) - * [List Users](api-clients/access-control-systems/users/list-users.md) - * [Get a User](api-clients/access-control-systems/users/get-user.md) - * [Update a User](api-clients/access-control-systems/users/update-user.md) - * [Suspend a User](api-clients/access-control-systems/users/suspend-a-user.md) - * [Unsuspend a User](api-clients/access-control-systems/users/unsuspend-a-user.md) - * [Delete a User](api-clients/access-control-systems/users/delete-user.md) - * [Add a User to an Access Group](api-clients/access-control-systems/users/add-user-to-access-group.md) - * [Remove a User from an Access Group](api-clients/access-control-systems/users/remove-user-from-access-group.md) - * [Entrances](api-clients/access-control-systems/entrances/README.md) - * [List Entrances](api-clients/access-control-systems/entrances/list-entrances.md) - * [Get an Entrance](api-clients/access-control-systems/entrances/get-an-entrance.md) - * [List Credentials with Access to an Entrance](api-clients/access-control-systems/entrances/list-credentials-with-access-to-an-entrance.md) - * [Access Groups](api-clients/access-control-systems/access-groups/README.md) - * [List Access Groups](api-clients/access-control-systems/access-groups/list-access-groups.md) - * [Get an Access Group](api-clients/access-control-systems/access-groups/get-access-group.md) - * [Add a User to an Access Group](api-clients/access-control-systems/access-groups/add-user-to-access-group.md) - * [Remove a User from an Access Group](api-clients/access-control-systems/access-groups/remove-user-from-access-group.md) - * [List Users in an Access Group](api-clients/access-control-systems/access-groups/list-users-in-access-group.md) - * [Credentials](api-clients/access-control-systems/credentials/README.md) - * [Create a Credential for a User](api-clients/access-control-systems/credentials/create-credential-for-user.md) - * [Assign a Credential to a User](api-clients/access-control-systems/credentials/assign-a-credential-to-a-user.md) - * [List Credentials](api-clients/access-control-systems/credentials/list-credentials.md) - * [Get a Credential](api-clients/access-control-systems/credentials/get-credential.md) - * [Update a Credential](api-clients/access-control-systems/credentials/update-a-credential.md) - * [Unassign a Credential from a User](api-clients/access-control-systems/credentials/unassign-a-credential-from-a-user.md) - * [Delete a Credential](api-clients/access-control-systems/credentials/delete-credential.md) - * [List Accessible Entrances](api-clients/access-control-systems/credentials/list-accessible-entrances.md) +* [Access Control Systems](api-clients/acs/README.md) + * [Systems](api-clients/acs/systems/README.md) + * [List Systems](api/acs/systems/list.md) + * [Get a System](api-clients/acs/systems/get-system.md) + * [List Compatible Credential Manager ACS Systems](api-clients/acs/systems/list-compatible-credential-manager-acs-systems.md) + * [Users](api-clients/acs/users/README.md) + * [Create a User](api-clients/acs/users/create-user.md) + * [List Users](api-clients/acs/users/list-users.md) + * [Get a User](api-clients/acs/users/get-user.md) + * [Update a User](api-clients/acs/users/update-user.md) + * [Suspend a User](api-clients/acs/users/suspend-a-user.md) + * [Unsuspend a User](api-clients/acs/users/unsuspend-a-user.md) + * [Delete a User](api-clients/acs/users/delete-user.md) + * [Add a User to an Access Group](api-clients/acs/users/add-user-to-access-group.md) + * [Remove a User from an Access Group](api-clients/acs/users/remove-user-from-access-group.md) + * [Entrances](api-clients/acs/entrances/README.md) + * [List Entrances](api-clients/acs/entrances/list-entrances.md) + * [Get an Entrance](api-clients/acs/entrances/get-an-entrance.md) + * [List Credentials with Access to an Entrance](api-clients/acs/entrances/list-credentials-with-access-to-an-entrance.md) + * [Access Groups](api-clients/acs/access-groups/README.md) + * [List Access Groups](api-clients/acs/access-groups/list-access-groups.md) + * [Get an Access Group](api-clients/acs/access-groups/get-access-group.md) + * [Add a User to an Access Group](api-clients/acs/access-groups/add-user-to-access-group.md) + * [Remove a User from an Access Group](api-clients/acs/access-groups/remove-user-from-access-group.md) + * [List Users in an Access Group](api-clients/acs/access-groups/list-users-in-access-group.md) + * [Credentials](api-clients/acs/credentials/README.md) + * [Create a Credential for a User](api-clients/acs/credentials/create-credential-for-user.md) + * [Assign a Credential to a User](api-clients/acs/credentials/assign-a-credential-to-a-user.md) + * [List Credentials](api-clients/acs/credentials/list-credentials.md) + * [Get a Credential](api-clients/acs/credentials/get-credential.md) + * [Update a Credential](api-clients/acs/credentials/update-a-credential.md) + * [Unassign a Credential from a User](api-clients/acs/credentials/unassign-a-credential-from-a-user.md) + * [Delete a Credential](api-clients/acs/credentials/delete-credential.md) + * [List Accessible Entrances](api-clients/acs/credentials/list-accessible-entrances.md) * [Noise Sensors](api-clients/noise-sensors/README.md) * [Create Noise Thresholds](api-clients/noise-sensors/create-noise-threshold.md) * [List Noise Thresholds](api-clients/noise-sensors/list-noise-thresholds.md) diff --git a/docs/api-clients/access-codes/create-an-access-code.md b/docs/api-clients/access-codes/create.md similarity index 100% rename from docs/api-clients/access-codes/create-an-access-code.md rename to docs/api-clients/access-codes/create.md diff --git a/docs/api-clients/access-codes/create-many-access-codes.md b/docs/api-clients/access-codes/create_multiple.md similarity index 100% rename from docs/api-clients/access-codes/create-many-access-codes.md rename to docs/api-clients/access-codes/create_multiple.md diff --git a/docs/api-clients/access-codes/delete-an-access-code.md b/docs/api-clients/access-codes/delete.md similarity index 100% rename from docs/api-clients/access-codes/delete-an-access-code.md rename to docs/api-clients/access-codes/delete.md diff --git a/docs/api-clients/access-codes/get-an-access-code.md b/docs/api-clients/access-codes/get.md similarity index 100% rename from docs/api-clients/access-codes/get-an-access-code.md rename to docs/api-clients/access-codes/get.md diff --git a/docs/api-clients/access-codes/list-access-codes.md b/docs/api-clients/access-codes/list.md similarity index 100% rename from docs/api-clients/access-codes/list-access-codes.md rename to docs/api-clients/access-codes/list.md diff --git a/docs/api-clients/access-codes/pull-backup-access-code.md b/docs/api-clients/access-codes/pull_backup_access_code.md similarity index 100% rename from docs/api-clients/access-codes/pull-backup-access-code.md rename to docs/api-clients/access-codes/pull_backup_access_code.md diff --git a/docs/api-clients/access-codes/convert-an-unmanaged-access-code.md b/docs/api-clients/access-codes/unmanaged/convert_to_managed.md similarity index 100% rename from docs/api-clients/access-codes/convert-an-unmanaged-access-code.md rename to docs/api-clients/access-codes/unmanaged/convert_to_managed.md diff --git a/docs/api-clients/access-codes/delete-an-unmanaged-access-code.md b/docs/api-clients/access-codes/unmanaged/delete.md similarity index 100% rename from docs/api-clients/access-codes/delete-an-unmanaged-access-code.md rename to docs/api-clients/access-codes/unmanaged/delete.md diff --git a/docs/api-clients/access-codes/get-an-unmanaged-access-code.md b/docs/api-clients/access-codes/unmanaged/get.md similarity index 100% rename from docs/api-clients/access-codes/get-an-unmanaged-access-code.md rename to docs/api-clients/access-codes/unmanaged/get.md diff --git a/docs/api-clients/access-codes/list-unmanaged-access-codes.md b/docs/api-clients/access-codes/unmanaged/list.md similarity index 100% rename from docs/api-clients/access-codes/list-unmanaged-access-codes.md rename to docs/api-clients/access-codes/unmanaged/list.md diff --git a/docs/api-clients/access-codes/update-an-access-code.md b/docs/api-clients/access-codes/update.md similarity index 100% rename from docs/api-clients/access-codes/update-an-access-code.md rename to docs/api-clients/access-codes/update.md diff --git a/docs/api-clients/access-control-systems/README.md b/docs/api-clients/acs/README.md similarity index 100% rename from docs/api-clients/access-control-systems/README.md rename to docs/api-clients/acs/README.md diff --git a/docs/api-clients/access-control-systems/access-groups/README.md b/docs/api-clients/acs/access-groups/README.md similarity index 100% rename from docs/api-clients/access-control-systems/access-groups/README.md rename to docs/api-clients/acs/access-groups/README.md diff --git a/docs/api-clients/access-control-systems/access-groups/add-user-to-access-group.md b/docs/api-clients/acs/access-groups/add_user.md similarity index 100% rename from docs/api-clients/access-control-systems/access-groups/add-user-to-access-group.md rename to docs/api-clients/acs/access-groups/add_user.md diff --git a/docs/api-clients/access-control-systems/access-groups/get-access-group.md b/docs/api-clients/acs/access-groups/get.md similarity index 100% rename from docs/api-clients/access-control-systems/access-groups/get-access-group.md rename to docs/api-clients/acs/access-groups/get.md diff --git a/docs/api-clients/access-control-systems/access-groups/list-access-groups.md b/docs/api-clients/acs/access-groups/list.md similarity index 100% rename from docs/api-clients/access-control-systems/access-groups/list-access-groups.md rename to docs/api-clients/acs/access-groups/list.md diff --git a/docs/api-clients/access-control-systems/access-groups/list-users-in-access-group.md b/docs/api-clients/acs/access-groups/list_users.md similarity index 100% rename from docs/api-clients/access-control-systems/access-groups/list-users-in-access-group.md rename to docs/api-clients/acs/access-groups/list_users.md diff --git a/docs/api-clients/access-control-systems/access-groups/remove-user-from-access-group.md b/docs/api-clients/acs/access-groups/remove_user.md similarity index 100% rename from docs/api-clients/access-control-systems/access-groups/remove-user-from-access-group.md rename to docs/api-clients/acs/access-groups/remove_user.md diff --git a/docs/api-clients/access-control-systems/credentials/README.md b/docs/api-clients/acs/credentials/README.md similarity index 100% rename from docs/api-clients/access-control-systems/credentials/README.md rename to docs/api-clients/acs/credentials/README.md diff --git a/docs/api-clients/access-control-systems/credentials/assign-a-credential-to-a-user.md b/docs/api-clients/acs/credentials/assign.md similarity index 100% rename from docs/api-clients/access-control-systems/credentials/assign-a-credential-to-a-user.md rename to docs/api-clients/acs/credentials/assign.md diff --git a/docs/api-clients/access-control-systems/credentials/create-credential-for-user.md b/docs/api-clients/acs/credentials/create.md similarity index 100% rename from docs/api-clients/access-control-systems/credentials/create-credential-for-user.md rename to docs/api-clients/acs/credentials/create.md diff --git a/docs/api-clients/access-control-systems/credentials/delete-credential.md b/docs/api-clients/acs/credentials/delete.md similarity index 100% rename from docs/api-clients/access-control-systems/credentials/delete-credential.md rename to docs/api-clients/acs/credentials/delete.md diff --git a/docs/api-clients/access-control-systems/credentials/get-credential.md b/docs/api-clients/acs/credentials/get.md similarity index 100% rename from docs/api-clients/access-control-systems/credentials/get-credential.md rename to docs/api-clients/acs/credentials/get.md diff --git a/docs/api-clients/access-control-systems/credentials/list-credentials.md b/docs/api-clients/acs/credentials/list.md similarity index 100% rename from docs/api-clients/access-control-systems/credentials/list-credentials.md rename to docs/api-clients/acs/credentials/list.md diff --git a/docs/api-clients/access-control-systems/credentials/list-accessible-entrances.md b/docs/api-clients/acs/credentials/list_accessible_entrances.md similarity index 100% rename from docs/api-clients/access-control-systems/credentials/list-accessible-entrances.md rename to docs/api-clients/acs/credentials/list_accessible_entrances.md diff --git a/docs/api-clients/access-control-systems/credentials/unassign-a-credential-from-a-user.md b/docs/api-clients/acs/credentials/unassign.md similarity index 100% rename from docs/api-clients/access-control-systems/credentials/unassign-a-credential-from-a-user.md rename to docs/api-clients/acs/credentials/unassign.md diff --git a/docs/api-clients/access-control-systems/credentials/update-a-credential.md b/docs/api-clients/acs/credentials/update.md similarity index 100% rename from docs/api-clients/access-control-systems/credentials/update-a-credential.md rename to docs/api-clients/acs/credentials/update.md diff --git a/docs/api-clients/access-control-systems/entrances/README.md b/docs/api-clients/acs/entrances/README.md similarity index 100% rename from docs/api-clients/access-control-systems/entrances/README.md rename to docs/api-clients/acs/entrances/README.md diff --git a/docs/api-clients/access-control-systems/entrances/get-an-entrance.md b/docs/api-clients/acs/entrances/get.md similarity index 100% rename from docs/api-clients/access-control-systems/entrances/get-an-entrance.md rename to docs/api-clients/acs/entrances/get.md diff --git a/docs/api-clients/access-control-systems/entrances/list-entrances.md b/docs/api-clients/acs/entrances/list.md similarity index 100% rename from docs/api-clients/access-control-systems/entrances/list-entrances.md rename to docs/api-clients/acs/entrances/list.md diff --git a/docs/api-clients/access-control-systems/entrances/list-credentials-with-access-to-an-entrance.md b/docs/api-clients/acs/entrances/list_credentials_with_access.md similarity index 100% rename from docs/api-clients/access-control-systems/entrances/list-credentials-with-access-to-an-entrance.md rename to docs/api-clients/acs/entrances/list_credentials_with_access.md diff --git a/docs/api-clients/access-control-systems/systems/README.md b/docs/api-clients/acs/systems/README.md similarity index 100% rename from docs/api-clients/access-control-systems/systems/README.md rename to docs/api-clients/acs/systems/README.md diff --git a/docs/api-clients/access-control-systems/systems/get-system.md b/docs/api-clients/acs/systems/get.md similarity index 100% rename from docs/api-clients/access-control-systems/systems/get-system.md rename to docs/api-clients/acs/systems/get.md diff --git a/docs/api-clients/access-control-systems/systems/list-systems.md b/docs/api-clients/acs/systems/list.md similarity index 100% rename from docs/api-clients/access-control-systems/systems/list-systems.md rename to docs/api-clients/acs/systems/list.md diff --git a/docs/api-clients/access-control-systems/systems/list-compatible-credential-manager-acs-systems.md b/docs/api-clients/acs/systems/list_compatible_credential_manager_acs_systems.md similarity index 100% rename from docs/api-clients/access-control-systems/systems/list-compatible-credential-manager-acs-systems.md rename to docs/api-clients/acs/systems/list_compatible_credential_manager_acs_systems.md diff --git a/docs/api-clients/access-control-systems/users/README.md b/docs/api-clients/acs/users/README.md similarity index 100% rename from docs/api-clients/access-control-systems/users/README.md rename to docs/api-clients/acs/users/README.md diff --git a/docs/api-clients/access-control-systems/users/add-user-to-access-group.md b/docs/api-clients/acs/users/add_to_access_group.md similarity index 100% rename from docs/api-clients/access-control-systems/users/add-user-to-access-group.md rename to docs/api-clients/acs/users/add_to_access_group.md diff --git a/docs/api-clients/access-control-systems/users/create-user.md b/docs/api-clients/acs/users/create.md similarity index 100% rename from docs/api-clients/access-control-systems/users/create-user.md rename to docs/api-clients/acs/users/create.md diff --git a/docs/api-clients/access-control-systems/users/delete-user.md b/docs/api-clients/acs/users/delete.md similarity index 100% rename from docs/api-clients/access-control-systems/users/delete-user.md rename to docs/api-clients/acs/users/delete.md diff --git a/docs/api-clients/access-control-systems/users/get-user.md b/docs/api-clients/acs/users/get.md similarity index 100% rename from docs/api-clients/access-control-systems/users/get-user.md rename to docs/api-clients/acs/users/get.md diff --git a/docs/api-clients/access-control-systems/users/list-users.md b/docs/api-clients/acs/users/list.md similarity index 100% rename from docs/api-clients/access-control-systems/users/list-users.md rename to docs/api-clients/acs/users/list.md diff --git a/docs/api-clients/access-control-systems/users/remove-user-from-access-group.md b/docs/api-clients/acs/users/remove_from_access_group.md similarity index 100% rename from docs/api-clients/access-control-systems/users/remove-user-from-access-group.md rename to docs/api-clients/acs/users/remove_from_access_group.md diff --git a/docs/api-clients/access-control-systems/users/suspend-a-user.md b/docs/api-clients/acs/users/suspend.md similarity index 100% rename from docs/api-clients/access-control-systems/users/suspend-a-user.md rename to docs/api-clients/acs/users/suspend.md diff --git a/docs/api-clients/access-control-systems/users/unsuspend-a-user.md b/docs/api-clients/acs/users/unsuspend.md similarity index 100% rename from docs/api-clients/access-control-systems/users/unsuspend-a-user.md rename to docs/api-clients/acs/users/unsuspend.md diff --git a/docs/api-clients/access-control-systems/users/update-user.md b/docs/api-clients/acs/users/update.md similarity index 100% rename from docs/api-clients/access-control-systems/users/update-user.md rename to docs/api-clients/acs/users/update.md diff --git a/docs/api-clients/action-attempt/README.md b/docs/api-clients/action_attempts/README.md similarity index 100% rename from docs/api-clients/action-attempt/README.md rename to docs/api-clients/action_attempts/README.md diff --git a/docs/api-clients/action-attempt/get-action-attempt.md b/docs/api-clients/action_attempts/get.md similarity index 100% rename from docs/api-clients/action-attempt/get-action-attempt.md rename to docs/api-clients/action_attempts/get.md diff --git a/docs/api-clients/client-sessions/README.md b/docs/api-clients/client_sessions/README.md similarity index 100% rename from docs/api-clients/client-sessions/README.md rename to docs/api-clients/client_sessions/README.md diff --git a/docs/api-clients/client-sessions/create-a-client-session.md b/docs/api-clients/client_sessions/create.md similarity index 100% rename from docs/api-clients/client-sessions/create-a-client-session.md rename to docs/api-clients/client_sessions/create.md diff --git a/docs/api-clients/client-sessions/delete-a-client-session.md b/docs/api-clients/client_sessions/delete.md similarity index 100% rename from docs/api-clients/client-sessions/delete-a-client-session.md rename to docs/api-clients/client_sessions/delete.md diff --git a/docs/api-clients/client-sessions/get-a-client-session.md b/docs/api-clients/client_sessions/get.md similarity index 100% rename from docs/api-clients/client-sessions/get-a-client-session.md rename to docs/api-clients/client_sessions/get.md diff --git a/docs/api-clients/client-sessions/get-or-create-a-client-session.md b/docs/api-clients/client_sessions/get_or_create.md similarity index 100% rename from docs/api-clients/client-sessions/get-or-create-a-client-session.md rename to docs/api-clients/client_sessions/get_or_create.md diff --git a/docs/api-clients/client-sessions/grant-access-to-a-client-session.md b/docs/api-clients/client_sessions/grant_access.md similarity index 100% rename from docs/api-clients/client-sessions/grant-access-to-a-client-session.md rename to docs/api-clients/client_sessions/grant_access.md diff --git a/docs/api-clients/client-sessions/list-client-sessions.md b/docs/api-clients/client_sessions/list.md similarity index 100% rename from docs/api-clients/client-sessions/list-client-sessions.md rename to docs/api-clients/client_sessions/list.md diff --git a/docs/api-clients/connect-webviews/README.md b/docs/api-clients/connect_webviews/README.md similarity index 100% rename from docs/api-clients/connect-webviews/README.md rename to docs/api-clients/connect_webviews/README.md diff --git a/docs/api-clients/connect-webviews/create-a-connect-webview.md b/docs/api-clients/connect_webviews/create.md similarity index 100% rename from docs/api-clients/connect-webviews/create-a-connect-webview.md rename to docs/api-clients/connect_webviews/create.md diff --git a/docs/api-clients/connect-webviews/delete-a-connect-webview.md b/docs/api-clients/connect_webviews/delete.md similarity index 100% rename from docs/api-clients/connect-webviews/delete-a-connect-webview.md rename to docs/api-clients/connect_webviews/delete.md diff --git a/docs/api-clients/connect-webviews/get-a-connect-webview.md b/docs/api-clients/connect_webviews/get.md similarity index 100% rename from docs/api-clients/connect-webviews/get-a-connect-webview.md rename to docs/api-clients/connect_webviews/get.md diff --git a/docs/api-clients/connect-webviews/list-connect-webviews.md b/docs/api-clients/connect_webviews/list.md similarity index 100% rename from docs/api-clients/connect-webviews/list-connect-webviews.md rename to docs/api-clients/connect_webviews/list.md diff --git a/docs/api-clients/connected-accounts/README.md b/docs/api-clients/connected_accounts/README.md similarity index 100% rename from docs/api-clients/connected-accounts/README.md rename to docs/api-clients/connected_accounts/README.md diff --git a/docs/api-clients/connected-accounts/delete-a-connected-account.md b/docs/api-clients/connected_accounts/delete.md similarity index 100% rename from docs/api-clients/connected-accounts/delete-a-connected-account.md rename to docs/api-clients/connected_accounts/delete.md diff --git a/docs/api-clients/connected-accounts/get-a-connected-account.md b/docs/api-clients/connected_accounts/get.md similarity index 100% rename from docs/api-clients/connected-accounts/get-a-connected-account.md rename to docs/api-clients/connected_accounts/get.md diff --git a/docs/api-clients/connected-accounts/list-connected-accounts.md b/docs/api-clients/connected_accounts/list.md similarity index 100% rename from docs/api-clients/connected-accounts/list-connected-accounts.md rename to docs/api-clients/connected_accounts/list.md diff --git a/docs/api-clients/connected-accounts/update-a-connected-account.md b/docs/api-clients/connected_accounts/update.md similarity index 100% rename from docs/api-clients/connected-accounts/update-a-connected-account.md rename to docs/api-clients/connected_accounts/update.md diff --git a/docs/api-clients/devices/delete-device.md b/docs/api-clients/devices/delete.md similarity index 100% rename from docs/api-clients/devices/delete-device.md rename to docs/api-clients/devices/delete.md diff --git a/docs/api-clients/devices/get-device-1.md b/docs/api-clients/devices/get-device-1.md deleted file mode 100644 index 11f6a1d0..00000000 --- a/docs/api-clients/devices/get-device-1.md +++ /dev/null @@ -1,210 +0,0 @@ ---- -description: Get a specified unmanaged device ---- - -# Get an Unmanaged Device - -Returns a specified [unmanaged device](../../core-concepts/devices/#managed-devices-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](../../products/smart-locks/access-codes/) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](../../core-concepts/devices/#convert-an-unmanaged-device-to-managed). - -{% swagger src="https://connect.getseam.com/openapi.json" path="/devices/unmanaged/get" method="post" %} -[https://connect.getseam.com/openapi.json](https://connect.getseam.com/openapi.json) -{% endswagger %} - -## Request - -Specify the desired unmanaged device by including the corresponding `device_id` in the request body. - -### Request Body Parameters - -
ParameterTypeDescription
device_idString
Required
ID of the desired device.
- -### Sample Request - -{% tabs %} -{% tab title="Python" %} -```python -pprint(seam.devices.unmanaged.get("882dd63f-db9b-4210-bac2-68372aa0aff7")) -``` -{% endtab %} - -{% tab title="cURL (bash)" %} -```bash -# Use GET or POST. -curl -X 'GET' \ - 'https://connect.getseam.com/devices/unmanaged/get' \ - -H 'accept: application/json' \ - -H 'Authorization: Bearer ${API_KEY}' \ - -H 'Content-Type: application/json' \ - -d '{ - "device_id": "882dd63f-db9b-4210-bac2-68372aa0aff7" -}' -``` -{% endtab %} - -{% tab title="JavaScript" %} -```javascript -console.log(await seam.devices.unmanaged.get({device_id: "882dd63f-db9b-4210-bac2-68372aa0aff7"})) -``` -{% endtab %} - -{% tab title="Ruby" %} -```ruby -puts client.unmanaged_devices.get("882dd63f-db9b-4210-bac2-68372aa0aff7").inspect -``` -{% endtab %} - -{% tab title="C#" %} -```csharp -var unmanagedDevice = seam.UnmanagedDevices.Get("882dd63f-db9b-4210-bac2-68372aa0aff7"); -Console.WriteLine(unmanagedDevice); -``` -{% endtab %} -{% endtabs %} - -## Response - -Returns an unmanaged `device` that contains the set of applicable device properties. For details, see [Devices](./). - -This response also includes a Boolean `ok` status indicator. - -### Sample Response - -{% tabs %} -{% tab title="Python" %} -``` -UnmanagedDevice(device_id='882dd63f-db9b-4210-bac2-68372aa0aff7', - device_type='august_lock', - properties={'image_alt_text': 'August Wifi Smart Lock 3rd Gen, ' - 'Silver, Front', - 'image_url': 'https://connect.getseam.com/assets/images/devices/august_wifi-smart-lock-3rd-gen_silver_front.png', - 'manufacturer': 'august', - 'model': {'accessory_keypad_supported': True, - 'display_name': 'Lock', - 'manufacturer_display_name': 'August', - 'offline_access_codes_supported': False, - 'online_access_codes_supported': True}, - 'name': 'GARAGE', - 'online': True}, - connected_account_id='f72442d2-2c16-4e3f-9882-6bff21828b1b', - workspace_id='398d80b7-3f96-47c2-b85a-6f8ba21d07be', - created_at='2023-10-28T09:13:08.836Z', - errors=[], - warnings=[], - capabilities_supported=['access_code', 'lock'], - is_managed=False) -``` -{% endtab %} - -{% tab title="cURL (bash)" %} -```json -{ - "device": { - "is_managed": false, - "device_id": "882dd63f-db9b-4210-bac2-68372aa0aff7", - "device_type": "august_lock", - "connected_account_id": "f72442d2-2c16-4e3f-9882-6bff21828b1b", - "capabilities_supported": [ - "access_code", - "lock" - ], - "workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be", - "created_at": "2023-10-28T09:13:08.836Z", - "errors": [], - "warnings": [], - "properties": { - "name": "GARAGE", - "online": true, - "manufacturer": "august", - "image_url": "https://connect.getseam.com/assets/images/devices/august_wifi-smart-lock-3rd-gen_silver_front.png", - "image_alt_text": "August Wifi Smart Lock 3rd Gen, Silver, Front", - "model": { - "display_name": "Lock", - "manufacturer_display_name": "August", - "accessory_keypad_supported": true, - "offline_access_codes_supported": false, - "online_access_codes_supported": true - } - } - }, - "ok": true -} -``` -{% endtab %} - -{% tab title="JavaScript" %} -```json -{ - is_managed: false, - device_id: '882dd63f-db9b-4210-bac2-68372aa0aff7', - device_type: 'august_lock', - connected_account_id: 'f72442d2-2c16-4e3f-9882-6bff21828b1b', - capabilities_supported: [ 'access_code', 'lock' ], - workspace_id: '398d80b7-3f96-47c2-b85a-6f8ba21d07be', - created_at: '2023-10-28T09:13:08.836Z', - errors: [], - warnings: [], - properties: { - name: 'GARAGE', - online: true, - manufacturer: 'august', - image_url: 'https://connect.getseam.com/assets/images/devices/august_wifi-smart-lock-3rd-gen_silver_front.png', - image_alt_text: 'August Wifi Smart Lock 3rd Gen, Silver, Front', - model: { - display_name: 'Lock', - manufacturer_display_name: 'August', - accessory_keypad_supported: true, - offline_access_codes_supported: false, - online_access_codes_supported: true - } - } -} -``` -{% endtab %} - -{% tab title="Ruby" %} -{% code overflow="wrap" %} -``` -"GARAGE", "online"=>true, "manufacturer"=>"august", "image_url"=>"https://connect.getseam.com/assets/images/devices/august_wifi-smart-lock-3rd-gen_silver_front.png", "image_alt_text"=>"August Wifi Smart Lock 3rd Gen, Silver, Front", "model"=>{"display_name"=>"Lock", "manufacturer_display_name"=>"August", "accessory_keypad_supported"=>true, "offline_access_codes_supported"=>false, "online_access_codes_supported"=>true}}> -``` -{% endcode %} -{% endtab %} - -{% tab title="C#" %} -```json -{ - "device_id": "882dd63f-db9b-4210-bac2-68372aa0aff7", - "device_type": "august_lock", - "connected_account_id": "f72442d2-2c16-4e3f-9882-6bff21828b1b", - "capabilities_supported": [ - "access_code", - "lock" - ], - "workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be", - "errors": [], - "warnings": [], - "created_at": "2023-10-28T09:13:08.836Z", - "properties": { - "name": "GARAGE", - "online": true, - "manufacturer": "august", - "image_url": "https://connect.getseam.com/assets/images/devices/august_wifi-smart-lock-3rd-gen_silver_front.png", - "image_alt_text": "August Wifi Smart Lock 3rd Gen, Silver, Front", - "model": { - "display_name": "Lock", - "manufacturer_display_name": "August" - } - } -} -``` -{% endtab %} -{% endtabs %} diff --git a/docs/api-clients/devices/get-device.md b/docs/api-clients/devices/get.md similarity index 100% rename from docs/api-clients/devices/get-device.md rename to docs/api-clients/devices/get.md diff --git a/docs/api-clients/devices/list-devices.md b/docs/api-clients/devices/list.md similarity index 100% rename from docs/api-clients/devices/list-devices.md rename to docs/api-clients/devices/list.md diff --git a/docs/api-clients/devices/list-device-providers.md b/docs/api-clients/devices/list_device_providers.md similarity index 100% rename from docs/api-clients/devices/list-device-providers.md rename to docs/api-clients/devices/list_device_providers.md diff --git a/docs/api-clients/devices/list-unmanaged-devices.md b/docs/api-clients/devices/unmanaged/list.md similarity index 100% rename from docs/api-clients/devices/list-unmanaged-devices.md rename to docs/api-clients/devices/unmanaged/list.md diff --git a/docs/api-clients/devices/update-unmanaged-device.md b/docs/api-clients/devices/unmanaged/update.md similarity index 100% rename from docs/api-clients/devices/update-unmanaged-device.md rename to docs/api-clients/devices/unmanaged/update.md diff --git a/docs/api-clients/devices/update-device.md b/docs/api-clients/devices/update.md similarity index 100% rename from docs/api-clients/devices/update-device.md rename to docs/api-clients/devices/update.md diff --git a/docs/api-clients/events/get-an-event.md b/docs/api-clients/events/get.md similarity index 100% rename from docs/api-clients/events/get-an-event.md rename to docs/api-clients/events/get.md diff --git a/docs/api-clients/events/list-events.md b/docs/api-clients/events/list.md similarity index 100% rename from docs/api-clients/events/list-events.md rename to docs/api-clients/events/list.md diff --git a/docs/api-clients/locks/get-lock.md b/docs/api-clients/locks/get.md similarity index 100% rename from docs/api-clients/locks/get-lock.md rename to docs/api-clients/locks/get.md diff --git a/docs/api-clients/locks/list-locks.md b/docs/api-clients/locks/list.md similarity index 100% rename from docs/api-clients/locks/list-locks.md rename to docs/api-clients/locks/list.md diff --git a/docs/api-clients/locks/lock-a-lock.md b/docs/api-clients/locks/lock_door.md similarity index 100% rename from docs/api-clients/locks/lock-a-lock.md rename to docs/api-clients/locks/lock_door.md diff --git a/docs/api-clients/locks/unlock-a-lock.md b/docs/api-clients/locks/unlock_door.md similarity index 100% rename from docs/api-clients/locks/unlock-a-lock.md rename to docs/api-clients/locks/unlock_door.md diff --git a/docs/api-clients/noise-sensors/README.md b/docs/api-clients/noise_sensors/README.md similarity index 100% rename from docs/api-clients/noise-sensors/README.md rename to docs/api-clients/noise_sensors/README.md diff --git a/docs/api-clients/noise-sensors/create-noise-threshold.md b/docs/api-clients/noise_sensors/noise_thresholds/create.md similarity index 100% rename from docs/api-clients/noise-sensors/create-noise-threshold.md rename to docs/api-clients/noise_sensors/noise_thresholds/create.md diff --git a/docs/api-clients/noise-sensors/delete-noise-threshold.md b/docs/api-clients/noise_sensors/noise_thresholds/delete.md similarity index 100% rename from docs/api-clients/noise-sensors/delete-noise-threshold.md rename to docs/api-clients/noise_sensors/noise_thresholds/delete.md diff --git a/docs/api-clients/noise-sensors/list-noise-thresholds.md b/docs/api-clients/noise_sensors/noise_thresholds/list.md similarity index 100% rename from docs/api-clients/noise-sensors/list-noise-thresholds.md rename to docs/api-clients/noise_sensors/noise_thresholds/list.md diff --git a/docs/api-clients/noise-sensors/update-noise-threshold.md b/docs/api-clients/noise_sensors/noise_thresholds/update.md similarity index 100% rename from docs/api-clients/noise-sensors/update-noise-threshold.md rename to docs/api-clients/noise_sensors/noise_thresholds/update.md diff --git a/docs/api-clients/overview.md b/docs/api-clients/overview.md index c7cc85dd..6d1049d3 100644 --- a/docs/api-clients/overview.md +++ b/docs/api-clients/overview.md @@ -6,5 +6,5 @@ description: Comprehensive reference for integrating with Seam API endpoints ### Commonly-Used Seam API Endpoints -
Workspaces
Retrieving workspaces and resetting sandbox workspaces
/workspaces/get
/workspaces/reset_sandbox
Devices
Retrieving and updating devices, as well as listing device providers
/devices/get
/devices/list
/devices/update
/devices/list_device_providers
Connect Webviews
Creating, retrieving, and deleting Connect Webviews
/connect_webviews/create
/connect_webviews/get
/connect_webviews/list
/connect_webviews/delete
Connected Accounts
Retrieving connected account information, as well as updating and deleting connected accounts
/connected_accounts/get
/connected_accounts/list
/connected_accounts/update
/connected_accounts/delete
Devices
Retrieving and updating managed and unmanaged devices
/devices/list
/devices/list_device_providers
/devices/get
/devices/update
/devices/unmanaged/list
/devices/unmanaged/get
/devices/unmanaged/update
Access Codes
Creating, retrieving, updating, and deleting access codes

/access_codes/create

/access_codes/update
/access_codes/delete
/access_codes/get
/access_codes/list

Locks
Performing lock and unlock actions on a device, as well as retrieving locks

/locks/list

/locks/get

/locks/unlock_door
/locks/lock_door

Events
Retrieving events
/events/list
/events/get
Action Attempts
Retrieving action attempts
/action_attempts/get
Noise Sensors
Creating, retrieving, updating, and deleting noise thresholds
/noise_sensors/noise_thresholds/create
/noise_sensors/noise_thresholds/list
/noise_sensors/noise_thresholds/update
/noise_sensors/noise_thresholds/delete
Thermostats
Retrieving, updating, and setting the current climate setting on thermostats.
/thermostats/list
/thermostats/get
/thermostats/heat
/thermostats/cool
/thermostats/heat_cool
Access Control Systems
Retrieving access control systems (ACSs), as well as listing compatible credential manager systems
/acs/systems/list
/acs/systems/get
/acs/systems/list_compatible_credential_manager_acs_systems
ACS Users
Creating, retrieving, updating, suspending, unsuspending, and deleting ACS users, as well as adding users to and removing ACS users from access groups
/acs/users/create
/acs/users/list
/acs/users/get
/acs/users/update
/acs/users/suspend
/acs/users/unsuspend
/acs/users/delete
/acs/users/add_to_access_group
/acs/users/remove_from_access_group
ACS Entrances
Retrieving entrances, as well as listing credentials with access to entrances
/acs/entrances/list
/acs/entrances/get
/acs/entrances/list_credentials_with_access
ACS Access Groups
Retrieving ACS access groups, adding ACS users to and removing ACS users from access groups, and listing ACS users in access groups
/acs/access_groups/list
/acs/access_groups/get
/acs/access_groups/add_user
/acs/access_groups/remove_user
/acs/access_groups/list_users
ACS Credentials
Creating, assigning, retrieving, updating, unassigning, and deleting credentials for ACS users
/acs/credentials/create
/acs/credentials/assign
/acs/credentials/list
/acs/credentials/get
/acs/credentials/update
/acs/credentials/unassign
/acs/credentials/delete
/acs/credentials/list_accessible_entrances
User Identities
Creating, retrieving, and deleting user identities; adding ACS users to and removing ACS users from user identities; and listing ACS users and ACS systems associated with user identities

/user_identities/create

/user_identities/list

/user_identities/get

/user_identities/add_acs_user
/user_identities/list_acs_users
/user_identities/list_acs_systems
/user_identities/remove_acs_user
/user_identities/delete

Enrollment Automations
Launching, retrieving, and deleting enrollment automations
/user_identities/enrollment_automations/launch
/user_identities/enrollment_automations/list
/user_identities/enrollment_automations/get
/user_identities/enrollment_automations/delete
+
Workspaces
Retrieving workspaces and resetting sandbox workspaces
/workspaces/get
/workspaces/reset_sandbox
Devices
Retrieving and updating devices, as well as listing device providers
/devices/get
/devices/list
/devices/update
/devices/list_device_providers
Connect Webviews
Creating, retrieving, and deleting Connect Webviews
/connect_webviews/create
/connect_webviews/get
/connect_webviews/list
/connect_webviews/delete
Connected Accounts
Retrieving connected account information, as well as updating and deleting connected accounts
/connected_accounts/get
/connected_accounts/list
/connected_accounts/update
/connected_accounts/delete
Devices
Retrieving and updating managed and unmanaged devices
/devices/list
/devices/list_device_providers
/devices/get
/devices/update
/devices/unmanaged/list
/devices/unmanaged/get
/devices/unmanaged/update
Access Codes
Creating, retrieving, updating, and deleting access codes

/access_codes/create

/access_codes/update
/access_codes/delete
/access_codes/get
/access_codes/list

Locks
Performing lock and unlock actions on a device, as well as retrieving locks

/locks/list

/locks/get

/locks/unlock_door
/locks/lock_door

Events
Retrieving events
/events/list
/events/get
Action Attempts
Retrieving action attempts
/action_attempts/get
Noise Sensors
Creating, retrieving, updating, and deleting noise thresholds
/noise_sensors/noise_thresholds/create
/noise_sensors/noise_thresholds/list
/noise_sensors/noise_thresholds/update
/noise_sensors/noise_thresholds/delete
Thermostats
Retrieving, updating, and setting current and default climate settings on thermostats, as well as creating, retrieving, updating, and deleting climate setting schedules
/thermostats/list
/thermostats/get
/thermostats/update
/thermostats/heat
/thermostats/cool
/thermostats/heat_cool
/thermostats/off
/thermostats/set_fan_mode
/thermostats/climate_setting_schedules/create
/thermostats/climate_setting_schedules/list
/thermostats/climate_setting_schedules/get
/thermostats/climate_setting_schedules/update
/thermostats/climate_setting_schedules/delete
Access Control Systems
Retrieving access control systems (ACSs), as well as listing compatible credential manager systems
/acs/systems/list
/acs/systems/get
/acs/systems/list_compatible_credential_manager_acs_systems
ACS Users
Creating, retrieving, updating, suspending, unsuspending, and deleting ACS users, as well as adding users to and removing ACS users from access groups
/acs/users/create
/acs/users/list
/acs/users/get
/acs/users/update
/acs/users/suspend
/acs/users/unsuspend
/acs/users/delete
/acs/users/add_to_access_group
/acs/users/remove_from_access_group
ACS Entrances
Retrieving entrances, as well as listing credentials with access to entrances
/acs/entrances/list
/acs/entrances/get
/acs/entrances/list_credentials_with_access
ACS Access Groups
Retrieving ACS access groups, adding ACS users to and removing ACS users from access groups, and listing ACS users in access groups
/acs/access_groups/list
/acs/access_groups/get
/acs/access_groups/add_user
/acs/access_groups/remove_user
/acs/access_groups/list_users
ACS Credentials
Creating, assigning, retrieving, updating, unassigning, and deleting credentials for ACS users
/acs/credentials/create
/acs/credentials/assign
/acs/credentials/list
/acs/credentials/get
/acs/credentials/update
/acs/credentials/unassign
/acs/credentials/delete
/acs/credentials/list_accessible_entrances
User Identities
Creating, retrieving, and deleting user identities; adding ACS users to and removing ACS users from user identities; and listing ACS users and ACS systems associated with user identities

/user_identities/create

/user_identities/list

/user_identities/get

/user_identities/add_acs_user
/user_identities/list_acs_users
/user_identities/list_acs_systems
/user_identities/remove_acs_user
/user_identities/delete

Enrollment Automations
Launching, retrieving, and deleting enrollment automations
/user_identities/enrollment_automations/launch
/user_identities/enrollment_automations/list
/user_identities/enrollment_automations/get
/user_identities/enrollment_automations/delete
diff --git a/docs/api-clients/thermostats/set-to-cool-mode.md b/docs/api-clients/thermostats/cool.md similarity index 100% rename from docs/api-clients/thermostats/set-to-cool-mode.md rename to docs/api-clients/thermostats/cool.md diff --git a/docs/api-clients/thermostats/set-to-heat-mode.md b/docs/api-clients/thermostats/heat.md similarity index 100% rename from docs/api-clients/thermostats/set-to-heat-mode.md rename to docs/api-clients/thermostats/heat.md diff --git a/docs/api-clients/thermostats/set-to-heat-cool-auto-mode.md b/docs/api-clients/thermostats/heat_cool.md similarity index 100% rename from docs/api-clients/thermostats/set-to-heat-cool-auto-mode.md rename to docs/api-clients/thermostats/heat_cool.md diff --git a/docs/api-clients/thermostats/set-to-off-mode.md b/docs/api-clients/thermostats/off.md similarity index 100% rename from docs/api-clients/thermostats/set-to-off-mode.md rename to docs/api-clients/thermostats/off.md diff --git a/docs/api-clients/thermostats/set-fan-mode.md b/docs/api-clients/thermostats/set_fan_mode.md similarity index 100% rename from docs/api-clients/thermostats/set-fan-mode.md rename to docs/api-clients/thermostats/set_fan_mode.md diff --git a/docs/api-clients/thermostats/update.md b/docs/api-clients/thermostats/update.md new file mode 100644 index 00000000..f8631171 --- /dev/null +++ b/docs/api-clients/thermostats/update.md @@ -0,0 +1,92 @@ +--- +layout: + title: + visible: true + description: + visible: false + tableOfContents: + visible: true + outline: + visible: true + pagination: + visible: true +--- + +# Update a Thermostat + +Updates a [thermostat](../../thermostats/) by setting the values of the parameters passed. Any parameters not provides are left unchanged. + +The primary attribute you can modify is the [default climate setting](../../products/thermostats/#default-climate-setting). The default climate setting determines the configuration of the thermostat when a [climate setting schedule](../../products/thermostats/#climate-setting-schedules) ends. This differs from the [current climate setting](../../products/thermostats/#current-climate-setting) of the thermostat, which represent the active programming on the device. + +{% swagger src="https://connect.getseam.com/openapi.json" path="/thermostats/update" method="post" %} +[https://connect.getseam.com/openapi.json](https://connect.getseam.com/openapi.json) +{% endswagger %} + +### Code Example + +{% tabs %} +{% tab title="Python" %} +```python +seam.thermostats.update( + device_id: "a83690b2-2b70-409a-9a94-426699b84c97", + default_climate_setting: { + "automatic_cooling_enabled": true, + "automatic_heating_enabled": true, + "cooling_set_point_fahrenheit": 70 + "heating_set_point_fahrenheit": 65 + } +) + +# +``` +{% endtab %} + +{% tab title="Javascript" %} +```javascript +await seam.thermostats.update({ + device_id: "a83690b2-2b70-409a-9a94-426699b84c97", + default_climate_setting: { + "automatic_heating_enabled": true, + "heating_set_point_fahrenheit": 70 + }, +}); + +//{} +``` +{% endtab %} +{% endtabs %} + +### Parameters + +| `device_id` | String |


Device ID

| +| ------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `default_climate_setting` | [Climate Setting object](../../thermostats/#climate-setting-properties) | Default [climate setting](../../thermostats/#climate-setting-properties) when no [climate setting schedules](../../thermostats/climate-setting-schedules/) are in place. | + +### Response + +This section shows the JSON response returned by the API. Since each language encapsulates this response inside objects specific to that language and/or implementation, the actual type in your language might differ from what’s written here. + +#### JSON format + +{% tabs %} +{% tab title="JSON" %} +```json +{ + "action_attempt": { + "status": "pending", + "action_type": "UPDATE_THERMOSTAT", + "action_attempt_id": "4a11bcaf-c930-41d8-85f0-be375c93096f", + "result": null, + "error": null + }, + "ok": true +} +``` +{% endtab %} +{% endtabs %} + +
status"success" | "error" | "pending"success determines a completed action performed on the device.
error determines an unsuccessful action performed on the device.
pending determines Seam is still trying to perform the action on the device
action_type"UPDATE_THERMOSTAT"Determines the type of action performed on the device
action_attempt_idStringID of the action attempt
resultStringresult only exists for the success status describing the event
errorObjecterror only exists for the error status describing the event. It is an object with type and message. Where type determines type of error and message describes the error
diff --git a/docs/api-clients/user-identities/README.md b/docs/api-clients/user_identities/README.md similarity index 100% rename from docs/api-clients/user-identities/README.md rename to docs/api-clients/user_identities/README.md diff --git a/docs/api-clients/user-identities/add-an-acs-user-to-a-user-identity.md b/docs/api-clients/user_identities/add_acs_user.md similarity index 100% rename from docs/api-clients/user-identities/add-an-acs-user-to-a-user-identity.md rename to docs/api-clients/user_identities/add_acs_user.md diff --git a/docs/api-clients/user-identities/create-a-user-identity.md b/docs/api-clients/user_identities/create.md similarity index 100% rename from docs/api-clients/user-identities/create-a-user-identity.md rename to docs/api-clients/user_identities/create.md diff --git a/docs/api-clients/user-identities/delete-a-user-identity.md b/docs/api-clients/user_identities/delete.md similarity index 85% rename from docs/api-clients/user-identities/delete-a-user-identity.md rename to docs/api-clients/user_identities/delete.md index 98b8ec0b..0105dbea 100644 --- a/docs/api-clients/user-identities/delete-a-user-identity.md +++ b/docs/api-clients/user_identities/delete.md @@ -4,7 +4,7 @@ description: Delete a specified user identity # Delete a User Identity -Deletes a specified [user identity](../../products/mobile-access-in-development/managing-mobile-app-user-accounts-with-user-identities.md#what-is-a-user-identity). To delete a user identity, you must first delete any [ACS credentials](../access-control-systems/credentials/delete-credential.md) and [enrollment automations](enrollment-automations/delete-an-enrollment-automation.md) associated with the user identity. You must also deactivate any associated phones. +Deletes a specified [user identity](../../products/mobile-access-in-development/managing-mobile-app-user-accounts-with-user-identities.md#what-is-a-user-identity). To delete a user identity, you must first delete any [ACS credentials](../acs/credentials/delete-credential.md) and [enrollment automations](enrollment-automations/delete-an-enrollment-automation.md) associated with the user identity. You must also deactivate any associated phones. {% swagger src="https://connect.getseam.com/openapi.json" path="/user_identities/delete" method="post" %} [https://connect.getseam.com/openapi.json](https://connect.getseam.com/openapi.json) diff --git a/docs/api-clients/user-identities/enrollment-automations/README.md b/docs/api-clients/user_identities/enrollment_automations/README.md similarity index 100% rename from docs/api-clients/user-identities/enrollment-automations/README.md rename to docs/api-clients/user_identities/enrollment_automations/README.md diff --git a/docs/api-clients/user-identities/enrollment-automations/delete-an-enrollment-automation.md b/docs/api-clients/user_identities/enrollment_automations/delete.md similarity index 100% rename from docs/api-clients/user-identities/enrollment-automations/delete-an-enrollment-automation.md rename to docs/api-clients/user_identities/enrollment_automations/delete.md diff --git a/docs/api-clients/user-identities/enrollment-automations/get-an-enrollment-automation.md b/docs/api-clients/user_identities/enrollment_automations/get.md similarity index 100% rename from docs/api-clients/user-identities/enrollment-automations/get-an-enrollment-automation.md rename to docs/api-clients/user_identities/enrollment_automations/get.md diff --git a/docs/api-clients/user-identities/enrollment-automations/launch-an-enrollment-automation.md b/docs/api-clients/user_identities/enrollment_automations/launch.md similarity index 100% rename from docs/api-clients/user-identities/enrollment-automations/launch-an-enrollment-automation.md rename to docs/api-clients/user_identities/enrollment_automations/launch.md diff --git a/docs/api-clients/user-identities/enrollment-automations/list-enrollment-automations.md b/docs/api-clients/user_identities/enrollment_automations/list.md similarity index 100% rename from docs/api-clients/user-identities/enrollment-automations/list-enrollment-automations.md rename to docs/api-clients/user_identities/enrollment_automations/list.md diff --git a/docs/api-clients/user-identities/get-a-user-identity.md b/docs/api-clients/user_identities/get.md similarity index 100% rename from docs/api-clients/user-identities/get-a-user-identity.md rename to docs/api-clients/user_identities/get.md diff --git a/docs/api-clients/user-identities/grant-a-user-identity-access-to-a-device.md b/docs/api-clients/user_identities/grant_access_to_device.md similarity index 100% rename from docs/api-clients/user-identities/grant-a-user-identity-access-to-a-device.md rename to docs/api-clients/user_identities/grant_access_to_device.md diff --git a/docs/api-clients/user-identities/list-user-identities.md b/docs/api-clients/user_identities/list.md similarity index 100% rename from docs/api-clients/user-identities/list-user-identities.md rename to docs/api-clients/user_identities/list.md diff --git a/docs/api-clients/user-identities/list-accessible-devices-for-a-user-identity.md b/docs/api-clients/user_identities/list_accessible_devices.md similarity index 100% rename from docs/api-clients/user-identities/list-accessible-devices-for-a-user-identity.md rename to docs/api-clients/user_identities/list_accessible_devices.md diff --git a/docs/api-clients/user-identities/list-acs-systems-associated-with-a-user-identity.md b/docs/api-clients/user_identities/list_acs_systems.md similarity index 100% rename from docs/api-clients/user-identities/list-acs-systems-associated-with-a-user-identity.md rename to docs/api-clients/user_identities/list_acs_systems.md diff --git a/docs/api-clients/user-identities/list-acs-users-associated-with-a-user-identity.md b/docs/api-clients/user_identities/list_acs_users.md similarity index 100% rename from docs/api-clients/user-identities/list-acs-users-associated-with-a-user-identity.md rename to docs/api-clients/user_identities/list_acs_users.md diff --git a/docs/api-clients/user-identities/remove-an-acs-user-from-a-user-identity.md b/docs/api-clients/user_identities/remove_acs_user.md similarity index 100% rename from docs/api-clients/user-identities/remove-an-acs-user-from-a-user-identity.md rename to docs/api-clients/user_identities/remove_acs_user.md diff --git a/docs/api-clients/user-identities/revoke-access-to-a-device-from-a-user-identity.md b/docs/api-clients/user_identities/revoke_access_to_device.md similarity index 100% rename from docs/api-clients/user-identities/revoke-access-to-a-device-from-a-user-identity.md rename to docs/api-clients/user_identities/revoke_access_to_device.md diff --git a/docs/api-clients/workspaces/get-workspace.md b/docs/api-clients/workspaces/get.md similarity index 100% rename from docs/api-clients/workspaces/get-workspace.md rename to docs/api-clients/workspaces/get.md diff --git a/docs/api-clients/workspaces/reset-workspace.md b/docs/api-clients/workspaces/reset_sandbox.md similarity index 100% rename from docs/api-clients/workspaces/reset-workspace.md rename to docs/api-clients/workspaces/reset_sandbox.md diff --git a/generated-docs/api/README.md b/docs/api/README.md similarity index 100% rename from generated-docs/api/README.md rename to docs/api/README.md diff --git a/docs/api/acs/systems/list.md b/docs/api/acs/systems/list.md new file mode 100644 index 00000000..cd291245 --- /dev/null +++ b/docs/api/acs/systems/list.md @@ -0,0 +1,93 @@ +# List ACS Systems + +Returns a list of all [access control systems](../../../capability-guides/access-systems.md). + +To filter the list of returned access control systems by a specific connected account ID, include the +`connected_account_id` in the request body. If you omit the `connected_account_id` parameter, the +response includes all access control systems connected to your workspace. + + +### Request Parameters + +**connected_account_id** +*Type:* `` +*Required:* No + +ID of the connected account by which to filter the list of returned access control systems. + +### Response Properties + +**acs_system_id** +ID of the `acs_system`. +**can_add_acs_users_to_acs_access_groups** +Indicates whether the `acs_system` supports [adding users to access groups](../../../capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group.md). See also [Access Group-based Access Control Systems](../../../capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems.md). +**can_automate_enrollment** +Indicates whether it is possible to [launch enrollment automations](../../../capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#prepare-the-phones-for-a-user-identity-to-start-receiving-mobile-credentials-using-an-enrollment-aut.md) for the `acs_system`. +**can_create_acs_access_groups** +Indicates whether the `acs_system` supports creating [access groups](../../../capability-guides/access-systems/assigning-users-to-access-groups.md). See also [Access Group-based Access Control Systems](../../../capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems.md). +**can_remove_acs_users_from_acs_access_groups** +Indicates whether the `acs_system` supports [removing users from access groups](../../../capability-guides/access-systems/assigning-users-to-access-groups#remove-an-acs-user-from-an-access-group.md). See also [Access Group-based Access Control Systems](../../../capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems.md). +**connected_account_ids** +IDs of the [connected accounts](../../../core-concepts/connected-accounts.md) associated with the `acs_system`. +**created_at** +Date and time at which the `acs_system` was created. +**errors** +Errors associated with the `acs_system`. +**external_type** +Brand-specific terminology for the `acs_system` type. +**external_type_display_name** +Display name that corresponds to the brand-specific terminology for the `acs_system` type. +**image_alt_text** +Alternative text for the `acs_system` image. +**image_url** +URL for the image that represents the `acs_system`. +**name** +Name of the `acs_system`. +**system_type** + +**system_type_display_name** + +**visionline_metadata** + +**warnings** + +**workspace_id** +ID of the [workspace](../../../core-concepts/workspaces.md) that contains the `acs_system`. + +## Samples + +{% tabs %} + {% tab title="JavaScript" %} + ### Request + ```javascript + await seam.acs.systems.list({"connected_account_id":"8d7e0b3a-b889-49a7-9164-4b71a0506a33"}) + ``` + + ### Response + ```javascript + [{"acs_system_id":"8d7e0b3a-b889-49a7-9164-4b71a0506a33"}] + ``` + {% endtab %} + {% tab title="Python" %} + ### Request + ```python + seam.acs.systems.list(connected_account_id="8d7e0b3a-b889-49a7-9164-4b71a0506a33") + ``` + + ### Response + ```python + AcsSystems(0={"acs_system_id":"8d7e0b3a-b889-49a7-9164-4b71a0506a33"}) + ``` + {% endtab %} + {% tab title="PHP" %} + ### Request + ```php + $seam->acs->systems->list(connected_account_id:"8d7e0b3a-b889-49a7-9164-4b71a0506a33") + ``` + + ### Response + ```php + [{"acs_system_id":"8d7e0b3a-b889-49a7-9164-4b71a0506a33"}] + ``` + {% endtab %} +{% endtabs %} diff --git a/docs/capability-guides/access-systems/assigning-credentials-to-users.md b/docs/capability-guides/access-systems/assigning-credentials-to-users.md index dbbf15fc..34968035 100644 --- a/docs/capability-guides/access-systems/assigning-credentials-to-users.md +++ b/docs/capability-guides/access-systems/assigning-credentials-to-users.md @@ -12,7 +12,7 @@ This guide explains how to assign existing [credentials](managing-credentials.md ## Assign a Credential to an ACS User -To [assign a credential to an ACS user](../../api-clients/access-control-systems/credentials/assign-a-credential-to-a-user.md), provide both the `acs_user_id` and the `acs_credential_id`. +To [assign a credential to an ACS user](../../api-clients/acs/credentials/assign-a-credential-to-a-user.md), provide both the `acs_user_id` and the `acs_credential_id`. {% tabs %} {% tab title="Python" %} @@ -252,7 +252,7 @@ This response contains manufacturer-specific metadata that may vary by [manufact ## Unassign a Credential from an ACS User -To [unassign a credential from an ACS user](../../api-clients/access-control-systems/credentials/unassign-a-credential-from-a-user.md), provide both the `acs_user_id` and the `acs_credential_id`. +To [unassign a credential from an ACS user](../../api-clients/acs/credentials/unassign-a-credential-from-a-user.md), provide both the `acs_user_id` and the `acs_credential_id`. {% tabs %} {% tab title="Python" %} diff --git a/docs/capability-guides/access-systems/managing-credentials.md b/docs/capability-guides/access-systems/managing-credentials.md index be07953f..0e37f07c 100644 --- a/docs/capability-guides/access-systems/managing-credentials.md +++ b/docs/capability-guides/access-systems/managing-credentials.md @@ -18,7 +18,7 @@ You can assign a credential to an ACS user when you create the credential. You c ## Create a Credential for an ACS User -To [create a credential for an ACS user](../../api-clients/access-control-systems/credentials/create-credential-for-user.md), provide the `acs_user_id` and the desired `access_method`. Seam supports the following access methods: +To [create a credential for an ACS user](../../api-clients/acs/credentials/create-credential-for-user.md), provide the `acs_user_id` and the desired `access_method`. Seam supports the following access methods: * `code` for a PIN code-based credential * `card` for a key card-based credential @@ -714,7 +714,7 @@ This response contains manufacturer-specific metadata that may vary by [manufact ## Delete a Credential -To [delete a credential](../../api-clients/access-control-systems/credentials/delete-credential.md), provide the `acs_credential_id`. +To [delete a credential](../../api-clients/acs/credentials/delete-credential.md), provide the `acs_credential_id`. {% tabs %} {% tab title="Python" %} diff --git a/docs/capability-guides/access-systems/managing-credentials/listing-credentials-and-associated-entrances.md b/docs/capability-guides/access-systems/managing-credentials/listing-credentials-and-associated-entrances.md index 1e882428..3a7f8dc7 100644 --- a/docs/capability-guides/access-systems/managing-credentials/listing-credentials-and-associated-entrances.md +++ b/docs/capability-guides/access-systems/managing-credentials/listing-credentials-and-associated-entrances.md @@ -10,7 +10,7 @@ Once you have [created credentials](../managing-credentials.md), you can retriev ## List Entrances Associated with a Credential -To [list the entrances to which a specific credential grants access](../../../api-clients/access-control-systems/credentials/list-accessible-entrances.md), use `list_accessible_entrances` and provide the `acs_credential_id`. +To [list the entrances to which a specific credential grants access](../../../api-clients/acs/credentials/list-accessible-entrances.md), use `list_accessible_entrances` and provide the `acs_credential_id`. {% tabs %} {% tab title="Python" %} diff --git a/docs/capability-guides/access-systems/retrieving-acs-system-details.md b/docs/capability-guides/access-systems/retrieving-acs-system-details.md index 8db10b3e..59b536fe 100644 --- a/docs/capability-guides/access-systems/retrieving-acs-system-details.md +++ b/docs/capability-guides/access-systems/retrieving-acs-system-details.md @@ -4,13 +4,13 @@ description: Learn how to list and get information about your ACS systems. # Retrieving ACS System Details -You can list details for all the ACSs in your [workspace](../../core-concepts/workspaces/) or get these details for a specific ACS. Note that Seam represents the ACS as an [`acs_system`](../../api-clients/access-control-systems/systems/) resource. When you want to [create ACS users](../../products/access-systems/user-management.md#create-a-user) for your ACS, you must first obtain the ID of the `acs_system` for which you want to create these users. +You can list details for all the ACSs in your [workspace](../../core-concepts/workspaces/) or get these details for a specific ACS. Note that Seam represents the ACS as an [`acs_system`](../../api-clients/acs/systems/) resource. When you want to [create ACS users](../../products/access-systems/user-management.md#create-a-user) for your ACS, you must first obtain the ID of the `acs_system` for which you want to create these users. *** ## List ACS Systems -You can [list all `acs_system` resources](../../api-clients/access-control-systems/systems/list-systems.md) in your workspace. Note the `acs_system_id` in the response. +You can [list all `acs_system` resources](../../api-clients/acs/systems/list-systems.md) in your workspace. Note the `acs_system_id` in the response. {% tabs %} {% tab title="Python" %} @@ -184,7 +184,7 @@ acs_systems, uErr := client.Acs.Systems.List( ## Get an ACS System -You can [get the details of a specific `acs_system`](../../api-clients/access-control-systems/systems/get-system.md) in your workspace. These details include the `acs_system_id`, date and time at which the `acs_system` was created in Seam, the name and type of the `acs_system`, and so on. +You can [get the details of a specific `acs_system`](../../api-clients/acs/systems/get-system.md) in your workspace. These details include the `acs_system_id`, date and time at which the `acs_system` was created in Seam, the name and type of the `acs_system`, and so on. {% tabs %} {% tab title="Python" %} diff --git a/docs/capability-guides/access-systems/retrieving-entrance-details.md b/docs/capability-guides/access-systems/retrieving-entrance-details.md index c7eb1619..711abacb 100644 --- a/docs/capability-guides/access-systems/retrieving-entrance-details.md +++ b/docs/capability-guides/access-systems/retrieving-entrance-details.md @@ -12,7 +12,7 @@ In an ACS, an entrance is a secured door, gate, zone, or other method of entry. ## List All Entrances -You can [list all `acs_entrance` resources](../../api-clients/access-control-systems/entrances/list-entrances.md) in your workspace. Note that entrance details include manufacturer-specific metadata that may vary by [manufacturer](../../device-and-system-integration-guides/overview.md#access-control-systems). +You can [list all `acs_entrance` resources](../../api-clients/acs/entrances/list-entrances.md) in your workspace. Note that entrance details include manufacturer-specific metadata that may vary by [manufacturer](../../device-and-system-integration-guides/overview.md#access-control-systems). {% tabs %} {% tab title="Python" %} @@ -202,7 +202,7 @@ acs_entrances, uErr := client.Acs.Entrances.List( ## List Entrances in an ACS -To list all `acs_entrance`s in a specific ACS, include the `acs_system_id` filter in the [List Entrances](../../api-clients/access-control-systems/entrances/list-entrances.md) request. Note that entrance details include manufacturer-specific metadata that may vary by [manufacturer](../../device-and-system-integration-guides/overview.md#access-control-systems). +To list all `acs_entrance`s in a specific ACS, include the `acs_system_id` filter in the [List Entrances](../../api-clients/acs/entrances/list-entrances.md) request. Note that entrance details include manufacturer-specific metadata that may vary by [manufacturer](../../device-and-system-integration-guides/overview.md#access-control-systems). {% tabs %} {% tab title="Python" %} @@ -400,7 +400,7 @@ acs_entrances, uErr := client.Acs.Entrances.List( ## List Credentials Associated with an Entrance -To [list the credentials that grant access to a specific entrance](../../api-clients/access-control-systems/entrances/list-credentials-with-access-to-an-entrance.md), use `list_credentials_with_access` method for the `acs_entrance` object and provide the `acs_entrance_id`. +To [list the credentials that grant access to a specific entrance](../../api-clients/acs/entrances/list-credentials-with-access-to-an-entrance.md), use `list_credentials_with_access` method for the `acs_entrance` object and provide the `acs_entrance_id`. {% tabs %} {% tab title="Python" %} @@ -634,13 +634,13 @@ This response contains manufacturer-specific metadata that may vary by [manufact ## List Entrances Associated with a Credential -To [list the entrances to which a specific credential grants access](../../api-clients/access-control-systems/credentials/list-accessible-entrances.md), use `list_accessible_entrances` method for the `acs_credential` object and provide the `acs_credential_id`. For details, see [Managing Credentials](managing-credentials.md#list-entrances-associated-with-a-credential). +To [list the entrances to which a specific credential grants access](../../api-clients/acs/credentials/list-accessible-entrances.md), use `list_accessible_entrances` method for the `acs_credential` object and provide the `acs_credential_id`. For details, see [Managing Credentials](managing-credentials.md#list-entrances-associated-with-a-credential). *** ## Get an Entrance -You can [get the details of a specific `acs_entrance`](../../api-clients/access-control-systems/entrances/get-an-entrance.md). Note that entrance details include manufacturer-specific metadata that may vary by [manufacturer](../../device-and-system-integration-guides/overview.md#access-control-systems). +You can [get the details of a specific `acs_entrance`](../../api-clients/acs/entrances/get-an-entrance.md). Note that entrance details include manufacturer-specific metadata that may vary by [manufacturer](../../device-and-system-integration-guides/overview.md#access-control-systems). {% tabs %} {% tab title="Python" %} diff --git a/docs/capability-guides/access-systems/understanding-access-control-system-differences.md b/docs/capability-guides/access-systems/understanding-access-control-system-differences.md index e342c720..b46ba09f 100644 --- a/docs/capability-guides/access-systems/understanding-access-control-system-differences.md +++ b/docs/capability-guides/access-systems/understanding-access-control-system-differences.md @@ -54,18 +54,18 @@ The following process describes the configuration steps for your application to Depending on the access method and specific ACS, your application can also configure additional credential properties. For more information about manufacturer-specific variations, see the [system integration guide](../../device-and-system-integration-guides/overview.md#access-control-systems) for your ACS. -You can also perform other management actions, as needed, such as [adding ACS users to](../../products/access-systems/assigning-users-to-access-groups.md#add-an-acs-user-to-an-access-group) and [removing ACS users from access groups](../../products/access-systems/assigning-users-to-access-groups.md#remove-an-acs-user-from-an-access-group), [assigning](assigning-credentials-to-users.md#assign-a-credential-to-a-user) and [unassigning](assigning-credentials-to-users.md#unassign-a-credential-from-a-user) existing credentials, [suspending](../../products/access-systems/suspending-and-unsuspending-users.md#suspend-an-acs-user) and [unsuspending](../../products/access-systems/suspending-and-unsuspending-users.md#unsuspend-an-acs-user) ACS users, [updating ACS users](../../products/access-systems/user-management.md#update-a-user) and [credentials](../../api-clients/access-control-systems/credentials/update-a-credential.md), and [deleting ACS users](../../products/access-systems/user-management.md#delete-a-user) and [credentials](managing-credentials.md#delete-a-credential). +You can also perform other management actions, as needed, such as [adding ACS users to](../../products/access-systems/assigning-users-to-access-groups.md#add-an-acs-user-to-an-access-group) and [removing ACS users from access groups](../../products/access-systems/assigning-users-to-access-groups.md#remove-an-acs-user-from-an-access-group), [assigning](assigning-credentials-to-users.md#assign-a-credential-to-a-user) and [unassigning](assigning-credentials-to-users.md#unassign-a-credential-from-a-user) existing credentials, [suspending](../../products/access-systems/suspending-and-unsuspending-users.md#suspend-an-acs-user) and [unsuspending](../../products/access-systems/suspending-and-unsuspending-users.md#unsuspend-an-acs-user) ACS users, [updating ACS users](../../products/access-systems/user-management.md#update-a-user) and [credentials](../../api-clients/acs/credentials/update-a-credential.md), and [deleting ACS users](../../products/access-systems/user-management.md#delete-a-user) and [credentials](managing-credentials.md#delete-a-credential). ### Credential-based Access Control Systems -In a credential-based ACS, the [`acs_credential`](../../api-clients/access-control-systems/credentials/) resource contains the list of entrances to which the credential grants access. The `acs_credential` also contains the schedule that specifies when this access is valid. You specify each schedule by configuring a `starts_at` and `ends_at` date and time. +In a credential-based ACS, the [`acs_credential`](../../api-clients/acs/credentials/) resource contains the list of entrances to which the credential grants access. The `acs_credential` also contains the schedule that specifies when this access is valid. You specify each schedule by configuring a `starts_at` and `ends_at` date and time.
Seam resource relationships for a credential-based ACS

Seam resource relationships for a credential-based ACS

The following process describes the configuration steps for your application to grant access in a credential-based ACS: -1. When the ACS connects to Seam, Seam automatically creates the [`acs_system`](../../api-clients/access-control-systems/systems/). Seam also syncs the entrances from the connected ACS as `acs_entrance` resources. Note that because Seam automatically syncs these entrance resources from the ACS, you cannot create, edit, or delete them using the Seam API. -2. Your application [creates](../../products/access-systems/user-management.md#create-a-user) an [`acs_user`](../../api-clients/access-control-systems/users/) for each user within this ACS. Each `acs_user` is configured with a set of attributes, such their name, email address, and phone number, as applicable.\ +1. When the ACS connects to Seam, Seam automatically creates the [`acs_system`](../../api-clients/acs/systems/). Seam also syncs the entrances from the connected ACS as `acs_entrance` resources. Note that because Seam automatically syncs these entrance resources from the ACS, you cannot create, edit, or delete them using the Seam API. +2. Your application [creates](../../products/access-systems/user-management.md#create-a-user) an [`acs_user`](../../api-clients/acs/users/) for each user within this ACS. Each `acs_user` is configured with a set of attributes, such their name, email address, and phone number, as applicable.\ If you need to grant a single application user access to multiple ACSs—for example, if an application user needs access to multiple buildings, each of which uses a separate ACS—you can use Seam [user identities](../../api-clients/user-identities/) to link `acs_user`s in different `acs_system`s. 3. Your application [creates](managing-credentials.md#create-a-credential-for-a-user) `acs_credential`s with the following attributes: @@ -76,7 +76,7 @@ The following process describes the configuration steps for your application to Depending on the access method and specific ACS, your application can also configure additional credential properties. For more information about manufacturer-specific variations, see the [system integration guide](../../device-and-system-integration-guides/overview.md#access-control-systems) for your ACS. -You can also perform other management actions, as needed, such as [assigning](assigning-credentials-to-users.md#assign-a-credential-to-a-user) and [unassigning](assigning-credentials-to-users.md#unassign-a-credential-from-a-user) existing credentials, [suspending](../../products/access-systems/suspending-and-unsuspending-users.md#suspend-an-acs-user) and [unsuspending](../../products/access-systems/suspending-and-unsuspending-users.md#unsuspend-an-acs-user) ACS users, [updating ACS users](../../products/access-systems/user-management.md#update-a-user) and [credentials](../../api-clients/access-control-systems/credentials/update-a-credential.md), and [deleting ACS users](../../products/access-systems/user-management.md#delete-a-user) and [credentials](managing-credentials.md#delete-a-credential). +You can also perform other management actions, as needed, such as [assigning](assigning-credentials-to-users.md#assign-a-credential-to-a-user) and [unassigning](assigning-credentials-to-users.md#unassign-a-credential-from-a-user) existing credentials, [suspending](../../products/access-systems/suspending-and-unsuspending-users.md#suspend-an-acs-user) and [unsuspending](../../products/access-systems/suspending-and-unsuspending-users.md#unsuspend-an-acs-user) ACS users, [updating ACS users](../../products/access-systems/user-management.md#update-a-user) and [credentials](../../api-clients/acs/credentials/update-a-credential.md), and [deleting ACS users](../../products/access-systems/user-management.md#delete-a-user) and [credentials](managing-credentials.md#delete-a-credential). *** diff --git a/docs/device-and-system-integration-guides/latch-access-control-system/README.md b/docs/device-and-system-integration-guides/latch-access-control-system/README.md index 86cf1e62..bdf37632 100644 --- a/docs/device-and-system-integration-guides/latch-access-control-system/README.md +++ b/docs/device-and-system-integration-guides/latch-access-control-system/README.md @@ -26,7 +26,7 @@ The following diagram shows the Seam resources for a Latch ACS and the relations The following table provides a brief description of each of the Seam resources for the Latch ACS: -
Seam ResourceDescription
acs_userIndividual who has been granted access to specific entrance within a building. A user could be a resident or temporary guest.
acs_entrancePhysical points of entry within a property that are secured with Latch's smart access devices.
acs_credentialPIN codes or mobile keys. You can only assign one entrance to a key code-based credential. You can assign multiple entrances to mobile keys.
+
Seam ResourceDescription
acs_userIndividual who has been granted access to specific entrance within a building. A user could be a resident or temporary guest.
acs_entrancePhysical points of entry within a property that are secured with Latch's smart access devices.
acs_credentialPIN codes or mobile keys. You can only assign one entrance to a key code-based credential. You can assign multiple entrances to mobile keys.
For more information about managing your Latch ACS through Seam, see [Credential-based Access Control Systems](../../capability-guides/access-systems/understanding-access-control-system-differences.md#credential-based-access-control-systems) and [Access Control Systems](../../products/access-systems/). diff --git a/docs/device-and-system-integration-guides/latch-access-control-system/programming-code-based-latch-credentials.md b/docs/device-and-system-integration-guides/latch-access-control-system/programming-code-based-latch-credentials.md index 85de06b5..45da8d58 100644 --- a/docs/device-and-system-integration-guides/latch-access-control-system/programming-code-based-latch-credentials.md +++ b/docs/device-and-system-integration-guides/latch-access-control-system/programming-code-based-latch-credentials.md @@ -33,7 +33,7 @@ The following example walks you through this process: # Step 1: # Create the new user on the Latch ACS. # jane_user is a user_identity that represents -# a user within your set of app users. +# a user within your set of app users. building_a_resident = seam.acs.users.create( acs_system_id="11111111-1111-1111-1111-111111111111", user_identity_id=jane_user.user_identity_id, @@ -54,7 +54,7 @@ for entrance in entrances: starts_at="2024-07-13T16:50:42.072Z", ends_at="2024-07-18T16:50:42.072Z" ) - + pprint(credential) # View the list of entrances to which the credential @@ -94,7 +94,7 @@ AcsCredential( # Step 1: # Create the new user on the Latch ACS. # jane_user is a user_identity that represents -# a user within your set of app users. +# a user within your set of app users. building_a_resident=$(curl -X 'POST' \ 'https://connect.getseam.com/acs/users/create' \ -H 'accept: application/json' \ @@ -126,10 +126,10 @@ do \"starts_at\": \"2024-07-13T16:50:42.072Z\", \"ends_at\": \"2024-07-18T16:50:42.072Z\" }"); - + echo $credential; - - # It is also useful to list the entrances + + # It is also useful to list the entrances # to which the mobile key grants access. # Use GET or POST. curl -X 'GET' \ @@ -203,8 +203,8 @@ for (const entrance of entrances) { }); console.log(credential); - - // It is also useful to list the entrances + + // It is also useful to list the entrances // to which the mobile key grants access. await seam.acs.credentials.listAccessibleEntrances({ acs_credential_id: credential.acs_credential_id @@ -222,7 +222,7 @@ for (const entrance of entrances) { access_method: 'code', starts_at: '2024-07-13T16:50:42.072Z', ends_at: '2024-07-18T16:50:42.072Z', - ... + ... } [ { @@ -279,8 +279,8 @@ foreach ($entrances as $entrance) { ); echo json_encode($credential, JSON_PRETTY_PRINT); - - // It is also useful to list the entrances + + // It is also useful to list the entrances // to which the mobile key grants access. $seam->acs->credentials->list_accessible_entrances( acs_credential_id: $credential->acs_credential_id @@ -341,10 +341,10 @@ foreach (AcsEntrance entrance in entrances) startsAt: "2024-07-13T16:50:42Z", endsAt: "2024-07-18T16:50:42Z" ); - + Console.WriteLine(credential); - - // It is also useful to list the entrances + + // It is also useful to list the entrances // to which the mobile key grants access. seam.CredentialsAcs.ListAccessibleEntrances( acsCredentialId: credential.acsCredentialId @@ -433,8 +433,8 @@ for _, entrance := range entrances { }; fmt.Println(credential); - - // It is also useful to list the entrances + + // It is also useful to list the entrances // to which the mobile key grants access. acs_entrances, uErr := client.Acs.Credentials.ListAccessibleEntrances( context.Background(), &acs.CredentialsListAccessibleEntrancesRequest{ @@ -482,6 +482,6 @@ To learn more about using the Seam API with your Latch ACS, see the following to * [Managing ACS Users](../../products/access-systems/user-management.md) * [Managing Credentials](../../capability-guides/access-systems/managing-credentials.md) * [Mobile Access](../../products/mobile-access-in-development/) -* [Access Control Systems](../../api-clients/access-control-systems/) in the Seam API reference +* [Access Control Systems](../../api-clients/acs/) in the Seam API reference * [User Identities](../../api-clients/user-identities/) in the Seam API reference diff --git a/docs/device-and-system-integration-guides/latch-access-control-system/programming-latch-acs-mobile-credentials.md b/docs/device-and-system-integration-guides/latch-access-control-system/programming-latch-acs-mobile-credentials.md index bc901612..a1b8b6d0 100644 --- a/docs/device-and-system-integration-guides/latch-access-control-system/programming-latch-acs-mobile-credentials.md +++ b/docs/device-and-system-integration-guides/latch-access-control-system/programming-latch-acs-mobile-credentials.md @@ -56,7 +56,7 @@ latch_credential_manager = seam.acs.systems.list_compatible_credential_manager_a # Set up an enrollment automation for the user identity, to enable mobile keys. seam.user_identities.enrollment_automations.launch( user_identity_id=jane_user.user_identity_id, - create_credential_manager_user=True, + create_credential_manager_user=True, credential_manager_acs_system_id=latch_credential_manager.acs_system_id ) @@ -64,18 +64,18 @@ seam.user_identities.enrollment_automations.launch( # Create an ACS user on the Latch ACS # or assign the ACS user to the user identity. building_a_resident = seam.acs.users.create( - # To associate the ACS user with a user identity, + # To associate the ACS user with a user identity, # include the user_identity_id. - # Resources that you create for this ACS user + # Resources that you create for this ACS user # are available under the associated user identity. user_identity_id=jane_user.user_identity_id, acs_system_id=building_a.acs_system_id, full_name="Jane Doe", - email_address="jane@example.com" + email_address="jane@example.com" ) # Step 5: -# Create a mobile key for the entrances to which +# Create a mobile key for the entrances to which # you want to grant the ACS user access. mobile_key = seam.acs.credentials.create( acs_user_id=building_a_resident.acs_user_id, @@ -89,10 +89,10 @@ mobile_key = seam.acs.credentials.create( starts_at="2024-07-13T16:50:42.072Z", ends_at="2024-07-18T16:50:42.072Z" ) - + pprint(mobile_key) -# It is also useful to list the entrances +# It is also useful to list the entrances # to which the mobile key grants access. seam.acs.credentials.list_accessible_entrances( acs_credential_id=mobile_key.acs_credential_id @@ -160,7 +160,7 @@ curl -X 'POST' \ -H 'Content-Type: application/json' \ -d "{ \"user_identity_id\": \"$(jq -r '.user_identity.user_identity_id' <<< ${jane_user})\", - \"create_credential_manager_user\": true, + \"create_credential_manager_user\": true, \"credential_manager_acs_system_id\": \"$(jq -r '.acs_system_id' <<< ${latch_credential_manager})\" }" @@ -168,9 +168,9 @@ curl -X 'POST' \ # Create an ACS user on the Latch ACS # or assign the ACS user to the user identity. -# To associate the ACS user with a user identity, +# To associate the ACS user with a user identity, # include the user_identity_id. -# Resources that you create for this ACS user +# Resources that you create for this ACS user # are available under the associated user identity. building_a_resident=$(curl -X 'POST' \ 'https://connect.getseam.com/acs/users/create' \ @@ -185,7 +185,7 @@ building_a_resident=$(curl -X 'POST' \ }") # Step 5: -# Create a mobile key for the entrances to which +# Create a mobile key for the entrances to which # you want to grant the ACS user access. # You can include multiple entrances per mobile key. mobile_key=$(curl -X 'POST' \ @@ -207,7 +207,7 @@ mobile_key=$(curl -X 'POST' \ echo $mobile_key; -# It is also useful to list the entrances +# It is also useful to list the entrances # to which the mobile key grants access. # Use GET or POST. curl -X 'GET' \ @@ -274,7 +274,7 @@ const latchCredentialManager = (await seam.acs.systems // Set up an enrollment automation for the user identity, to enable mobile keys. await seam.userIdentities.enrollmentAutomations.launch({ user_identity_id: janeUser.user_identity_id, - create_credential_manager_user: true, + create_credential_manager_user: true, credential_manager_acs_system_id: latchCredentialManager.acs_system_id }); @@ -282,9 +282,9 @@ await seam.userIdentities.enrollmentAutomations.launch({ // Create an ACS user on the Latch ACS // or assign the ACS user to the user identity. const buildingAResident = await seam.acs.users.create({ - // To associate the ACS user with a user identity, + // To associate the ACS user with a user identity, // include the user_identity_id. - // Resources that you create for this ACS user + // Resources that you create for this ACS user // are available under the associated user identity. user_identity_id: janeUser.user_identity_id, acs_system_id: buildingA.acs_system_id, @@ -293,7 +293,7 @@ const buildingAResident = await seam.acs.users.create({ }); // Step 5: -// Create a mobile key for the entrances to which +// Create a mobile key for the entrances to which // you want to grant the ACS user access. const mobileKey = await seam.acs.credentials.create({ acs_user_id: buildingAResident.acs_user_id, @@ -309,7 +309,7 @@ const mobileKey = await seam.acs.credentials.create({ console.log(mobileKey); -// It is also useful to list the entrances +// It is also useful to list the entrances // to which the mobile key grants access. await seam.acs.credentials.listAccessibleEntrances({ acs_credential_id: mobileKey.acs_credential_id @@ -326,7 +326,7 @@ await seam.acs.credentials.listAccessibleEntrances({ access_method: 'mobile_Key', starts_at: '2024-07-13T16:50:42.072Z', ends_at: '2024-07-18T16:50:42.072Z', - ... + ... } [ { @@ -377,7 +377,7 @@ $latch_credential_manager = $seam->acs->systems->list_compatible_credential_mana // Set up an enrollment automation for the user identity, to enable mobile keys. $seam->user_identities->enrollment_automations->launch( user_identity_id: $jane_user->user_identity_id, - create_credential_manager_user: true, + create_credential_manager_user: true, credential_manager_acs_system_id: $latch_credential_manager->acs_system_id ); @@ -385,9 +385,9 @@ $seam->user_identities->enrollment_automations->launch( // Create an ACS user on the Latch ACS // or assign the ACS user to the user identity. $building_a_resident = $seam->acs->users->create( - // To associate the ACS user with a user identity, + // To associate the ACS user with a user identity, // include the user_identity_id. - // Resources that you create for this ACS user + // Resources that you create for this ACS user // are available under the associated user identity. user_identity_id: $jane_user->user_identity_id, acs_system_id: $building_a->acs_system_id, @@ -396,7 +396,7 @@ $building_a_resident = $seam->acs->users->create( ); // Step 5: -// Create a mobile key for the entrances to which +// Create a mobile key for the entrances to which // you want to grant the ACS user access. $mobile_key = $seam->acs->credentials->create( @@ -414,7 +414,7 @@ $mobile_key = $seam->acs->credentials->create( echo json_encode($mobile_key, JSON_PRETTY_PRINT); -// It is also useful to list the entrances +// It is also useful to list the entrances // to which the mobile key grants access. $seam->acs->credentials->list_accessible_entrances( acs_credential_id: $mobile_key->acs_credential_id @@ -476,9 +476,9 @@ seam.UserIdentities.EnrollmentAutomations.Launch( // Create an ACS user on the Latch ACS // or assign the ACS user to the user identity. AcsUser buildingAResident = seam.UsersAcs.Create( - // To associate the ACS user with a user identity, + // To associate the ACS user with a user identity, // include the userIdentityId. - // Resources that you create for this ACS user + // Resources that you create for this ACS user // are available under the associated user identity. userIdentityId: janeUser.userIdentityId, acsSystemId: buildingA.acsSystemId, @@ -487,7 +487,7 @@ AcsUser buildingAResident = seam.UsersAcs.Create( ); // Step 5: -// Create a mobile key for the entrances to which +// Create a mobile key for the entrances to which // you want to grant the ACS user access. AcsCredential mobileKey = seam.CredentialsAcs.Create( acsUserId: buildingAResident.acsUserId, @@ -505,7 +505,7 @@ AcsCredential mobileKey = seam.CredentialsAcs.Create( Console.WriteLine(mobileKey); -// It is also useful to list the entrances +// It is also useful to list the entrances // to which the mobile key grants access. seam.CredentialsAcs.ListAccessibleEntrances( acsCredentialId: mobileKey.acsCredentialId @@ -592,9 +592,9 @@ client.UserIdentities.EnrollmentAutomations.Launch( // or assign the ACS user to the user identity. building_a_resident, err := client.Acs.Users.Create( context.Background(), &acs.UsersCreateRequest{ - // To associate the ACS user with a user identity, + // To associate the ACS user with a user identity, // include the UserIdentityId. - // Resources that you create for this ACS user + // Resources that you create for this ACS user // are available under the associated user identity. UserIdentityId: api.String(jane_user.UserIdentityId), AcsSystemId: building_a.AcsSystemId, @@ -613,7 +613,7 @@ if err != nil { } // Step 5: -// Create a mobile key for the entrances to which +// Create a mobile key for the entrances to which // you want to grant the ACS user access. mobile_key, err := client.Acs.Credentials.Create( context.Background(), &acs.CredentialsCreateRequest{ @@ -634,7 +634,7 @@ if err != nil { fmt.Println(mobile_key) -// It is also useful to list the entrances +// It is also useful to list the entrances // to which the mobile key grants access. acs_entrances, uErr := client.Acs.Credentials.ListAccessibleEntrances( context.Background(), &acs.CredentialsListAccessibleEntrancesRequest{ @@ -684,5 +684,5 @@ To learn more about using the Seam API with your Latch ACS, see the following to * [Managing ACS Users](../../products/access-systems/user-management.md) * [Managing Credentials](../../capability-guides/access-systems/managing-credentials.md) * [Mobile Access](../../products/mobile-access-in-development/) -* [Access Control Systems](../../api-clients/access-control-systems/) in the Seam API reference +* [Access Control Systems](../../api-clients/acs/) in the Seam API reference * [User Identities](../../api-clients/user-identities/) in the Seam API reference diff --git a/docs/products/access-systems/README.md b/docs/products/access-systems/README.md index b6af4d4d..8dac6608 100644 --- a/docs/products/access-systems/README.md +++ b/docs/products/access-systems/README.md @@ -45,7 +45,7 @@ The following diagram shows an example of one ACS, including the ACS resources a The following table provides a brief description of each of the Seam ACS resources: -
ACS ResourceDescription
acs_systemThe top-level object. Represents one or more buildings, residential locations, or other sites that you manage using this ACS.
For more information, see Retrieving ACS System Details.
acs_userThe set of users who access the entrances.
For more information, see Managing ACS Users.
acs_access_groupSome ACSs use access groups as an efficient way to grant sets of scheduled entrance access to one or more users.
For more information, see Assigning ACS Users to Access Groups.
acs_credentialA digital means that authorizes a user to access one or more entrances at specific days and times. Examples of credentials include RFID cards, mobile keys, and PIN codes.
For more information, see Managing Credentials.
acs_entranceThe set of entrances, doors, or zones that you want to manage. You identify each entrance by the corresponding lock object.
For more information, see Retrieving Entrance Details.
+
ACS ResourceDescription
acs_systemThe top-level object. Represents one or more buildings, residential locations, or other sites that you manage using this ACS.
For more information, see Retrieving ACS System Details.
acs_userThe set of users who access the entrances.
For more information, see Managing ACS Users.
acs_access_groupSome ACSs use access groups as an efficient way to grant sets of scheduled entrance access to one or more users.
For more information, see Assigning ACS Users to Access Groups.
acs_credentialA digital means that authorizes a user to access one or more entrances at specific days and times. Examples of credentials include RFID cards, mobile keys, and PIN codes.
For more information, see Managing Credentials.
acs_entranceThe set of entrances, doors, or zones that you want to manage. You identify each entrance by the corresponding lock object.
For more information, see Retrieving Entrance Details.
{% hint style="info" %} You configure the access schedules for your ACS users either through access groups or credentials, depending on your specific ACS. There is no separate schedule resource in the Seam API. @@ -78,4 +78,4 @@ To learn how to manage ACS components, see the following guides: * [Retrieving Entrance Details](../../capability-guides/access-systems/retrieving-entrance-details.md) * [Managing Credentials](../../capability-guides/access-systems/managing-credentials.md) -For the corresponding Seam API reference, see [Access Control Systems](../../api-clients/access-control-systems/). +For the corresponding Seam API reference, see [Access Control Systems](../../api-clients/acs/). diff --git a/docs/products/access-systems/assigning-users-to-access-groups.md b/docs/products/access-systems/assigning-users-to-access-groups.md index 27b9d664..8b0b3e87 100644 --- a/docs/products/access-systems/assigning-users-to-access-groups.md +++ b/docs/products/access-systems/assigning-users-to-access-groups.md @@ -18,7 +18,7 @@ This guide explains how to grant access permissions to ACS users by adding them ## Add an ACS User to an Access Group -To [add an ACS user to an access group](../../api-clients/access-control-systems/users/add-user-to-access-group.md), provide both the `acs_user_id` and the `acs_access_group_id`. +To [add an ACS user to an access group](../../api-clients/acs/users/add-user-to-access-group.md), provide both the `acs_user_id` and the `acs_access_group_id`. {% tabs %} {% tab title="Python" %} @@ -166,7 +166,7 @@ add, uErr := client.Acs.Users.AddToAccessGroup( ## Remove an ACS User from an Access Group -To [remove an ACS user from an access group](../../api-clients/access-control-systems/users/remove-user-from-access-group.md), provide both the `acs_user_id` and the `acs_access_group_id`. +To [remove an ACS user from an access group](../../api-clients/acs/users/remove-user-from-access-group.md), provide both the `acs_user_id` and the `acs_access_group_id`. {% tabs %} {% tab title="Python" %} diff --git a/docs/products/access-systems/suspending-and-unsuspending-users.md b/docs/products/access-systems/suspending-and-unsuspending-users.md index 0d7625f3..6c5d3f35 100644 --- a/docs/products/access-systems/suspending-and-unsuspending-users.md +++ b/docs/products/access-systems/suspending-and-unsuspending-users.md @@ -12,7 +12,7 @@ You can suspend an ACS user to revoke their access temporarily. Suspending an AC ## Suspend an ACS User -To [suspend an ACS user](../../api-clients/access-control-systems/users/suspend-a-user.md), provide the `acs_user_id`. +To [suspend an ACS user](../../api-clients/acs/users/suspend-a-user.md), provide the `acs_user_id`. {% tabs %} {% tab title="Python" %} @@ -155,7 +155,7 @@ suspend, uErr := client.Acs.Users.Suspend( ## Unsuspend an ACS User -To [unsuspend an ACS user](../../api-clients/access-control-systems/users/unsuspend-a-user.md), provide the `acs_user_id`. +To [unsuspend an ACS user](../../api-clients/acs/users/unsuspend-a-user.md), provide the `acs_user_id`. {% tabs %} {% tab title="Python" %} diff --git a/docs/products/access-systems/user-management.md b/docs/products/access-systems/user-management.md index 35d3df3a..da434754 100644 --- a/docs/products/access-systems/user-management.md +++ b/docs/products/access-systems/user-management.md @@ -8,13 +8,13 @@ description: >- An ACS user typically refers to an individual who requires access, like an employee or resident. Each user can possess multiple credentials that serve as their keys or identifiers for access. The type of credential can vary widely. For example, in the [Salto](../../device-guides/salto-locks.md) system, a user can have a PIN code, a mobile app account, and a fob. In other platforms, it is not uncommon for a user to have more than one of the same credential type, such as multiple key cards. Additionally, these credentials can have a schedule or validity period. -This guide explains how to create and manage ACS users. Using the [Access Control Systems API](../../api-clients/access-control-systems/), you can automate issuing access to long-term tenants or visitors. +This guide explains how to create and manage ACS users. Using the [Access Control Systems API](../../api-clients/acs/), you can automate issuing access to long-term tenants or visitors. *** ## Before You Begin: Identify the ACS System ID -To add ACS users to your access control system, first retrieve the `acs_system_id` of the ACS that you want to configure. To retrieve the ACS details, use [Get a System](../../api-clients/access-control-systems/systems/get-system.md) or [List Systems](../../api-clients/access-control-systems/systems/list-systems.md). Then, continue to the remaining sections in this topic to learn how to manage ACS users. +To add ACS users to your access control system, first retrieve the `acs_system_id` of the ACS that you want to configure. To retrieve the ACS details, use [Get a System](../../api-clients/acs/systems/get-system.md) or [List Systems](../../api-clients/acs/systems/list-systems.md). Then, continue to the remaining sections in this topic to learn how to manage ACS users. {% tabs %} {% tab title="Python" %} @@ -188,7 +188,7 @@ acs_systems, uErr := client.Acs.Systems.List( ## Create an ACS User -To [create an ACS user](../../api-clients/access-control-systems/users/create-user.md), provide the `acs_system_id` of the ACS system and the attributes of the user, such as the `full_name`, `email_address`, `phone_number`, and so on. +To [create an ACS user](../../api-clients/acs/users/create-user.md), provide the `acs_system_id` of the ACS system and the attributes of the user, such as the `full_name`, `email_address`, `phone_number`, and so on. Also, if your [ACS architecture](../../capability-guides/access-systems/understanding-access-control-system-differences.md) supports access groups, you can also assign an ACS user to one or more access groups. To do so, when you create the user, include the IDs of the access group to which you want add the user. The `acs_access_group_ids` parameter accepts an array of strings. @@ -405,7 +405,7 @@ acs_user, uErr := client.Acs.Users.Create( ## List ACS Users -To [list all ACS users](../../api-clients/access-control-systems/users/list-users.md) within an `acs_system`, provide the `acs_system_id` of the ACS. You can also filter users by `user_identity_id`, `user_identity_email_address`, or `user_identity_phone_number`. +To [list all ACS users](../../api-clients/acs/users/list-users.md) within an `acs_system`, provide the `acs_system_id` of the ACS. You can also filter users by `user_identity_id`, `user_identity_email_address`, or `user_identity_phone_number`. {% tabs %} {% tab title="Python" %} @@ -597,7 +597,7 @@ acs_users, uErr := client.Acs.Users.List( ## Get an ACS User -To [get an ACS user](../../api-clients/access-control-systems/users/get-user.md), provide the `acs_user_id` of the user that you want to retrieve. These details include the contact details for the user, the user's access schedule, the associated [user identity](../../api-clients/user-identities/), if applicable, and so on. +To [get an ACS user](../../api-clients/acs/users/get-user.md), provide the `acs_user_id` of the user that you want to retrieve. These details include the contact details for the user, the user's access schedule, the associated [user identity](../../api-clients/user-identities/), if applicable, and so on. {% tabs %} {% tab title="Python" %} @@ -815,7 +815,7 @@ acs_user, uErr := client.Acs.Users.Get( ## Update an ACS User -To [update an ACS user](../../api-clients/access-control-systems/users/update-user.md), provide the `acs_user_id` of the user that you want to update, along with the attributes that you want to modify, such as the contact details for the user or the user's access schedule. +To [update an ACS user](../../api-clients/acs/users/update-user.md), provide the `acs_user_id` of the user that you want to update, along with the attributes that you want to modify, such as the contact details for the user or the user's access schedule. {% tabs %} {% tab title="Python" %} @@ -969,7 +969,7 @@ acs_user, uErr := client.Acs.Users.Update( ## Delete an ACS User -To [delete an ACS user](../../api-clients/access-control-systems/users/delete-user.md), provide the `acs_user_id` of the user that you want to delete. +To [delete an ACS user](../../api-clients/acs/users/delete-user.md), provide the `acs_user_id` of the user that you want to delete. {% tabs %} {% tab title="Python" %} diff --git a/docs/products/mobile-access-in-development/managing-mobile-app-user-accounts-with-user-identities.md b/docs/products/mobile-access-in-development/managing-mobile-app-user-accounts-with-user-identities.md index 49e3e5fe..5ed1fa33 100644 --- a/docs/products/mobile-access-in-development/managing-mobile-app-user-accounts-with-user-identities.md +++ b/docs/products/mobile-access-in-development/managing-mobile-app-user-accounts-with-user-identities.md @@ -207,7 +207,7 @@ None ## Removing a User Identity -To delete a user identity, you must first delete any [ACS credentials](../../api-clients/access-control-systems/credentials/delete-credential.md) and [enrollment automations](../../api-clients/user-identities/enrollment-automations/) associated with the user identity. You must also deactivate any associated phones. Then, delete the user identity. +To delete a user identity, you must first delete any [ACS credentials](../../api-clients/acs/credentials/delete-credential.md) and [enrollment automations](../../api-clients/user-identities/enrollment-automations/) associated with the user identity. You must also deactivate any associated phones. Then, delete the user identity. ```python import asyncio @@ -217,60 +217,60 @@ async def delete_user_identity(user_identity_id): client_sessions = await seam.client_sessions.list( user_identity_id=user_identity_id ) - + for session in client_sessions: await seam.client_sessions.delete( session_id=session['client_session_id'] ) - + # Delete the ACS users and credentials. acs_users = await seam.acs.users.list( user_identity_id=user_identity_id ) - + for acs_user in acs_users: credentials = await seam.acs.credentials.list( acs_user_id=acs_user['acs_user_id'] ) - + for credential in credentials: await seam.acs.credentials.delete( acs_credential_id=credential['acs_credential_id'] ) - + await asyncio.gather(*[ - wait_for_acs_credential_deleted(credential) + wait_for_acs_credential_deleted(credential) for credential in credentials ]) - + await seam.acs.users.delete( acs_user_id=acs_user['acs_user_id'] ) - + await asyncio.gather(*[ wait_for_acs_user_deleted(acs_user) for acs_user in acs_users ]) - + # Delete the enrollment automations. enrollment_automations = await seam.user_identities.enrollment_automations.list( user_identity_id=user_identity_id ) - + for automation in enrollment_automations: await seam.user_identities.enrollment_automations.delete( enrollment_automation_id=automation['enrollment_automation_id'] ) - + await asyncio.gather(*[ - wait_for_enrollment_automation_deleted(automation) + wait_for_enrollment_automation_deleted(automation) for automation in enrollment_automations ]) - + # Delete the phones. phones = await seam.phones.list( owner_user_identity_id=user_identity_id ) - + for phone in phones: await seam.phones.deactivate( device_id=phone['device_id'] @@ -279,7 +279,7 @@ async def delete_user_identity(user_identity_id): await asyncio.gather(*[ wait_for_phone_deactivated(phone) for phone in phones ]) - + # Finally, delete the user identity. await seam.user_identities.delete( user_identity_id=user_identity_id @@ -295,21 +295,21 @@ async def wait_for_event(event_type, event_filter): async def wait_for_acs_user_deleted(acs_user): await wait_for_event( 'acs_user.deleted', - lambda event: 'acs_user_id' in event and + lambda event: 'acs_user_id' in event and event.acs_user_id == acs_user.acs_user_id ) async def wait_for_enrollment_automation_deleted(enrollment_automation): await wait_for_event( 'enrollment_automation.deleted', - lambda event: 'enrollment_automation_id' in event and + lambda event: 'enrollment_automation_id' in event and event.enrollment_automation_id == enrollment_automation.enrollment_automation_id ) async def wait_for_acs_credential_deleted(acs_credential): await wait_for_event( 'acs_credential.deleted', - lambda event: 'acs_credential_id' in event and + lambda event: 'acs_credential_id' in event and event.acs_credential_id == acs_credential.acs_credential_id ) diff --git a/generated-docs/sdk/README.md b/docs/sdk/README.md similarity index 100% rename from generated-docs/sdk/README.md rename to docs/sdk/README.md diff --git a/docs/sdk/javascript/acs/systems/list.md b/docs/sdk/javascript/acs/systems/list.md new file mode 100644 index 00000000..2c2a87cb --- /dev/null +++ b/docs/sdk/javascript/acs/systems/list.md @@ -0,0 +1,3 @@ +# + + diff --git a/docs/ui-components/connect-webviews/retrieving-devices-or-access-control-systems-connected-through-a-connect-webview.md b/docs/ui-components/connect-webviews/retrieving-devices-or-access-control-systems-connected-through-a-connect-webview.md index 97fea633..eac398c8 100644 --- a/docs/ui-components/connect-webviews/retrieving-devices-or-access-control-systems-connected-through-a-connect-webview.md +++ b/docs/ui-components/connect-webviews/retrieving-devices-or-access-control-systems-connected-through-a-connect-webview.md @@ -250,7 +250,7 @@ return nil ## Retrieve a Connected Access Control System -Use this `connected_account_id` in a [List Systems](../../api-clients/access-control-systems/systems/list-systems.md) command to retrieve the ACS that your user has just connected to Seam. +Use this `connected_account_id` in a [List Systems](../../api-clients/acs/systems/list-systems.md) command to retrieve the ACS that your user has just connected to Seam. {% hint style="info" %} If you set `wait_for_device_creation` to `false` when [creating the Connect Webview](../../core-concepts/connect-webviews/#id-1.-create-a-connect-webview), you should wait for the [`connected_account.completed_first_sync` event](../../api-clients/events/#event-types) before retrieving the user's ACS. This event indicates that Seam has finished the first sync of the connected account and the `acs_system` is now available. diff --git a/generated-docs/api/acs/systems/list.md b/generated-docs/api/acs/systems/list.md deleted file mode 100644 index a72adedb..00000000 --- a/generated-docs/api/acs/systems/list.md +++ /dev/null @@ -1,3 +0,0 @@ -# - -/acs/systems/list diff --git a/generated-docs/sdk/javascript/acs/systems/list.md b/generated-docs/sdk/javascript/acs/systems/list.md deleted file mode 100644 index a72adedb..00000000 --- a/generated-docs/sdk/javascript/acs/systems/list.md +++ /dev/null @@ -1,3 +0,0 @@ -# - -/acs/systems/list diff --git a/package-lock.json b/package-lock.json index 0820e35e..30fcf38c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,12 +11,12 @@ "dependencies": { "@metalsmith/layouts": "^2.7.0", "@metalsmith/metadata": "^0.3.0", - "@seamapi/blueprint": "^0.3.0", + "@seamapi/blueprint": "^0.8.3", "jstransformer-handlebars": "^1.2.0", "metalsmith": "^2.6.3" }, "devDependencies": { - "@seamapi/types": "^1.207.0", + "@seamapi/types": "^1.212.1", "@types/debug": "^4.1.12", "@types/micromatch": "^4.0.9", "@types/node": "^20.8.10", @@ -611,9 +611,9 @@ } }, "node_modules/@seamapi/blueprint": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-0.3.0.tgz", - "integrity": "sha512-yFdBHXlthXX3xLzl+J3lLe2no+sGkmXa+4TqYTLa856kritIwljr5g6L3hbDFPtgWMBhuJX03EkDP+rmwFEHTw==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-0.8.3.tgz", + "integrity": "sha512-QJwZACtvStdXKUoeSk/MpLtDlxBuoXxuMA2SFlMcdFhm0P1mQMMJbv1JnY+xZLEUZOcH5k3oXBdxKvHGSP+fQQ==", "dependencies": { "change-case": "^5.4.4", "zod": "^3.23.8" @@ -624,9 +624,9 @@ } }, "node_modules/@seamapi/types": { - "version": "1.207.0", - "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.207.0.tgz", - "integrity": "sha512-FhFKONYsKzGz9D/otYfJK8w8t74VSYFec0VEbfpHDpSaNOrpzR6Gl7Qag9IEj/yTmcvm643KPiL+KA65Oh4ybg==", + "version": "1.212.1", + "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.212.1.tgz", + "integrity": "sha512-3KIbAguWw6PDum8orvKaL3WoXeYzgA3bfqDtHW2sFP5Ew0qBDcHJeJB/mlvza4rKf1kjDcvB9P8PBmU1aD8Whg==", "dev": true, "engines": { "node": ">=18.12.0", diff --git a/package.json b/package.json index 839dfcf5..e2c5d4c6 100644 --- a/package.json +++ b/package.json @@ -31,12 +31,12 @@ "dependencies": { "@metalsmith/layouts": "^2.7.0", "@metalsmith/metadata": "^0.3.0", - "@seamapi/blueprint": "^0.3.0", + "@seamapi/blueprint": "^0.8.3", "jstransformer-handlebars": "^1.2.0", "metalsmith": "^2.6.3" }, "devDependencies": { - "@seamapi/types": "^1.207.0", + "@seamapi/types": "^1.212.1", "@types/debug": "^4.1.12", "@types/micromatch": "^4.0.9", "@types/node": "^20.8.10", diff --git a/src/layouts/api-reference.hbs b/src/layouts/api-reference.hbs index 0c33ebe6..3622d989 100644 --- a/src/layouts/api-reference.hbs +++ b/src/layouts/api-reference.hbs @@ -1,3 +1,47 @@ -# -{{endpoint.path}} -{{{contents}}} \ No newline at end of file +# {{title}} + +{{{description}}} + + +### Request Parameters + +{{#each request.parameters}} +**{{this.name}}** +*Type:* `{{this.type}}` +*Required:* {{#if this.required}}Yes{{else}}No{{/if}} + +{{this.description}} +{{/each}} + +### Response Properties + +{{#each response.properties}} +**{{this.name}}** +{{this.description}} +{{/each}} + +## Samples + +{% tabs %} +{{#each codeSamples}} + {{#each this.code}} + {% tab title="{{this.title}}" %} + ### Request + ```{{@key}} + {{this.request}} + ``` + + ### Response + ```{{@key}} + {{this.response}} + ``` + {% endtab %} + {{/each}} +{{else}} + {% tab title="No samples available" %} + ``` + No sample requests available. + ``` + {% endtab %} +{{/each}} +{% endtabs %} diff --git a/src/lib/reference.ts b/src/lib/reference.ts index d46aceaa..7985bbc6 100644 --- a/src/lib/reference.ts +++ b/src/lib/reference.ts @@ -1,38 +1,66 @@ -import type { Blueprint, Endpoint } from '@seamapi/blueprint' +import type { Blueprint } from '@seamapi/blueprint' import type Metalsmith from 'metalsmith' +import { + type EndpointTemplateContext, + setEndpointTemplateContext, +} from './template-context.js' + const sdks = ['javascript'] +const baseUrl = 'https://docs.seam.co/latest/' + +type Metadata = Partial> + +type File = EndpointTemplateContext & { layout: string } + export const reference = ( files: Metalsmith.Files, metalsmith: Metalsmith, ): void => { - const metadata = metalsmith.metadata() + const metadata = { + title: '', + routes: [], + resources: {}, + ...(metalsmith.metadata() as Metadata), + } - for (const route of (metadata as Blueprint).routes ?? []) { + for (const route of metadata.routes ?? []) { for (const endpoint of route.endpoints) { const k = `api${endpoint.path}.md` files[k] = { contents: Buffer.from('\n'), } - const file = files[k] as Partial + const file = files[k] as unknown as File file.layout = 'api-reference.hbs' - file.endpoint = endpoint + setEndpointTemplateContext(file, endpoint, metadata) for (const sdk of sdks) { const k = `sdk/${sdk}${endpoint.path}.md` files[k] = { contents: Buffer.from('\n'), } - const file = files[k] as Partial + const file = files[k] as unknown as File file.layout = 'sdk-reference.hbs' - file.endpoint = endpoint + setEndpointTemplateContext(file, endpoint, metadata) } } } } -interface TemplateContext { - layout: string - endpoint: Endpoint +export const postprocess = ( + files: Metalsmith.Files, + _metalsmith: Metalsmith, +): void => { + for (const [name, file] of Object.entries(files)) { + const contents = file.contents.toString('utf-8') + file.contents = Buffer.from( + contents + .replaceAll(new RegExp(`(${baseUrl}[^)]+)`, 'g'), '$1.md') + .replaceAll( + baseUrl, + new Array(name.split('/').length).fill('').join('../'), + ), + ) + } } diff --git a/src/lib/template-context.ts b/src/lib/template-context.ts new file mode 100644 index 00000000..9b01a786 --- /dev/null +++ b/src/lib/template-context.ts @@ -0,0 +1,77 @@ +import type { Blueprint, Endpoint } from '@seamapi/blueprint' + +export function setEndpointTemplateContext( + file: Partial, + endpoint: Endpoint, + blueprint: Blueprint, +): void { + file.description = endpoint.description + file.title = endpoint.title + file.path = endpoint.path + + file.request = { + preferredMethod: endpoint.request?.preferredMethod ?? '', + parameters: endpoint.request.parameters.map((param) => ({ + name: param.name, + required: param.isRequired, + description: param.description, + })), + } + + file.response = { + description: endpoint.response.description, + properties: null, + resourceType: null, + } + + if (endpoint.response.responseType !== 'void') { + const { resourceType } = endpoint.response + file.response.resourceType = resourceType + const resource = blueprint.resources[resourceType] + file.response.properties = + resource?.properties.map((property) => ({ + name: property.name, + description: property.description, + })) ?? null + } + + file.codeSamples = endpoint.codeSamples.map((sample) => ({ + title: sample.title, + description: sample.description, + code: sample.code, + })) +} + +export interface EndpointTemplateContext { + description: string + title: string + path: string + request: { + preferredMethod: string + parameters: Array<{ + name: string + required: boolean + description: string + }> + } + response: { + description: string + resourceType: string | null + properties: null | Array<{ + name: string + description: string + }> + } + codeSamples: Array<{ + title: string + description: string + code: Record< + string, + { + title: string + request: string + response: string + } + > + }> +} diff --git a/src/metalsmith.ts b/src/metalsmith.ts index 0db7cfa8..377ae3cf 100644 --- a/src/metalsmith.ts +++ b/src/metalsmith.ts @@ -5,6 +5,8 @@ import layouts from '@metalsmith/layouts' import metadata from '@metalsmith/metadata' import Metalsmith from 'metalsmith' +import { postprocess } from 'lib/reference.js' + import { blueprint, reference } from './lib/index.js' const rootDir = dirname(fileURLToPath(import.meta.url)) @@ -15,7 +17,7 @@ Metalsmith(rootDir).source('./docs/api').destination('../docs/sdk').clean(true) Metalsmith(rootDir) .source('./docs') - .destination('../generated-docs') + .destination('../docs') .clean(false) .use( metadata({ @@ -27,8 +29,12 @@ Metalsmith(rootDir) .use( layouts({ default: 'default.hbs', + engineOptions: { + noEscape: true, + }, }), ) + .use(postprocess) .build((err) => { if (err != null) throw err })