From e2f408fb8f54df21c12837fd18741f94ce2eb50d Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Wed, 12 Aug 2026 23:10:56 -0700 Subject: [PATCH 1/5] Update blueprint and types --- package-lock.json | 24 ++++++++++++------------ package.json | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2f2cdc6..bf989ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,10 +6,10 @@ "": { "name": "@seamapi/ruby", "devDependencies": { - "@seamapi/blueprint": "^1.1.0", + "@seamapi/blueprint": "^1.5.1", "@seamapi/fake-seam-connect": "1.86.0", "@seamapi/smith": "^1.1.0", - "@seamapi/types": "1.983.0", + "@seamapi/types": "1.1001.0", "change-case": "^5.4.4", "markdown-toc": "^1.2.0", "prettier": "^3.2.5" @@ -788,9 +788,9 @@ "license": "MIT" }, "node_modules/@seamapi/blueprint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-1.1.0.tgz", - "integrity": "sha512-wX1HZkA/IK9hDQ6Qdxw5Mo+Ysfh82p9IEXQJafakO9VMbszW6n1U02eEhZHVY3CfzN/duk6t9h1veX0zRlhWBQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-1.5.1.tgz", + "integrity": "sha512-rXHMNDGmaE7OK+tg3e64DnpMHQypN4BuSS+PkVqGUoYc9f+xBMONqPscsHAGi9iU/iyZOJZKEOKOXvMmWaLoLA==", "dev": true, "license": "MIT", "dependencies": { @@ -798,8 +798,8 @@ "zod": "^3.23.8" }, "engines": { - "node": ">=22.11.0", - "npm": ">=10.9.4" + "node": ">=22.12.0", + "npm": ">=10.0.0" } }, "node_modules/@seamapi/fake-devicedb": { @@ -872,14 +872,14 @@ } }, "node_modules/@seamapi/types": { - "version": "1.983.0", - "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.983.0.tgz", - "integrity": "sha512-SMkfn1SVC70x67mtRAvLMJtpFh/0zaStLatb6LA+kz9n/rV1gBS/UlH8SzBFg7iStE22f/VPjkdltHTIY1paoA==", + "version": "1.1001.0", + "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.1001.0.tgz", + "integrity": "sha512-pwIEqMYCdOLlIHUzzLlMq/4K6QwAM3kWXooSxNWOlPyCeWk21SvrbTN/joXwZtky504g3unLPKMbFad1mlQyfQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=22.11.0", - "npm": ">=10.9.4" + "node": ">=22.12.0", + "npm": ">=10.0.0" }, "peerDependencies": { "zod": "^3.24.0" diff --git a/package.json b/package.json index d8c4f95..805d0aa 100644 --- a/package.json +++ b/package.json @@ -28,10 +28,10 @@ } }, "devDependencies": { - "@seamapi/blueprint": "^1.1.0", + "@seamapi/blueprint": "^1.5.1", "@seamapi/fake-seam-connect": "1.86.0", "@seamapi/smith": "^1.1.0", - "@seamapi/types": "1.983.0", + "@seamapi/types": "1.1001.0", "change-case": "^5.4.4", "markdown-toc": "^1.2.0", "prettier": "^3.2.5" From f5b30f5b47ea795d16cb3d904050a4dcc2bb1d08 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 13 Aug 2026 06:11:48 +0000 Subject: [PATCH 2/5] ci: Generate code --- lib/seam/resources/acs_credential.rb | 10 ++++++++++ lib/seam/resources/action_attempt.rb | 22 ++++++++++++++++++++++ lib/seam/resources/device.rb | 26 ++++++++++++++++++++++---- lib/seam/resources/event.rb | 5 ++--- lib/seam/resources/unmanaged_device.rb | 2 ++ lib/seam/routes/access_codes.rb | 12 ++---------- lib/seam/routes/devices_unmanaged.rb | 9 ++------- lib/seam/routes/locks.rb | 15 ++------------- lib/seam/routes/noise_sensors.rb | 15 ++------------- lib/seam/routes/thermostats.rb | 15 ++------------- 10 files changed, 68 insertions(+), 63 deletions(-) diff --git a/lib/seam/resources/acs_credential.rb b/lib/seam/resources/acs_credential.rb index 4d178fe..9485e68 100644 --- a/lib/seam/resources/acs_credential.rb +++ b/lib/seam/resources/acs_credential.rb @@ -10,6 +10,11 @@ module Resources # # For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials. class AcsCredential < BaseResource + class AkilesMetadata < BaseResource + # ID of the Akiles member PIN. + attr_accessor :member_pin_id + end + class AssaAbloyVostioMetadata < BaseResource # Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. attr_accessor :auto_join @@ -54,12 +59,17 @@ class VisionlineMetadata < BaseResource class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. attr_accessor :message + # The PIN code that was assigned instead. + attr_accessor :new_code + # The originally requested PIN code that could not be used. + attr_accessor :original_code # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. attr_accessor :warning_code # Date and time at which Seam created the warning. date_accessor :created_at end + resource_accessor :akiles_metadata, AkilesMetadata resource_accessor :assa_abloy_vostio_metadata, AssaAbloyVostioMetadata resource_accessor :visionline_metadata, VisionlineMetadata resource_list_accessor :errors, Errors diff --git a/lib/seam/resources/action_attempt.rb b/lib/seam/resources/action_attempt.rb index 5d2f0cd..d57fe66 100644 --- a/lib/seam/resources/action_attempt.rb +++ b/lib/seam/resources/action_attempt.rb @@ -53,6 +53,11 @@ class VisionlineMetadata < BaseResource end class AcsCredentialOnSeam < BaseResource + class AkilesMetadata < BaseResource + # ID of the Akiles member PIN. + attr_accessor :member_pin_id + end + class AssaAbloyVostioMetadata < BaseResource # Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. attr_accessor :auto_join @@ -99,10 +104,15 @@ class Warnings < BaseResource attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. attr_accessor :warning_code + # The PIN code that was assigned instead. + attr_accessor :new_code + # The originally requested PIN code that could not be used. + attr_accessor :original_code # Date and time at which Seam created the warning. date_accessor :created_at end + resource_accessor :akiles_metadata, AkilesMetadata resource_accessor :assa_abloy_vostio_metadata, AssaAbloyVostioMetadata resource_accessor :visionline_metadata, VisionlineMetadata resource_list_accessor :errors, Errors @@ -156,6 +166,11 @@ class Warnings < BaseResource date_accessor :latest_desired_state_synced_with_provider_at end + class AkilesMetadata < BaseResource + # ID of the Akiles member PIN. + attr_accessor :member_pin_id + end + class AssaAbloyVostioMetadata < BaseResource # Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. attr_accessor :auto_join @@ -227,8 +242,12 @@ class VisionlineMetadata < BaseResource class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. attr_accessor :message + # The PIN code that was assigned instead. + attr_accessor :new_code # ID of the original access method from which this backup access method was split, if applicable. attr_accessor :original_access_method_id + # The originally requested PIN code that could not be used. + attr_accessor :original_code attr_accessor :warning_code # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. attr_accessor :warning_message @@ -238,11 +257,13 @@ class Warnings < BaseResource resource_accessor :acs_credential_on_encoder, AcsCredentialOnEncoder resource_accessor :acs_credential_on_seam, AcsCredentialOnSeam + resource_accessor :akiles_metadata, AkilesMetadata resource_accessor :assa_abloy_vostio_metadata, AssaAbloyVostioMetadata resource_accessor :visionline_metadata, VisionlineMetadata resource_list_accessor :errors, Errors resource_list_accessor :pending_mutations, PendingMutations resource_list_accessor :warnings, Warnings + attr_accessor :access_code # Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`. attr_accessor :access_method # ID of the access method. @@ -292,6 +313,7 @@ class Warnings < BaseResource attr_accessor :is_ready_for_encoding # Access method mode. Supported values: `code`, `card`, `mobile_key`, `cloud_key`. attr_accessor :mode + attr_accessor :noise_threshold # ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). attr_accessor :parent_acs_credential_id # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. diff --git a/lib/seam/resources/device.rb b/lib/seam/resources/device.rb index 90d2311..089191a 100644 --- a/lib/seam/resources/device.rb +++ b/lib/seam/resources/device.rb @@ -40,6 +40,8 @@ class Errors < BaseResource class Location < BaseResource # Name of the device location. attr_accessor :location_name + # Name of the room within the device location, when the provider reports one. + attr_accessor :room_name # Time zone of the device location. attr_accessor :time_zone # Time zone of the device location. @@ -191,9 +193,6 @@ class ControlbywebMetadata < BaseResource end class DormakabaOracodeMetadata < BaseResource - class DeviceId < BaseResource - end - class PredefinedTimeSlots < BaseResource # Check in time for a time slot for a dormakaba Oracode device. attr_accessor :check_in_time @@ -217,8 +216,9 @@ class PredefinedTimeSlots < BaseResource attr_accessor :prefix end - resource_accessor :device_id, DeviceId resource_list_accessor :predefined_time_slots, PredefinedTimeSlots + # Device ID for a dormakaba Oracode device. + attr_accessor :device_id # Door ID for a dormakaba Oracode device. attr_accessor :door_id # Indicates whether a door is wireless for a dormakaba Oracode device. @@ -439,6 +439,10 @@ class NestMetadata < BaseResource attr_accessor :display_name # Device ID for a Google Nest device. attr_accessor :nest_device_id + # ID of the Google Nest structure containing the device. + attr_accessor :nest_structure_id + # Name of the Google Nest structure containing the device. The device owner sets this value. + attr_accessor :structure_name end class NoiseawareMetadata < BaseResource @@ -556,6 +560,8 @@ class SensiMetadata < BaseResource attr_accessor :device_name # Set to true when the device does not support the /dual-setpoints API endpoint. attr_accessor :dual_setpoints_not_supported + # Enforced setpoint range in Celsius for a Sensi device, derived from an OutOfRange API error. + attr_accessor :enforced_setpoint_range_celsius # Product type for a Sensi device. attr_accessor :product_type end @@ -676,6 +682,17 @@ class WyzeMetadata < BaseResource attr_accessor :product_type end + class YacanMetadata < BaseResource + # Device ID for a Yacan device. + attr_accessor :device_id + # Device name for a Yacan device. + attr_accessor :device_name + # Device type for a Yacan device. + attr_accessor :device_type + # Serial number for a Yacan device. + attr_accessor :serial_number + end + class CodeConstraints < BaseResource attr_accessor :constraint_type # Maximum name length constraint for access codes. @@ -997,6 +1014,7 @@ class ThermostatWeeklyProgram < BaseResource resource_accessor :ultraloq_metadata, UltraloqMetadata resource_accessor :visionline_metadata, VisionlineMetadata resource_accessor :wyze_metadata, WyzeMetadata + resource_accessor :yacan_metadata, YacanMetadata resource_accessor :keypad_battery, KeypadBattery resource_accessor :active_thermostat_schedule, ActiveThermostatSchedule resource_accessor :current_climate_setting, CurrentClimateSetting diff --git a/lib/seam/resources/event.rb b/lib/seam/resources/event.rb index 06e674e..4ce7fd7 100644 --- a/lib/seam/resources/event.rb +++ b/lib/seam/resources/event.rb @@ -156,7 +156,9 @@ class To < BaseResource attr_accessor :acs_encoder_id attr_accessor :acs_entrance_id attr_accessor :acs_entrance_ids + # ID of the access system. attr_accessor :acs_system_id + # ID of the affected access system user. attr_accessor :acs_user_id attr_accessor :action_attempt_id # Type of the action. @@ -179,8 +181,6 @@ class To < BaseResource attr_accessor :connect_webview_id attr_accessor :connected_account_custom_metadata attr_accessor :connected_account_id - # undocumented: Unreleased. - attr_accessor :connected_account_type # Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). attr_accessor :cooling_set_point_celsius # Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). @@ -262,7 +262,6 @@ class To < BaseResource attr_accessor :upper_limit_celsius # Upper temperature limit, in °F, defined by the set threshold. attr_accessor :upper_limit_fahrenheit - attr_accessor :user_identity_id attr_accessor :video_url # ID of the workspace associated with the event. attr_accessor :workspace_id diff --git a/lib/seam/resources/unmanaged_device.rb b/lib/seam/resources/unmanaged_device.rb index ec4a6ca..c36bef2 100644 --- a/lib/seam/resources/unmanaged_device.rb +++ b/lib/seam/resources/unmanaged_device.rb @@ -20,6 +20,8 @@ class Errors < BaseResource class Location < BaseResource # Name of the device location. attr_accessor :location_name + # Name of the room within the device location, when the provider reports one. + attr_accessor :room_name # Time zone of the device location. attr_accessor :time_zone # Time zone of the device location. diff --git a/lib/seam/routes/access_codes.rb b/lib/seam/routes/access_codes.rb index 79b3ac1..6072e0f 100644 --- a/lib/seam/routes/access_codes.rb +++ b/lib/seam/routes/access_codes.rb @@ -177,9 +177,6 @@ def report_device_constraints(device_id:, max_code_length: nil, min_code_length: # @param ends_at Date and time at which the validity of the new access code ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. # @param is_external_modification_allowed Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. # @param is_managed Indicates whether the access code is managed through Seam. Note that to convert an unmanaged access code into a managed access code, use `/access_codes/unmanaged/convert_to_managed`. - # @param is_offline_access_code Indicates whether the access code is an [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes). - # @param is_one_time_use Indicates whether the [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code. - # @param max_time_rounding Maximum rounding adjustment. To create a daily-bound [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`. # @param name Name of the new access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. # # Note that the name provided on Seam is used to identify the code on Seam and is not necessarily the name that will appear in the lock provider's app or on the device. This is because lock providers may have constraints on names, such as length, uniqueness, or characters that can be used. In addition, some lock providers may break down names into components such as `first_name` and `last_name`. @@ -187,16 +184,11 @@ def report_device_constraints(device_id:, max_code_length: nil, min_code_length: # To provide a consistent experience, Seam identifies the code on Seam by its name but may modify the name that appears on the lock provider's app or on the device. For example, Seam may add additional characters or truncate the name to meet provider constraints. # # To help your users identify codes set by Seam, Seam provides the name exactly as it appears on the lock provider's app or on the device as a separate property called `appearance`. This is an object with a `name` property and, optionally, `first_name` and `last_name` properties (for providers that break down a name into components). - # @param prefer_native_scheduling Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`. - # @param preferred_code_length Preferred code length. Only applicable if you do not specify a `code`. If the affected device does not support the preferred code length, Seam reverts to using the shortest supported code length. # @param starts_at Date and time at which the validity of the new access code starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. # @param type Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access). - # @param use_backup_access_code_pool Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code). - # @param use_offline_access_code - # @deprecated use_offline_access_code: Use `is_offline_access_code` instead. # @return [nil] OK - def update(access_code_id:, allow_external_modification: nil, attempt_for_offline_device: nil, code: nil, device_id: nil, ends_at: nil, is_external_modification_allowed: nil, is_managed: nil, is_offline_access_code: nil, is_one_time_use: nil, max_time_rounding: nil, name: nil, prefer_native_scheduling: nil, preferred_code_length: nil, starts_at: nil, type: nil, use_backup_access_code_pool: nil, use_offline_access_code: nil) - @client.post("/access_codes/update", {access_code_id: access_code_id, allow_external_modification: allow_external_modification, attempt_for_offline_device: attempt_for_offline_device, code: code, device_id: device_id, ends_at: ends_at, is_external_modification_allowed: is_external_modification_allowed, is_managed: is_managed, is_offline_access_code: is_offline_access_code, is_one_time_use: is_one_time_use, max_time_rounding: max_time_rounding, name: name, prefer_native_scheduling: prefer_native_scheduling, preferred_code_length: preferred_code_length, starts_at: starts_at, type: type, use_backup_access_code_pool: use_backup_access_code_pool, use_offline_access_code: use_offline_access_code}.compact) + def update(access_code_id:, allow_external_modification: nil, attempt_for_offline_device: nil, code: nil, device_id: nil, ends_at: nil, is_external_modification_allowed: nil, is_managed: nil, name: nil, starts_at: nil, type: nil) + @client.post("/access_codes/update", {access_code_id: access_code_id, allow_external_modification: allow_external_modification, attempt_for_offline_device: attempt_for_offline_device, code: code, device_id: device_id, ends_at: ends_at, is_external_modification_allowed: is_external_modification_allowed, is_managed: is_managed, name: name, starts_at: starts_at, type: type}.compact) nil end diff --git a/lib/seam/routes/devices_unmanaged.rb b/lib/seam/routes/devices_unmanaged.rb index 17f95ea..66b7a2a 100644 --- a/lib/seam/routes/devices_unmanaged.rb +++ b/lib/seam/routes/devices_unmanaged.rb @@ -29,7 +29,6 @@ def get(device_id: nil, name: nil) # @param connected_account_id ID of the connected account for which you want to list devices. # @param connected_account_ids Array of IDs of the connected accounts for which you want to list devices. # @param created_before Timestamp by which to limit returned devices. Returns devices created before this timestamp. - # @param custom_metadata_has Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices. # @param customer_key Customer key for which you want to list devices. # @param device_ids Array of device IDs for which you want to list devices. # @param device_type Device type for which you want to list devices. @@ -38,13 +37,9 @@ def get(device_id: nil, name: nil) # @param manufacturer Manufacturer for which you want to list devices. # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. # @param search String for which to search. Filters returned devices to include all records that satisfy a partial match using `device_id` (full or partial UUID prefix, minimum 4 characters), `connected_account_id`, `display_name`, `custom_metadata` or `location.location_name`. - # @param space_id ID of the space for which you want to list devices. - # @param unstable_location_id - # @deprecated unstable_location_id: Use `space_id`. - # @param user_identifier_key Your own internal user ID for the user for which you want to list devices. # @return [Seam::Resources::UnmanagedDevice] OK - def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_key: nil, device_ids: nil, device_type: nil, device_types: nil, limit: nil, manufacturer: nil, page_cursor: nil, search: nil, space_id: nil, unstable_location_id: nil, user_identifier_key: nil) - res = @client.post("/devices/unmanaged/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_key: customer_key, device_ids: device_ids, device_type: device_type, device_types: device_types, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, search: search, space_id: space_id, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact) + def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, customer_key: nil, device_ids: nil, device_type: nil, device_types: nil, limit: nil, manufacturer: nil, page_cursor: nil, search: nil) + res = @client.post("/devices/unmanaged/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, customer_key: customer_key, device_ids: device_ids, device_type: device_type, device_types: device_types, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, search: search}.compact) Seam::Resources::UnmanagedDevice.load_from_response(res.body["devices"]) end diff --git a/lib/seam/routes/locks.rb b/lib/seam/routes/locks.rb index 99974a9..56baeaa 100644 --- a/lib/seam/routes/locks.rb +++ b/lib/seam/routes/locks.rb @@ -41,24 +41,13 @@ def get(device_id: nil, name: nil) # Returns a list of all [locks](https://docs.seam.co/low-level-apis/smart-locks). # @param connect_webview_id ID of the Connect Webview for which you want to list devices. # @param connected_account_id ID of the connected account for which you want to list devices. - # @param connected_account_ids Array of IDs of the connected accounts for which you want to list devices. - # @param created_before Timestamp by which to limit returned devices. Returns devices created before this timestamp. - # @param custom_metadata_has Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices. # @param customer_key Customer key for which you want to list devices. - # @param device_ids Array of device IDs for which you want to list devices. # @param device_type Device type of the locks that you want to list. # @param device_types Device types of the locks that you want to list. - # @param limit Numerical limit on the number of devices to return. # @param manufacturer Manufacturer of the locks that you want to list. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param search String for which to search. Filters returned devices to include all records that satisfy a partial match using `device_id` (full or partial UUID prefix, minimum 4 characters), `connected_account_id`, `display_name`, `custom_metadata` or `location.location_name`. - # @param space_id ID of the space for which you want to list devices. - # @param unstable_location_id - # @deprecated unstable_location_id: Use `space_id`. - # @param user_identifier_key Your own internal user ID for the user for which you want to list devices. # @return [Seam::Resources::Device] OK - def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_key: nil, device_ids: nil, device_type: nil, device_types: nil, limit: nil, manufacturer: nil, page_cursor: nil, search: nil, space_id: nil, unstable_location_id: nil, user_identifier_key: nil) - res = @client.post("/locks/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_key: customer_key, device_ids: device_ids, device_type: device_type, device_types: device_types, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, search: search, space_id: space_id, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact) + def list(connect_webview_id: nil, connected_account_id: nil, customer_key: nil, device_type: nil, device_types: nil, manufacturer: nil) + res = @client.post("/locks/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, customer_key: customer_key, device_type: device_type, device_types: device_types, manufacturer: manufacturer}.compact) Seam::Resources::Device.load_from_response(res.body["devices"]) end diff --git a/lib/seam/routes/noise_sensors.rb b/lib/seam/routes/noise_sensors.rb index 24cfe39..826edbd 100644 --- a/lib/seam/routes/noise_sensors.rb +++ b/lib/seam/routes/noise_sensors.rb @@ -19,24 +19,13 @@ def simulate # Returns a list of all [noise sensors](https://docs.seam.co/capability-guides/noise-sensors). # @param connect_webview_id ID of the Connect Webview for which you want to list devices. # @param connected_account_id ID of the connected account for which you want to list devices. - # @param connected_account_ids Array of IDs of the connected accounts for which you want to list devices. - # @param created_before Timestamp by which to limit returned devices. Returns devices created before this timestamp. - # @param custom_metadata_has Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices. # @param customer_key Customer key for which you want to list devices. - # @param device_ids Array of device IDs for which you want to list devices. # @param device_type Device type of the noise sensors that you want to list. # @param device_types Device types of the noise sensors that you want to list. - # @param limit Numerical limit on the number of devices to return. # @param manufacturer Manufacturers of the noise sensors that you want to list. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param search String for which to search. Filters returned devices to include all records that satisfy a partial match using `device_id` (full or partial UUID prefix, minimum 4 characters), `connected_account_id`, `display_name`, `custom_metadata` or `location.location_name`. - # @param space_id ID of the space for which you want to list devices. - # @param unstable_location_id - # @deprecated unstable_location_id: Use `space_id`. - # @param user_identifier_key Your own internal user ID for the user for which you want to list devices. # @return [Seam::Resources::Device] OK - def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_key: nil, device_ids: nil, device_type: nil, device_types: nil, limit: nil, manufacturer: nil, page_cursor: nil, search: nil, space_id: nil, unstable_location_id: nil, user_identifier_key: nil) - res = @client.post("/noise_sensors/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_key: customer_key, device_ids: device_ids, device_type: device_type, device_types: device_types, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, search: search, space_id: space_id, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact) + def list(connect_webview_id: nil, connected_account_id: nil, customer_key: nil, device_type: nil, device_types: nil, manufacturer: nil) + res = @client.post("/noise_sensors/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, customer_key: customer_key, device_type: device_type, device_types: device_types, manufacturer: manufacturer}.compact) Seam::Resources::Device.load_from_response(res.body["devices"]) end diff --git a/lib/seam/routes/thermostats.rb b/lib/seam/routes/thermostats.rb index bb28b94..8fc366e 100644 --- a/lib/seam/routes/thermostats.rb +++ b/lib/seam/routes/thermostats.rb @@ -109,24 +109,13 @@ def heat_cool(device_id:, cooling_set_point_celsius: nil, cooling_set_point_fahr # Returns a list of all [thermostats](https://docs.seam.co/capability-guides/thermostats). # @param connect_webview_id ID of the Connect Webview for which you want to list devices. # @param connected_account_id ID of the connected account for which you want to list devices. - # @param connected_account_ids Array of IDs of the connected accounts for which you want to list devices. - # @param created_before Timestamp by which to limit returned devices. Returns devices created before this timestamp. - # @param custom_metadata_has Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices. # @param customer_key Customer key for which you want to list devices. - # @param device_ids Array of device IDs for which you want to list devices. # @param device_type Device type by which you want to filter thermostat devices. # @param device_types Array of device types by which you want to filter thermostat devices. - # @param limit Numerical limit on the number of devices to return. # @param manufacturer Manufacturer by which you want to filter thermostat devices. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param search String for which to search. Filters returned devices to include all records that satisfy a partial match using `device_id` (full or partial UUID prefix, minimum 4 characters), `connected_account_id`, `display_name`, `custom_metadata` or `location.location_name`. - # @param space_id ID of the space for which you want to list devices. - # @param unstable_location_id - # @deprecated unstable_location_id: Use `space_id`. - # @param user_identifier_key Your own internal user ID for the user for which you want to list devices. # @return [Seam::Resources::Device] OK - def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_key: nil, device_ids: nil, device_type: nil, device_types: nil, limit: nil, manufacturer: nil, page_cursor: nil, search: nil, space_id: nil, unstable_location_id: nil, user_identifier_key: nil) - res = @client.post("/thermostats/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_key: customer_key, device_ids: device_ids, device_type: device_type, device_types: device_types, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, search: search, space_id: space_id, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact) + def list(connect_webview_id: nil, connected_account_id: nil, customer_key: nil, device_type: nil, device_types: nil, manufacturer: nil) + res = @client.post("/thermostats/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, customer_key: customer_key, device_type: device_type, device_types: device_types, manufacturer: manufacturer}.compact) Seam::Resources::Device.load_from_response(res.body["devices"]) end From 3dfc1eb2c6d5bdd8031be9446031be6463c7f1ac Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Wed, 12 Aug 2026 23:18:03 -0700 Subject: [PATCH 3/5] feat: Annotate property and param types --- codegen/layouts/partials/resource-class.hbs | 10 +++ codegen/layouts/resource.hbs | 10 +++ codegen/lib/handlebars-helpers.ts | 77 ++++++++++++++++++++- codegen/lib/merge-properties.ts | 7 ++ codegen/lib/routes.ts | 2 + codegen/lib/ruby-client.ts | 1 + 6 files changed, 105 insertions(+), 2 deletions(-) diff --git a/codegen/layouts/partials/resource-class.hbs b/codegen/layouts/partials/resource-class.hbs index 4302047..4db4cf0 100644 --- a/codegen/layouts/partials/resource-class.hbs +++ b/codegen/layouts/partials/resource-class.hbs @@ -3,15 +3,24 @@ {{> resource-class}} {{/each}} {{#each resourceAccessors}} +{{#if description}} +{{{rubyDoc description ../docIndent}}} +{{/if}} +{{../bodyIndent}}# @return [{{rubyResourceType this}}] {{../bodyIndent}}resource_accessor :{{name}}, {{className}} {{/each}} {{#each resourceListAccessors}} +{{#if description}} +{{{rubyDoc description ../docIndent}}} +{{/if}} +{{../bodyIndent}}# @return [{{rubyResourceType this}}] {{../bodyIndent}}resource_list_accessor :{{name}}, {{className}} {{/each}} {{#each accessors}} {{#if description}} {{{rubyDoc description ../docIndent}}} {{/if}} +{{../bodyIndent}}# @return [{{rubyPropertyType this}}] {{#if isDeprecated}} {{{rubyDeprecatedDoc this ../docIndent}}} {{/if}} @@ -21,6 +30,7 @@ {{#if description}} {{{rubyDoc description ../docIndent}}} {{/if}} +{{../bodyIndent}}# @return [{{rubyPropertyType this}}] {{#if isDeprecated}} {{{rubyDeprecatedDoc this ../docIndent}}} {{/if}} diff --git a/codegen/layouts/resource.hbs b/codegen/layouts/resource.hbs index 1356100..422e59e 100644 --- a/codegen/layouts/resource.hbs +++ b/codegen/layouts/resource.hbs @@ -13,15 +13,24 @@ module Seam {{> resource-class}} {{/each}} {{#each resourceAccessors}} +{{#if description}} +{{{rubyDoc description 6}}} +{{/if}} + # @return [{{rubyResourceType this}}] resource_accessor :{{name}}, {{className}} {{/each}} {{#each resourceListAccessors}} +{{#if description}} +{{{rubyDoc description 6}}} +{{/if}} + # @return [{{rubyResourceType this}}] resource_list_accessor :{{name}}, {{className}} {{/each}} {{#each accessors}} {{#if description}} {{{rubyDoc description 6}}} {{/if}} + # @return [{{rubyPropertyType this}}] {{#if isDeprecated}} {{{rubyDeprecatedDoc this 6}}} {{/if}} @@ -32,6 +41,7 @@ module Seam {{#if description}} {{{rubyDoc description 6}}} {{/if}} + # @return [{{rubyPropertyType this}}] {{#if isDeprecated}} {{{rubyDeprecatedDoc this 6}}} {{/if}} diff --git a/codegen/lib/handlebars-helpers.ts b/codegen/lib/handlebars-helpers.ts index dedce68..6444abb 100644 --- a/codegen/lib/handlebars-helpers.ts +++ b/codegen/lib/handlebars-helpers.ts @@ -1,3 +1,5 @@ +import type { Parameter, Property } from '@seamapi/blueprint' + export const identity = (x: unknown): unknown => x export interface Documented { @@ -27,8 +29,79 @@ export const rubyDeprecatedDoc = ( ) : '' +const nullable = ( + type: string, + value: { isOptional: boolean; isNullable: boolean }, +): string => (value.isOptional || value.isNullable ? `${type}, nil` : type) + +const scalarType = (format: string, isInt = false): string => { + switch (format) { + case 'boolean': + return 'Boolean' + case 'number': + return isInt ? 'Integer' : 'Float' + case 'datetime': + return 'Time' + case 'id': + case 'string': + case 'enum': + return 'String' + case 'record': + case 'object': + return 'Hash' + default: + return 'Object' + } +} + +export const rubyPropertyType = (property: Property): string => { + const type = + property.format === 'list' + ? `Array<${scalarType(property.itemFormat, property.itemFormat === 'number' && property.isItemInt)}>` + : scalarType( + property.format, + property.format === 'number' && property.isInt, + ) + // BaseResource normalizes response lists to [] even when the API sends nil. + return nullable( + type, + property.format === 'list' + ? { ...property, isOptional: false, isNullable: false } + : property, + ) +} + +export const rubyResourceType = ( + property: Property & { className: string }, +): string => { + const type = + property.format === 'list' + ? `Array<${property.className}>` + : property.className + return nullable( + type, + property.format === 'list' + ? { ...property, isOptional: false, isNullable: false } + : property, + ) +} + +export const rubyParameterType = (parameter: Parameter): string => { + const type = + parameter.format === 'list' + ? `Array<${scalarType(parameter.itemFormat, parameter.itemFormat === 'number' && parameter.isItemInt)}>` + : scalarType( + parameter.format, + parameter.format === 'number' && parameter.isInt, + ) + return nullable(type, { + isOptional: !parameter.isRequired, + isNullable: parameter.isNullable, + }) +} + export const rubyParamDoc = ( - parameter: Documented & { name: string }, + parameter: Documented & { name: string; rubyType?: string }, indentation: number, ): string => { const [firstLine = '', ...remainingLines] = parameter.description.split('\n') @@ -39,7 +112,7 @@ export const rubyParamDoc = ( : [] return comment( [ - `@param ${parameter.name} ${firstLine}`.trimEnd(), + `@param ${parameter.name}${parameter.rubyType == null ? '' : ` [${parameter.rubyType}]`} ${firstLine}`.trimEnd(), ...remainingLines, ...deprecation, ], diff --git a/codegen/lib/merge-properties.ts b/codegen/lib/merge-properties.ts index 70c7bd8..9cca103 100644 --- a/codegen/lib/merge-properties.ts +++ b/codegen/lib/merge-properties.ts @@ -10,6 +10,8 @@ interface MergedDocs { description: string isDeprecated: boolean deprecationMessage: string + isOptional: boolean + isNullable: boolean } // Each variant documents a property for its own case, which is accurate there @@ -34,6 +36,11 @@ const mergeDocs = (occurrences: Property[]): MergedDocs => { // is never dropped just because another variant omits it. isDeprecated: deprecated != null, deprecationMessage: deprecated?.deprecationMessage ?? '', + // A property is optional on the merged shape when any variant can omit it. + // Likewise, nullability must not be lost when the first occurrence is + // non-nullable. + isOptional: occurrences.some(({ isOptional }) => isOptional), + isNullable: occurrences.some(({ isNullable }) => isNullable), } } diff --git a/codegen/lib/routes.ts b/codegen/lib/routes.ts index b215330..23ff74b 100644 --- a/codegen/lib/routes.ts +++ b/codegen/lib/routes.ts @@ -22,6 +22,7 @@ import { setImportsLayoutContext } from './layouts/imports.js' import { setResourceLayoutContext } from './layouts/resource.js' import { setRoutesFileLayoutContext } from './layouts/routes-file.js' import { mergeProperties } from './merge-properties.js' +import { rubyParameterType } from './handlebars-helpers.js' import type { ClientMethod, ClientModel } from './ruby-client.js' interface Metadata { @@ -217,6 +218,7 @@ const createClientMethod = (endpoint: Endpoint): ClientMethod => { description: parameter.description, isDeprecated: parameter.isDeprecated, deprecationMessage: parameter.deprecationMessage, + rubyType: rubyParameterType(parameter), required: parameter.isRequired, position: endpoint.name === 'get' && parameter.name === `${returnPath}_id` diff --git a/codegen/lib/ruby-client.ts b/codegen/lib/ruby-client.ts index db8db39..60a459f 100644 --- a/codegen/lib/ruby-client.ts +++ b/codegen/lib/ruby-client.ts @@ -7,6 +7,7 @@ export interface ClientMethodParameter { description: string isDeprecated: boolean deprecationMessage: string + rubyType?: string required?: boolean | undefined position?: number | undefined } From 43dd75d7d2e0a0691be9dfc571ab76720f7c4a51 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 13 Aug 2026 06:19:09 +0000 Subject: [PATCH 4/5] ci: Format code --- codegen/lib/routes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegen/lib/routes.ts b/codegen/lib/routes.ts index 23ff74b..38a882c 100644 --- a/codegen/lib/routes.ts +++ b/codegen/lib/routes.ts @@ -17,12 +17,12 @@ import { pascalCase } from 'change-case' import type Metalsmith from 'metalsmith' import { convertCustomResourceName } from './custom-resource-name-conversions.js' +import { rubyParameterType } from './handlebars-helpers.js' import { setClientLayoutContext } from './layouts/client.js' import { setImportsLayoutContext } from './layouts/imports.js' import { setResourceLayoutContext } from './layouts/resource.js' import { setRoutesFileLayoutContext } from './layouts/routes-file.js' import { mergeProperties } from './merge-properties.js' -import { rubyParameterType } from './handlebars-helpers.js' import type { ClientMethod, ClientModel } from './ruby-client.js' interface Metadata { From c9f7f06ac12479a3065da52e32f2533405fc6e59 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 13 Aug 2026 06:19:53 +0000 Subject: [PATCH 5/5] ci: Generate code --- lib/seam/resources/access_code.rb | 74 +++ lib/seam/resources/access_grant.rb | 60 ++ lib/seam/resources/access_method.rb | 39 ++ lib/seam/resources/acs_access_group.rb | 45 ++ lib/seam/resources/acs_credential.rb | 57 ++ lib/seam/resources/acs_encoder.rb | 11 + lib/seam/resources/acs_entrance.rb | 95 +++ lib/seam/resources/acs_system.rb | 36 ++ lib/seam/resources/acs_user.rb | 66 ++ lib/seam/resources/action_attempt.rb | 170 +++++ lib/seam/resources/batch.rb | 24 + lib/seam/resources/client_session.rb | 12 + lib/seam/resources/connect_webview.rb | 19 + lib/seam/resources/connected_account.rb | 50 ++ lib/seam/resources/customer_portal.rb | 5 + lib/seam/resources/device.rb | 600 ++++++++++++++++++ lib/seam/resources/device_provider.rb | 24 + lib/seam/resources/event.rb | 140 ++++ lib/seam/resources/instant_key.rb | 13 + lib/seam/resources/noise_threshold.rb | 7 + lib/seam/resources/pagination.rb | 3 + lib/seam/resources/phone.rb | 29 + lib/seam/resources/space.rb | 19 + .../resources/thermostat_daily_program.rb | 9 + lib/seam/resources/thermostat_schedule.rb | 15 + lib/seam/resources/unmanaged_access_code.rb | 51 ++ lib/seam/resources/unmanaged_access_grant.rb | 56 ++ lib/seam/resources/unmanaged_access_method.rb | 36 ++ lib/seam/resources/unmanaged_device.rb | 78 +++ lib/seam/resources/unmanaged_user_identity.rb | 20 + lib/seam/resources/user_identity.rb | 21 + lib/seam/resources/webhook.rb | 4 + lib/seam/resources/workspace.rb | 15 + lib/seam/routes/access_codes.rb | 128 ++-- lib/seam/routes/access_codes_simulate.rb | 6 +- lib/seam/routes/access_codes_unmanaged.rb | 36 +- lib/seam/routes/access_grants.rb | 84 +-- lib/seam/routes/access_grants_unmanaged.rb | 20 +- lib/seam/routes/access_methods.rb | 42 +- lib/seam/routes/access_methods_unmanaged.rb | 10 +- lib/seam/routes/acs_access_groups.rb | 28 +- lib/seam/routes/acs_credentials.rb | 66 +- lib/seam/routes/acs_encoders.rb | 30 +- lib/seam/routes/acs_encoders_simulate.rb | 22 +- lib/seam/routes/acs_entrances.rb | 38 +- lib/seam/routes/acs_systems.rb | 16 +- lib/seam/routes/acs_users.rb | 96 +-- lib/seam/routes/action_attempts.rb | 10 +- lib/seam/routes/client_sessions.rb | 58 +- lib/seam/routes/connect_webviews.rb | 36 +- lib/seam/routes/connected_accounts.rb | 34 +- .../routes/connected_accounts_simulate.rb | 2 +- lib/seam/routes/customers.rb | 100 +-- lib/seam/routes/devices.rb | 52 +- lib/seam/routes/devices_simulate.rb | 14 +- lib/seam/routes/devices_unmanaged.rb | 34 +- lib/seam/routes/events.rb | 62 +- lib/seam/routes/instant_keys.rb | 8 +- lib/seam/routes/locks.rb | 26 +- lib/seam/routes/locks_simulate.rb | 6 +- lib/seam/routes/noise_sensors.rb | 12 +- .../routes/noise_sensors_noise_thresholds.rb | 34 +- lib/seam/routes/noise_sensors_simulate.rb | 2 +- lib/seam/routes/phones.rb | 8 +- lib/seam/routes/phones_simulate.rb | 8 +- lib/seam/routes/spaces.rb | 74 +-- lib/seam/routes/thermostats.rb | 140 ++-- lib/seam/routes/thermostats_daily_programs.rb | 14 +- lib/seam/routes/thermostats_schedules.rb | 36 +- lib/seam/routes/thermostats_simulate.rb | 18 +- lib/seam/routes/user_identities.rb | 70 +- lib/seam/routes/user_identities_unmanaged.rb | 16 +- lib/seam/routes/webhooks.rb | 12 +- lib/seam/routes/workspaces.rb | 32 +- 74 files changed, 2673 insertions(+), 770 deletions(-) diff --git a/lib/seam/resources/access_code.rb b/lib/seam/resources/access_code.rb index 1867c65..85a3183 100644 --- a/lib/seam/resources/access_code.rb +++ b/lib/seam/resources/access_code.rb @@ -14,155 +14,229 @@ module Resources class AccessCode < BaseResource class DormakabaOracodeMetadata < BaseResource # Indicates whether the stay can be cancelled via the Dormakaba Oracode API. + # @return [Boolean, nil] attr_accessor :is_cancellable # Indicates whether early check-in is available for this stay. + # @return [Boolean, nil] attr_accessor :is_early_checkin_able # Indicates whether the stay can be extended via the Dormakaba Oracode API. + # @return [Boolean, nil] attr_accessor :is_extendable # Indicates whether the access code can be overridden. When false, the maximum number of overrides has been reached. + # @return [Boolean, nil] attr_accessor :is_overridable # Dormakaba Oracode site name associated with this access code. + # @return [String, nil] attr_accessor :site_name # Dormakaba Oracode stay ID associated with this access code. + # @return [Float, nil] attr_accessor :stay_id # Dormakaba Oracode user level ID associated with this access code. + # @return [String, nil] attr_accessor :user_level_id # Dormakaba Oracode user level name associated with this access code. + # @return [String, nil] attr_accessor :user_level_name end class Errors < BaseResource class ModifiedFields < BaseResource # The name of the field that was changed (e.g. `code`, `starts_at`, `ends_at`). + # @return [String] attr_accessor :field # The previous value of the field. + # @return [String, nil] attr_accessor :from # The new value of the field. + # @return [String, nil] attr_accessor :to end + # List of fields that were changed externally, with their previous and new values. + # @return [Array] resource_list_accessor :modified_fields, ModifiedFields # Indicates the type of external modification. `modified` means the code's PIN or schedule was changed. `removed` means the code was deleted from the device. + # @return [String, nil] attr_accessor :change_type # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Indicates that this is an access code error. + # @return [Boolean] attr_accessor :is_access_code_error # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + # @return [Boolean, nil] attr_accessor :is_bridge_error + # @return [Boolean, nil] attr_accessor :is_connected_account_error + # @return [Boolean] attr_accessor :is_device_error # ID of the managed access code that conflicts with this managed access code, when Seam can identify it. + # @return [String, nil] attr_accessor :managed_access_code_id # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # ID of the unmanaged access code that conflicts with this managed access code, when Seam can identify it. + # @return [String, nil] attr_accessor :unmanaged_access_code_id # Date and time at which Seam created the error. + # @return [Time, nil] date_accessor :created_at end class PendingMutations < BaseResource class From < BaseResource # Previous PIN code. + # @return [String, nil] attr_accessor :code # Previous access code name. + # @return [String, nil] attr_accessor :name # Previous end time for the access code. + # @return [Time, nil] date_accessor :ends_at # Previous start time for the access code. + # @return [Time, nil] date_accessor :starts_at end class To < BaseResource # New PIN code. + # @return [String, nil] attr_accessor :code # New access code name. + # @return [String, nil] attr_accessor :name # New end time for the access code. + # @return [Time, nil] date_accessor :ends_at # New start time for the access code. + # @return [Time, nil] date_accessor :starts_at end + # @return [From] resource_accessor :from, From + # @return [To] resource_accessor :to, To # Detailed description of the mutation. + # @return [String] attr_accessor :message + # @return [String] attr_accessor :mutation_code # Date and time at which the mutation was created. + # @return [Time] date_accessor :created_at # Date and time at which Seam will attempt to program this access code on the device. + # @return [Time] date_accessor :scheduled_at end class Warnings < BaseResource class ModifiedFields < BaseResource # The name of the field that was changed (e.g. `code`, `starts_at`, `ends_at`). + # @return [String] attr_accessor :field # The previous value of the field. + # @return [String, nil] attr_accessor :from # The new value of the field. + # @return [String, nil] attr_accessor :to end + # List of fields that were changed externally, with their previous and new values. + # @return [Array] resource_list_accessor :modified_fields, ModifiedFields # Indicates the type of external modification. `modified` means the code's PIN or schedule was changed. `removed` means the code was deleted from the device. + # @return [String, nil] attr_accessor :change_type # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time, nil] date_accessor :created_at end + # Metadata for a dormakaba Oracode managed access code. Only present for access codes from dormakaba Oracode devices. + # @return [DormakabaOracodeMetadata, nil] resource_accessor :dormakaba_oracode_metadata, DormakabaOracodeMetadata + # Errors associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). + # @return [Array] resource_list_accessor :errors, Errors + # Collection of pending mutations for the access code. Indicates changes that Seam is in the process of pushing to the device. + # @return [Array] resource_list_accessor :pending_mutations, PendingMutations + # Warnings associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). + # @return [Array] resource_list_accessor :warnings, Warnings # Unique identifier for the access code. + # @return [String] attr_accessor :access_code_id # Code used for access. Typically, a numeric or alphanumeric string. + # @return [String, nil] attr_accessor :code # Unique identifier for a group of access codes that share the same code. + # @return [String, nil] attr_accessor :common_code_key # Unique identifier for the device associated with the access code. + # @return [String] attr_accessor :device_id # Indicates whether the access code is a backup code. + # @return [Boolean, nil] attr_accessor :is_backup # Indicates whether a backup access code is available for use if the primary access code is lost or compromised. + # @return [Boolean] attr_accessor :is_backup_access_code_available # Indicates whether changes to the access code from external sources are permitted. + # @return [Boolean] attr_accessor :is_external_modification_allowed # Indicates whether Seam manages the access code. + # @return [Boolean] attr_accessor :is_managed # Indicates whether the access code is intended for use in offline scenarios. If `true`, this code can be created on a device without a network connection. + # @return [Boolean] attr_accessor :is_offline_access_code # Indicates whether the access code can only be used once. If `true`, the code becomes invalid after the first use. + # @return [Boolean] attr_accessor :is_one_time_use # Indicates whether the code is set on the device according to a preconfigured schedule. + # @return [Boolean, nil] attr_accessor :is_scheduled_on_device # Indicates whether the access code is waiting for a code assignment. + # @return [Boolean, nil] attr_accessor :is_waiting_for_code_assignment # Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. Note that the name provided on Seam is used to identify the code on Seam and is not necessarily the name that will appear in the lock provider's app or on the device. This is because lock providers may have constraints on names, such as length, uniqueness, or characters that can be used. In addition, some lock providers may break down names into components such as `first_name` and `last_name`. To provide a consistent experience, Seam identifies the code on Seam by its name but may modify the name that appears on the lock provider's app or on the device. For example, Seam may add additional characters or truncate the name to meet provider constraints. To help your users identify codes set by Seam, Seam provides the name exactly as it appears on the lock provider's app or on the device as a separate property called `appearance`. This is an object with a `name` property and, optionally, `first_name` and `last_name` properties (for providers that break down a name into components). + # @return [String, nil] attr_accessor :name # Identifier of the pulled backup access code. Used to associate the pulled backup access code with the original access code. + # @return [String, nil] attr_accessor :pulled_backup_access_code_id # Current status of the access code within the operational lifecycle. Values are `setting`, a transitional phase that indicates that the code is being configured or activated; `set`, which indicates that the code is active and operational; `unset`, which indicates a deactivated or unused state, either before activation or after deliberate deactivation; `removing`, which indicates a transitional period in which the code is being deleted or made inactive; and `unknown`, which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. See also [Lifecycle of Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/lifecycle-of-access-codes). + # @return [String] attr_accessor :status # Type of the access code. `ongoing` access codes are active continuously until deactivated manually. `time_bound` access codes have a specific duration. + # @return [String] attr_accessor :type # Unique identifier for the Seam workspace associated with the access code. + # @return [String] attr_accessor :workspace_id # Date and time at which the access code was created. + # @return [Time] date_accessor :created_at # Date and time after which the time-bound access code becomes inactive. + # @return [Time, nil] date_accessor :ends_at # Date and time at which the time-bound access code becomes active. + # @return [Time, nil] date_accessor :starts_at end end diff --git a/lib/seam/resources/access_grant.rb b/lib/seam/resources/access_grant.rb index f74b2a9..ac89fac 100644 --- a/lib/seam/resources/access_grant.rb +++ b/lib/seam/resources/access_grant.rb @@ -6,128 +6,188 @@ module Resources class AccessGrant < BaseResource class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # IDs of the devices that did not receive an access code at grant creation. Use these to identify which specific devices failed when the message reports a partial failure. + # @return [Array] attr_accessor :missing_device_ids # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class PendingMutations < BaseResource class From < BaseResource # Previous device IDs where access codes existed. + # @return [Array] attr_accessor :device_ids # Previous end time for access. + # @return [Time, nil] date_accessor :ends_at # Previous start time for access. + # @return [Time, nil] date_accessor :starts_at end class To < BaseResource # Common code key to ensure PIN code reuse across devices. + # @return [String, nil] attr_accessor :common_code_key # New device IDs where access codes should be created. + # @return [Array] attr_accessor :device_ids # New end time for access. + # @return [Time, nil] date_accessor :ends_at # New start time for access. + # @return [Time, nil] date_accessor :starts_at end + # @return [From] resource_accessor :from, From + # @return [To] resource_accessor :to, To # IDs of the access methods being updated. + # @return [Array] attr_accessor :access_method_ids # Detailed description of the mutation. + # @return [String] attr_accessor :message + # @return [String] attr_accessor :mutation_code # Date and time at which the mutation was created. + # @return [Time] date_accessor :created_at end class RequestedAccessMethods < BaseResource # Specific PIN code to use for this access method. Only applicable when mode is 'code'. + # @return [String, nil] attr_accessor :code # IDs of the access methods created for the requested access method. + # @return [Array] attr_accessor :created_access_method_ids # Display name of the access method. + # @return [String] attr_accessor :display_name # Maximum number of times the instant key can be used. Only applicable when mode is 'mobile_key'. Defaults to 1 if not specified. + # @return [Integer, nil] attr_accessor :instant_key_max_use_count # Access method mode. Supported values: `code`, `card`, `mobile_key`, `cloud_key`. + # @return [String] attr_accessor :mode # Date and time at which the requested access method was added to the Access Grant. + # @return [Time] date_accessor :created_at end class Warnings < BaseResource class FailedDevices < BaseResource # Device whose access code could not be revoked. + # @return [String] attr_accessor :device_id # Reason the access code could not be revoked (e.g. `offline_access_code_not_revocable`). + # @return [String] attr_accessor :error_code # Human-readable description of why revocation failed. + # @return [String] attr_accessor :message end + # Devices whose access codes could not be revoked during reconciliation. Present when the provider does not support revoking an offline access code (e.g. Dormakaba oracode with exhausted override budget). + # @return [Array] resource_list_accessor :failed_devices, FailedDevices # IDs of the access methods being updated. + # @return [Array] attr_accessor :access_method_ids + # @return [String] attr_accessor :device_id # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # The new PIN code that was assigned instead. + # @return [String] attr_accessor :new_code # The originally requested PIN code that was unavailable. + # @return [String] attr_accessor :original_code # Specific reason why the grant's times are not programmable on the device. + # @return [String] attr_accessor :reason # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access). + # @return [Array] resource_list_accessor :errors, Errors + # List of pending mutations for the access grant. This shows updates that are in progress. + # @return [Array] resource_list_accessor :pending_mutations, PendingMutations + # Access methods that the user requested for the Access Grant. + # @return [Array] resource_list_accessor :requested_access_methods, RequestedAccessMethods + # Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access). + # @return [Array] resource_list_accessor :warnings, Warnings # ID of the Access Grant. + # @return [String] attr_accessor :access_grant_id # Unique key for the access grant within the workspace. + # @return [String, nil] attr_accessor :access_grant_key # IDs of the access methods created for the Access Grant. + # @return [Array] attr_accessor :access_method_ids # Client Session Token. Only returned if the Access Grant has a mobile_key access method. + # @return [String, nil] attr_accessor :client_session_token # ID of the customization profile associated with the Access Grant. + # @return [String, nil] attr_accessor :customization_profile_id # Display name of the Access Grant. + # @return [String] attr_accessor :display_name # Instant Key URL. Only returned if the Access Grant has a single mobile_key access_method. + # @return [String, nil] attr_accessor :instant_key_url + # @return [Array] # @deprecated Use `space_ids`. attr_accessor :location_ids # Name of the Access Grant. If not provided, the display name will be computed. + # @return [String, nil] attr_accessor :name # Reservation key for the access grant. + # @return [String, nil] attr_accessor :reservation_key # IDs of the spaces to which the Access Grant gives access. + # @return [Array] attr_accessor :space_ids # ID of user identity to which the Access Grant gives access. + # @return [String] attr_accessor :user_identity_id # ID of the Seam workspace associated with the Access Grant. + # @return [String] attr_accessor :workspace_id # Date and time at which the Access Grant was created. + # @return [Time] date_accessor :created_at # Date and time at which the Access Grant ends. + # @return [Time, nil] date_accessor :ends_at # Date and time at which the Access Grant starts. + # @return [Time] date_accessor :starts_at end end diff --git a/lib/seam/resources/access_method.rb b/lib/seam/resources/access_method.rb index a57d668..eafafb9 100644 --- a/lib/seam/resources/access_method.rb +++ b/lib/seam/resources/access_method.rb @@ -6,84 +6,123 @@ module Resources class AccessMethod < BaseResource class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class PendingMutations < BaseResource class From < BaseResource + # @return [Array] attr_accessor :device_ids # Previous end time for access. + # @return [Time, nil] date_accessor :ends_at # Previous start time for access. + # @return [Time, nil] date_accessor :starts_at end class To < BaseResource + # @return [Array] attr_accessor :device_ids # New end time for access. + # @return [Time, nil] date_accessor :ends_at # New start time for access. + # @return [Time, nil] date_accessor :starts_at end + # @return [From] resource_accessor :from, From + # @return [To] resource_accessor :to, To # Detailed description of the mutation. + # @return [String] attr_accessor :message + # @return [String] attr_accessor :mutation_code # Date and time at which the mutation was created. + # @return [Time] date_accessor :created_at end class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # ID of the original access method from which this backup access method was split, if applicable. + # @return [String, nil] attr_accessor :original_access_method_id # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Errors associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). + # @return [Array] resource_list_accessor :errors, Errors + # Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress. + # @return [Array] resource_list_accessor :pending_mutations, PendingMutations + # Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). + # @return [Array] resource_list_accessor :warnings, Warnings # ID of the access method. + # @return [String] attr_accessor :access_method_id # Token of the client session associated with the access method. + # @return [String, nil] attr_accessor :client_session_token # The actual PIN code for code access methods. + # @return [String, nil] attr_accessor :code # ID of the customization profile associated with the access method. + # @return [String, nil] attr_accessor :customization_profile_id # Display name of the access method. + # @return [String] attr_accessor :display_name # URL of the Instant Key for mobile key access methods. + # @return [String, nil] attr_accessor :instant_key_url # Indicates whether an existing card credential must be assigned to this access method before it can be issued. Only applies to card-mode access methods on systems that support credential assignment. + # @return [Boolean, nil] attr_accessor :is_assignment_required # Indicates whether encoding with an card encoder is required to issue or reissue the plastic card associated with the access method. + # @return [Boolean, nil] attr_accessor :is_encoding_required # Indicates whether the access method has been issued. + # @return [Boolean] attr_accessor :is_issued # Indicates whether the access method is ready for card assignment. This is true when the access method is in card mode, has not yet been issued, and the system supports credential assignment. + # @return [Boolean, nil] attr_accessor :is_ready_for_assignment # Indicates whether the access method is ready to be encoded. This is true when the credential has been created and the card has not yet been issued. + # @return [Boolean, nil] attr_accessor :is_ready_for_encoding # Access method mode. Supported values: `code`, `card`, `mobile_key`, `cloud_key`. + # @return [String] attr_accessor :mode # ID of the Seam workspace associated with the access method. + # @return [String] attr_accessor :workspace_id # Date and time at which the access method was created. + # @return [Time] date_accessor :created_at # Date and time at which the access method was issued. + # @return [Time, nil] date_accessor :issued_at end end diff --git a/lib/seam/resources/acs_access_group.rb b/lib/seam/resources/acs_access_group.rb index 2c1157f..99c2bd2 100644 --- a/lib/seam/resources/acs_access_group.rb +++ b/lib/seam/resources/acs_access_group.rb @@ -10,97 +10,142 @@ module Resources class AcsAccessGroup < BaseResource class AccessSchedule < BaseResource # Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [Time, nil] date_accessor :ends_at # Date and time at which the user's access starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [Time] date_accessor :starts_at end class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class PendingMutations < BaseResource class From < BaseResource # Old entrance ID. + # @return [String, nil] attr_accessor :acs_entrance_id # Old user ID. + # @return [String, nil] attr_accessor :acs_user_id # Name of the access group. + # @return [String, nil] attr_accessor :name # Ending time for the access schedule. + # @return [Time, nil] date_accessor :ends_at # Starting time for the access schedule. + # @return [Time, nil] date_accessor :starts_at end class To < BaseResource # New entrance ID. + # @return [String, nil] attr_accessor :acs_entrance_id # New user ID. + # @return [String, nil] attr_accessor :acs_user_id # Name of the access group. + # @return [String, nil] attr_accessor :name # Ending time for the access schedule. + # @return [Time, nil] date_accessor :ends_at # Starting time for the access schedule. + # @return [Time, nil] date_accessor :starts_at end + # @return [From] resource_accessor :from, From + # @return [To] resource_accessor :to, To # ID of the user involved in the scheduled change. + # @return [String] attr_accessor :acs_user_id # Detailed description of the mutation. + # @return [String] attr_accessor :message + # @return [String] attr_accessor :mutation_code # Whether the user is scheduled to be added to or removed from this access group. + # @return [String] attr_accessor :variant # Date and time at which the mutation was created. + # @return [Time] date_accessor :created_at end class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # `starts_at` and `ends_at` timestamps for the access group's access. + # @return [AccessSchedule, nil] resource_accessor :access_schedule, AccessSchedule + # Errors associated with the `acs_access_group`. + # @return [Array] resource_list_accessor :errors, Errors + # Collection of pending mutations for the access group. Represents operations that have been requested but not yet completed on the integrated access system. + # @return [Array] resource_list_accessor :pending_mutations, PendingMutations + # Warnings associated with the `acs_access_group`. + # @return [Array] resource_list_accessor :warnings, Warnings + # @return [String] # @deprecated Use `external_type`. attr_accessor :access_group_type + # @return [String] # @deprecated Use `external_type_display_name`. attr_accessor :access_group_type_display_name # ID of the access group. + # @return [String] attr_accessor :acs_access_group_id # ID of the access control system that contains the access group. + # @return [String] attr_accessor :acs_system_id # ID of the connected account that contains the access group. + # @return [String] attr_accessor :connected_account_id # Display name for the access group. + # @return [String] attr_accessor :display_name # Brand-specific terminology for the access group type. + # @return [String] attr_accessor :external_type # Display name that corresponds to the brand-specific terminology for the access group type. + # @return [String] attr_accessor :external_type_display_name # Indicates whether Seam manages the access group. + # @return [Boolean] attr_accessor :is_managed # Name of the access group. + # @return [String] attr_accessor :name # ID of the workspace that contains the access group. + # @return [String] attr_accessor :workspace_id # Date and time at which the access group was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/acs_credential.rb b/lib/seam/resources/acs_credential.rb index 9485e68..6d34bbf 100644 --- a/lib/seam/resources/acs_credential.rb +++ b/lib/seam/resources/acs_credential.rb @@ -12,118 +12,175 @@ module Resources class AcsCredential < BaseResource class AkilesMetadata < BaseResource # ID of the Akiles member PIN. + # @return [String, nil] attr_accessor :member_pin_id end class AssaAbloyVostioMetadata < BaseResource # Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. + # @return [Boolean, nil] attr_accessor :auto_join # Names of the doors to which to grant access in the Vostio access system. + # @return [Array] attr_accessor :door_names # Endpoint ID in the Vostio access system. + # @return [String, nil] attr_accessor :endpoint_id # Key ID in the Vostio access system. + # @return [String, nil] attr_accessor :key_id # Key issuing request ID in the Vostio access system. + # @return [String, nil] attr_accessor :key_issuing_request_id # IDs of the guest entrances to override in the Vostio access system. + # @return [Array] attr_accessor :override_guest_acs_entrance_ids end class Errors < BaseResource + # @return [String] attr_accessor :error_code + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class VisionlineMetadata < BaseResource # Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. + # @return [Boolean, nil] attr_accessor :auto_join # Card function type in the Visionline access system. + # @return [String, nil] attr_accessor :card_function_type # ID of the card in the Visionline access system. + # @return [String, nil] attr_accessor :card_id # Common entrance IDs in the Visionline access system. + # @return [Array] attr_accessor :common_acs_entrance_ids # ID of the credential in the Visionline access system. + # @return [String, nil] attr_accessor :credential_id # Guest entrance IDs in the Visionline access system. + # @return [Array] attr_accessor :guest_acs_entrance_ids # Indicates whether the credential is valid. + # @return [Boolean, nil] attr_accessor :is_valid # IDs of the credentials to which you want to join. + # @return [Array] attr_accessor :joiner_acs_credential_ids end class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # The PIN code that was assigned instead. + # @return [String] attr_accessor :new_code # The originally requested PIN code that could not be used. + # @return [String] attr_accessor :original_code # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Akiles-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [AkilesMetadata, nil] resource_accessor :akiles_metadata, AkilesMetadata + # Vostio-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [AssaAbloyVostioMetadata, nil] resource_accessor :assa_abloy_vostio_metadata, AssaAbloyVostioMetadata + # Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [VisionlineMetadata, nil] resource_accessor :visionline_metadata, VisionlineMetadata + # Errors associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [Array] resource_list_accessor :errors, Errors + # Warnings associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [Array] resource_list_accessor :warnings, Warnings # Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`. + # @return [String] attr_accessor :access_method # ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String] attr_accessor :acs_credential_id # ID of the credential pool to which the credential belongs. + # @return [String, nil] attr_accessor :acs_credential_pool_id # ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String] attr_accessor :acs_system_id # ID of the [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. + # @return [String, nil] attr_accessor :acs_user_id # Number of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String, nil] attr_accessor :card_number # Access (PIN) code for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String, nil] attr_accessor :code # ID of the [connected account](https://docs.seam.co/core-concepts/connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. + # @return [String] attr_accessor :connected_account_id # Display name that corresponds to the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. + # @return [String] attr_accessor :display_name # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. + # @return [String, nil] attr_accessor :ends_at # Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. + # @return [String, nil] attr_accessor :external_type # Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. + # @return [String, nil] attr_accessor :external_type_display_name # Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been encoded onto a card. + # @return [Boolean, nil] attr_accessor :is_issued # Indicates whether the latest state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider. + # @return [Boolean, nil] attr_accessor :is_latest_desired_state_synced_with_provider # Indicates whether Seam manages the credential. + # @return [Boolean] attr_accessor :is_managed # Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). + # @return [Boolean, nil] attr_accessor :is_multi_phone_sync_credential # Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. + # @return [Boolean, nil] attr_accessor :is_one_time_use # ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String, nil] attr_accessor :parent_acs_credential_id # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [String, nil] attr_accessor :starts_at # ID of the [user identity](https://docs.seam.co/api/user_identities) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. + # @return [String, nil] attr_accessor :user_identity_id # ID of the workspace that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String] attr_accessor :workspace_id # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created. + # @return [Time] date_accessor :created_at # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was encoded onto a card. + # @return [Time, nil] date_accessor :issued_at # Date and time at which the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider. + # @return [Time, nil] date_accessor :latest_desired_state_synced_with_provider_at end end diff --git a/lib/seam/resources/acs_encoder.rb b/lib/seam/resources/acs_encoder.rb index dac5293..1103218 100644 --- a/lib/seam/resources/acs_encoder.rb +++ b/lib/seam/resources/acs_encoder.rb @@ -19,26 +19,37 @@ module Resources class AcsEncoder < BaseResource class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end + # Errors associated with the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + # @return [Array] resource_list_accessor :errors, Errors # ID of the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + # @return [String] attr_accessor :acs_encoder_id # ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + # @return [String] attr_accessor :acs_system_id # ID of the connected account that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + # @return [String] attr_accessor :connected_account_id # Display name for the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + # @return [String] attr_accessor :display_name # ID of the workspace that contains the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). + # @return [String] attr_accessor :workspace_id # Date and time at which the [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/acs_entrance.rb b/lib/seam/resources/acs_entrance.rb index 9ce94d1..ab5bb15 100644 --- a/lib/seam/resources/acs_entrance.rb +++ b/lib/seam/resources/acs_entrance.rb @@ -9,193 +9,288 @@ class AcsEntrance < BaseResource class AkilesMetadata < BaseResource class Actions < BaseResource # ID of the gadget action. + # @return [String, nil] attr_accessor :id # Name of the gadget action. + # @return [String, nil] attr_accessor :name end + # Actions the gadget exposes (for example, open). + # @return [Array] resource_list_accessor :actions, Actions # ID of the Akiles gadget. + # @return [String, nil] attr_accessor :gadget_id # ID of the Akiles site the gadget belongs to. + # @return [String, nil] attr_accessor :site_id # Name of the Akiles site the gadget belongs to. + # @return [String, nil] attr_accessor :site_name end class AssaAbloyVostioMetadata < BaseResource # Name of the door in the Vostio access system. + # @return [String, nil] attr_accessor :door_name # Number of the door in the Vostio access system. + # @return [Float, nil] attr_accessor :door_number # Type of the door in the Vostio access system. + # @return [String, nil] attr_accessor :door_type # PMS ID of the door in the Vostio access system. + # @return [String, nil] attr_accessor :pms_id # Indicates whether keys are allowed to set the door in stand open mode in the Vostio access system. + # @return [Boolean, nil] attr_accessor :stand_open end class AvigilonAltaMetadata < BaseResource # Entry name for an Avigilon Alta system. + # @return [String, nil] attr_accessor :entry_name # Total count of entry relays for an Avigilon Alta system. + # @return [Float, nil] attr_accessor :entry_relays_total_count # Organization name for an Avigilon Alta system. + # @return [String, nil] attr_accessor :org_name # Site ID for an Avigilon Alta system. + # @return [Float, nil] attr_accessor :site_id # Site name for an Avigilon Alta system. + # @return [String, nil] attr_accessor :site_name # Zone ID for an Avigilon Alta system. + # @return [Float, nil] attr_accessor :zone_id # Zone name for an Avigilon Alta system. + # @return [String, nil] attr_accessor :zone_name end class BrivoMetadata < BaseResource # ID of the access point in the Brivo access system. + # @return [String, nil] attr_accessor :access_point_id # ID of the site that the access point belongs to. + # @return [Float, nil] attr_accessor :site_id # Name of the site that the access point belongs to. + # @return [String, nil] attr_accessor :site_name end class DormakabaAmbianceMetadata < BaseResource # Name of the access point in the dormakaba Ambiance access system. + # @return [String, nil] attr_accessor :access_point_name end class DormakabaCommunityMetadata < BaseResource # Type of access point profile in the dormakaba Community access system. + # @return [String, nil] attr_accessor :access_point_profile end class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class HotekMetadata < BaseResource # Display name of the entrance. + # @return [String, nil] attr_accessor :common_area_name # Display name of the entrance. + # @return [String, nil] attr_accessor :common_area_number # Room number of the entrance. + # @return [String, nil] attr_accessor :room_number end class LatchMetadata < BaseResource # Accessibility type in the Latch access system. + # @return [String, nil] attr_accessor :accessibility_type # Name of the door in the Latch access system. + # @return [String, nil] attr_accessor :door_name # Type of the door in the Latch access system. + # @return [String, nil] attr_accessor :door_type # Indicates whether the entrance is connected. + # @return [Boolean, nil] attr_accessor :is_connected end class SaltoKsMetadata < BaseResource # Battery level of the door access device. + # @return [String, nil] attr_accessor :battery_level # Name of the door in the Salto KS access system. + # @return [String, nil] attr_accessor :door_name # Indicates whether an intrusion alarm is active on the door. + # @return [Boolean, nil] attr_accessor :intrusion_alarm # Indicates whether the door is left open. + # @return [Boolean, nil] attr_accessor :left_open_alarm # Type of the lock in the Salto KS access system. + # @return [String, nil] attr_accessor :lock_type # Locked state of the door in the Salto KS access system. + # @return [String, nil] attr_accessor :locked_state # Indicates whether the door access device is online. + # @return [Boolean, nil] attr_accessor :online # Indicates whether privacy mode is enabled for the lock. + # @return [Boolean, nil] attr_accessor :privacy_mode end class SaltoSpaceMetadata < BaseResource # Indicates whether AuditOnKeys is enabled for the door in the Salto Space access system. + # @return [Boolean, nil] attr_accessor :audit_on_keys # Description of the door in the Salto Space access system. + # @return [String, nil] attr_accessor :door_description # Door ID in the Salto Space access system. + # @return [String, nil] attr_accessor :door_id # Name of the door in the Salto Space access system. + # @return [String, nil] attr_accessor :door_name # Description of the room in the Salto Space access system. + # @return [String, nil] attr_accessor :room_description # Name of the room in the Salto Space access system. + # @return [String, nil] attr_accessor :room_name end class VisionlineMetadata < BaseResource class Profiles < BaseResource # Door profile ID in the Visionline access system. + # @return [String, nil] attr_accessor :visionline_door_profile_id # Door profile type in the Visionline access system. + # @return [String, nil] attr_accessor :visionline_door_profile_type end + # Profile for the door in the Visionline access system. + # @return [Array] resource_list_accessor :profiles, Profiles # Category of the door in the Visionline access system. + # @return [String, nil] attr_accessor :door_category # Name of the door in the Visionline access system. + # @return [String, nil] attr_accessor :door_name end class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Akiles-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [AkilesMetadata, nil] resource_accessor :akiles_metadata, AkilesMetadata + # ASSA ABLOY Vostio-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [AssaAbloyVostioMetadata, nil] resource_accessor :assa_abloy_vostio_metadata, AssaAbloyVostioMetadata + # Avigilon Alta-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [AvigilonAltaMetadata, nil] resource_accessor :avigilon_alta_metadata, AvigilonAltaMetadata + # Brivo-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [BrivoMetadata, nil] resource_accessor :brivo_metadata, BrivoMetadata + # dormakaba Ambiance-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [DormakabaAmbianceMetadata, nil] resource_accessor :dormakaba_ambiance_metadata, DormakabaAmbianceMetadata + # dormakaba Community-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [DormakabaCommunityMetadata, nil] resource_accessor :dormakaba_community_metadata, DormakabaCommunityMetadata + # Hotek-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [HotekMetadata, nil] resource_accessor :hotek_metadata, HotekMetadata + # Latch-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [LatchMetadata, nil] resource_accessor :latch_metadata, LatchMetadata + # Salto KS-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [SaltoKsMetadata, nil] resource_accessor :salto_ks_metadata, SaltoKsMetadata + # Salto Space-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [SaltoSpaceMetadata, nil] resource_accessor :salto_space_metadata, SaltoSpaceMetadata + # Visionline-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [VisionlineMetadata, nil] resource_accessor :visionline_metadata, VisionlineMetadata + # Errors associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [Array] resource_list_accessor :errors, Errors + # Warnings associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [Array] resource_list_accessor :warnings, Warnings # ID of the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [String] attr_accessor :acs_entrance_id # ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [String] attr_accessor :acs_system_id # Indicates whether the ACS entrance can belong to a reservation via an access_grant.reservation_key. + # @return [Boolean, nil] attr_accessor :can_belong_to_reservation # Indicates whether the ACS entrance can be unlocked with card credentials. + # @return [Boolean, nil] attr_accessor :can_unlock_with_card # Indicates whether the ACS entrance can be unlocked with cloud key credentials. + # @return [Boolean, nil] attr_accessor :can_unlock_with_cloud_key # Indicates whether the ACS entrance can be unlocked with pin codes. + # @return [Boolean, nil] attr_accessor :can_unlock_with_code # Indicates whether the ACS entrance can be unlocked with mobile key credentials. + # @return [Boolean, nil] attr_accessor :can_unlock_with_mobile_key # ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [String] attr_accessor :connected_account_id # Display name for the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). + # @return [String] attr_accessor :display_name # Indicates whether the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) is currently locked. + # @return [Boolean, nil] attr_accessor :is_locked # IDs of the spaces that the entrance is in. + # @return [Array] attr_accessor :space_ids # Date and time at which the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/acs_system.rb b/lib/seam/resources/acs_system.rb index 56027ff..b54ce72 100644 --- a/lib/seam/resources/acs_system.rb +++ b/lib/seam/resources/acs_system.rb @@ -10,77 +10,113 @@ module Resources class AcsSystem < BaseResource class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Indicates whether the error is related to the [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + # @return [Boolean, nil] attr_accessor :is_bridge_error # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class Location < BaseResource # Time zone in which the [access control system](https://docs.seam.co/low-level-apis/access-systems) is located. + # @return [String, nil] attr_accessor :time_zone end class VisionlineMetadata < BaseResource # IP address or hostname of the main Visionline server relative to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge) on the local network. + # @return [String, nil] attr_accessor :lan_address # Keyset loaded into a reader. Mobile keys and reader administration tools securely authenticate only with readers programmed with a matching keyset. + # @return [String, nil] attr_accessor :mobile_access_uuid # Unique ID assigned by the ASSA ABLOY licensing team that identifies each hotel in your credential manager. + # @return [String, nil] attr_accessor :system_id end class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message + # @return [Array] # @deprecated this field is deprecated. attr_accessor :misconfigured_acs_entrance_ids # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Location information for the [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [Location] resource_accessor :location, Location + # Visionline-specific metadata for the [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [VisionlineMetadata, nil] resource_accessor :visionline_metadata, VisionlineMetadata + # Errors associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [Array] resource_list_accessor :errors, Errors + # Warnings associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [Array] resource_list_accessor :warnings, Warnings # Number of access groups in the [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [Float, nil] attr_accessor :acs_access_group_count # ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [String] attr_accessor :acs_system_id # Number of users in the [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [Float, nil] attr_accessor :acs_user_count # ID of the connected account associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [String] attr_accessor :connected_account_id # IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [Array] # @deprecated Use `connected_account_id`. attr_accessor :connected_account_ids # ID of the default credential manager `acs_system` for this [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [String, nil] attr_accessor :default_credential_manager_acs_system_id # Brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type. + # @return [String, nil] attr_accessor :external_type # Display name that corresponds to the brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type. + # @return [String, nil] attr_accessor :external_type_display_name # Alternative text for the [access control system](https://docs.seam.co/low-level-apis/access-systems) image. + # @return [String] attr_accessor :image_alt_text # URL for the image that represents the [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [String] attr_accessor :image_url # Indicates whether the `acs_system` is a credential manager. + # @return [Boolean] attr_accessor :is_credential_manager # Name of the [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [String] attr_accessor :name + # @return [String, nil] # @deprecated Use `external_type`. attr_accessor :system_type + # @return [String, nil] # @deprecated Use `external_type_display_name`. attr_accessor :system_type_display_name # ID of the workspace that contains the [access control system](https://docs.seam.co/low-level-apis/access-systems). + # @return [String] attr_accessor :workspace_id # Date and time at which the [access control system](https://docs.seam.co/low-level-apis/access-systems) was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/acs_user.rb b/lib/seam/resources/acs_user.rb index c76eaeb..2e4d190 100644 --- a/lib/seam/resources/acs_user.rb +++ b/lib/seam/resources/acs_user.rb @@ -10,135 +10,201 @@ module Resources class AcsUser < BaseResource class AccessSchedule < BaseResource # Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [Time, nil] date_accessor :ends_at # Date and time at which the user's access starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [Time] date_accessor :starts_at end class Errors < BaseResource + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class PendingMutations < BaseResource class From < BaseResource # Old access group ID. + # @return [String, nil] attr_accessor :acs_access_group_id # Previous credential ID. + # @return [String, nil] attr_accessor :acs_credential_id # Email address of the access system user. + # @return [String, nil] attr_accessor :email_address # Full name of the access system user. + # @return [String, nil] attr_accessor :full_name + # @return [Boolean] attr_accessor :is_suspended # Phone number of the access system user. + # @return [String, nil] attr_accessor :phone_number # Starting time for the access schedule. + # @return [Time, nil] date_accessor :ends_at # Starting time for the access schedule. + # @return [Time, nil] date_accessor :starts_at end class To < BaseResource # New access group ID. + # @return [String, nil] attr_accessor :acs_access_group_id # New credential ID. + # @return [String, nil] attr_accessor :acs_credential_id # Email address of the access system user. + # @return [String, nil] attr_accessor :email_address # Full name of the access system user. + # @return [String, nil] attr_accessor :full_name + # @return [Boolean] attr_accessor :is_suspended # Phone number of the access system user. + # @return [String, nil] attr_accessor :phone_number # Starting time for the access schedule. + # @return [Time, nil] date_accessor :ends_at # Starting time for the access schedule. + # @return [Time, nil] date_accessor :starts_at end + # @return [From] resource_accessor :from, From + # @return [To] resource_accessor :to, To # ID of the access group involved in the scheduled change. + # @return [String] attr_accessor :acs_access_group_id # Detailed description of the mutation. + # @return [String] attr_accessor :message + # @return [String] attr_accessor :mutation_code # Whether the user is scheduled to be added to or removed from the access group. + # @return [String] attr_accessor :variant # Date and time at which the mutation was created. + # @return [Time] date_accessor :created_at # Optional: When the user creation is scheduled to occur. + # @return [Time, nil] date_accessor :scheduled_at end class SaltoKsMetadata < BaseResource # Indicates whether the user holds an active subscription slot on the Salto KS site. Only subscribed users can unlock doors and count against the site's user-subscription limit. A user may not be subscribed because their access schedule has not started or has ended, the site has reached its subscription limit, or they were manually unsubscribed. This is distinct from `is_suspended`, which reflects whether the user has been explicitly blocked. + # @return [Boolean, nil] attr_accessor :is_subscribed end class SaltoSpaceMetadata < BaseResource # Indicates whether AuditOpenings is enabled for the user in the Salto Space access system. + # @return [Boolean, nil] attr_accessor :audit_openings # User ID in the Salto Space access system. + # @return [String, nil] attr_accessor :user_id end class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # `starts_at` and `ends_at` timestamps for the [access system user's](https://docs.seam.co/low-level-apis/access-systems/user-management) access. + # @return [AccessSchedule, nil] resource_accessor :access_schedule, AccessSchedule + # Salto KS-specific metadata associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [SaltoKsMetadata, nil] resource_accessor :salto_ks_metadata, SaltoKsMetadata + # Salto Space-specific metadata associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [SaltoSpaceMetadata, nil] resource_accessor :salto_space_metadata, SaltoSpaceMetadata + # Errors associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [Array] resource_list_accessor :errors, Errors + # Pending mutations associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system. + # @return [Array] resource_list_accessor :pending_mutations, PendingMutations + # Warnings associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [Array] resource_list_accessor :warnings, Warnings # ID of the [access system](https://docs.seam.co/low-level-apis/access-systems) that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [String] attr_accessor :acs_system_id # ID of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [String] attr_accessor :acs_user_id # The ID of the connected account that is associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [String] attr_accessor :connected_account_id # Display name for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [String] attr_accessor :display_name + # @return [String, nil] # @deprecated use email_address. attr_accessor :email # Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [String, nil] attr_accessor :email_address # Brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type. + # @return [String, nil] attr_accessor :external_type # Display name that corresponds to the brand-specific terminology for the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) type. + # @return [String, nil] attr_accessor :external_type_display_name # Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [String, nil] attr_accessor :full_name # ID of the HID access control system associated with the user. + # @return [String, nil] attr_accessor :hid_acs_system_id # Indicates whether Seam manages the access system user. + # @return [Boolean] attr_accessor :is_managed # Indicates whether the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) is currently [suspended](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users). + # @return [Boolean, nil] attr_accessor :is_suspended # Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). + # @return [String, nil] attr_accessor :phone_number # Email address of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [String, nil] attr_accessor :user_identity_email_address # Full name of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [String, nil] attr_accessor :user_identity_full_name # ID of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [String, nil] attr_accessor :user_identity_id # Phone number of the user identity associated with the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). + # @return [String, nil] attr_accessor :user_identity_phone_number # ID of the workspace that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @return [String] attr_accessor :workspace_id # Date and time at which the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/action_attempt.rb b/lib/seam/resources/action_attempt.rb index d57fe66..3470368 100644 --- a/lib/seam/resources/action_attempt.rb +++ b/lib/seam/resources/action_attempt.rb @@ -6,7 +6,9 @@ module Resources class ActionAttempt < BaseResource class Error < BaseResource # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message + # @return [String] attr_accessor :type end @@ -14,325 +16,493 @@ class Result < BaseResource class AcsCredentialOnEncoder < BaseResource class VisionlineMetadata < BaseResource # Indicates whether the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is cancelled. + # @return [Boolean, nil] attr_accessor :cancelled # Format of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String, nil] attr_accessor :card_format # Holder of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String, nil] attr_accessor :card_holder # Card ID for the Visionline card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String, nil] attr_accessor :card_id # IDs of the common [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [Array] attr_accessor :common_acs_entrance_ids # Indicates whether the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is discarded. + # @return [Boolean, nil] attr_accessor :discarded # Indicates whether the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is expired. + # @return [Boolean, nil] attr_accessor :expired # IDs of the guest [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [Array] attr_accessor :guest_acs_entrance_ids # Number of issued cards associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [Float, nil] attr_accessor :number_of_issued_cards # Indicates whether the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is overridden. + # @return [Boolean, nil] attr_accessor :overridden # Indicates whether the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is overwritten. + # @return [Boolean, nil] attr_accessor :overwritten # Indicates whether the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is pending auto-update. + # @return [Boolean, nil] attr_accessor :pending_auto_update end + # Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [VisionlineMetadata, nil] resource_accessor :visionline_metadata, VisionlineMetadata # A number or string that physically identifies the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String, nil] attr_accessor :card_number # Indicates whether the credential has been issued (encoded onto a card). + # @return [Boolean, nil] attr_accessor :is_issued # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created. + # @return [Time, nil] date_accessor :created_at # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) will stop being usable. + # @return [Time, nil] date_accessor :ends_at # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) becomes usable. + # @return [Time, nil] date_accessor :starts_at end class AcsCredentialOnSeam < BaseResource class AkilesMetadata < BaseResource # ID of the Akiles member PIN. + # @return [String, nil] attr_accessor :member_pin_id end class AssaAbloyVostioMetadata < BaseResource # Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. + # @return [Boolean, nil] attr_accessor :auto_join # Names of the doors to which to grant access in the Vostio access system. + # @return [Array] attr_accessor :door_names # Endpoint ID in the Vostio access system. + # @return [String, nil] attr_accessor :endpoint_id # Key ID in the Vostio access system. + # @return [String, nil] attr_accessor :key_id # Key issuing request ID in the Vostio access system. + # @return [String, nil] attr_accessor :key_issuing_request_id # IDs of the guest entrances to override in the Vostio access system. + # @return [Array] attr_accessor :override_guest_acs_entrance_ids end class Errors < BaseResource + # @return [String] attr_accessor :error_code + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class VisionlineMetadata < BaseResource # Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. + # @return [Boolean, nil] attr_accessor :auto_join # Card function type in the Visionline access system. + # @return [String, nil] attr_accessor :card_function_type # ID of the card in the Visionline access system. + # @return [String, nil] attr_accessor :card_id # Common entrance IDs in the Visionline access system. + # @return [Array] attr_accessor :common_acs_entrance_ids # ID of the credential in the Visionline access system. + # @return [String, nil] attr_accessor :credential_id # Guest entrance IDs in the Visionline access system. + # @return [Array] attr_accessor :guest_acs_entrance_ids # Indicates whether the credential is valid. + # @return [Boolean, nil] attr_accessor :is_valid # IDs of the credentials to which you want to join. + # @return [Array] attr_accessor :joiner_acs_credential_ids end class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # The PIN code that was assigned instead. + # @return [String, nil] attr_accessor :new_code # The originally requested PIN code that could not be used. + # @return [String, nil] attr_accessor :original_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Akiles-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [AkilesMetadata, nil] resource_accessor :akiles_metadata, AkilesMetadata + # Vostio-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [AssaAbloyVostioMetadata, nil] resource_accessor :assa_abloy_vostio_metadata, AssaAbloyVostioMetadata + # Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [VisionlineMetadata, nil] resource_accessor :visionline_metadata, VisionlineMetadata + # Errors associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [Array] resource_list_accessor :errors, Errors + # Warnings associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [Array] resource_list_accessor :warnings, Warnings # Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`. + # @return [String] attr_accessor :access_method # ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String] attr_accessor :acs_credential_id # ID of the credential pool to which the credential belongs. + # @return [String, nil] attr_accessor :acs_credential_pool_id # ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String] attr_accessor :acs_system_id # ID of the [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. + # @return [String, nil] attr_accessor :acs_user_id # Number of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String, nil] attr_accessor :card_number # Access (PIN) code for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String, nil] attr_accessor :code # ID of the [connected account](https://docs.seam.co/core-concepts/connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. + # @return [String] attr_accessor :connected_account_id # Display name that corresponds to the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. + # @return [String] attr_accessor :display_name # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. + # @return [String, nil] attr_accessor :ends_at # Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. + # @return [String, nil] attr_accessor :external_type # Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. + # @return [String, nil] attr_accessor :external_type_display_name # Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been encoded onto a card. + # @return [Boolean, nil] attr_accessor :is_issued # Indicates whether the latest state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider. + # @return [Boolean, nil] attr_accessor :is_latest_desired_state_synced_with_provider + # @return [Boolean] attr_accessor :is_managed # Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). + # @return [Boolean, nil] attr_accessor :is_multi_phone_sync_credential # Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. + # @return [Boolean, nil] attr_accessor :is_one_time_use # ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String, nil] attr_accessor :parent_acs_credential_id # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [String, nil] attr_accessor :starts_at # ID of the [user identity](https://docs.seam.co/api/user_identities) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. + # @return [String, nil] attr_accessor :user_identity_id # ID of the workspace that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String] attr_accessor :workspace_id # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created. + # @return [Time] date_accessor :created_at # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was encoded onto a card. + # @return [Time, nil] date_accessor :issued_at # Date and time at which the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider. + # @return [Time, nil] date_accessor :latest_desired_state_synced_with_provider_at end class AkilesMetadata < BaseResource # ID of the Akiles member PIN. + # @return [String, nil] attr_accessor :member_pin_id end class AssaAbloyVostioMetadata < BaseResource # Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. + # @return [Boolean, nil] attr_accessor :auto_join # Names of the doors to which to grant access in the Vostio access system. + # @return [Array] attr_accessor :door_names # Endpoint ID in the Vostio access system. + # @return [String, nil] attr_accessor :endpoint_id # Key ID in the Vostio access system. + # @return [String, nil] attr_accessor :key_id # Key issuing request ID in the Vostio access system. + # @return [String, nil] attr_accessor :key_issuing_request_id # IDs of the guest entrances to override in the Vostio access system. + # @return [Array] attr_accessor :override_guest_acs_entrance_ids end class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class PendingMutations < BaseResource class From < BaseResource # Previous end time for access. + # @return [Time, nil] date_accessor :ends_at # Previous start time for access. + # @return [Time, nil] date_accessor :starts_at end class To < BaseResource # New end time for access. + # @return [Time, nil] date_accessor :ends_at # New start time for access. + # @return [Time, nil] date_accessor :starts_at end + # Previous access time configuration. + # @return [From] resource_accessor :from, From + # New access time configuration. + # @return [To] resource_accessor :to, To # Detailed description of the mutation. + # @return [String] attr_accessor :message # Mutation code to indicate that Seam is in the process of updating the access times for this access method. + # @return [String] attr_accessor :mutation_code # Date and time at which the mutation was created. + # @return [Time] date_accessor :created_at end class VisionlineMetadata < BaseResource # Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors. + # @return [Boolean, nil] attr_accessor :auto_join # Card function type in the Visionline access system. + # @return [String, nil] attr_accessor :card_function_type # ID of the card in the Visionline access system. + # @return [String, nil] attr_accessor :card_id # Common entrance IDs in the Visionline access system. + # @return [Array] attr_accessor :common_acs_entrance_ids # ID of the credential in the Visionline access system. + # @return [String, nil] attr_accessor :credential_id # Guest entrance IDs in the Visionline access system. + # @return [Array] attr_accessor :guest_acs_entrance_ids # Indicates whether the credential is valid. + # @return [Boolean, nil] attr_accessor :is_valid # IDs of the credentials to which you want to join. + # @return [Array] attr_accessor :joiner_acs_credential_ids end class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # The PIN code that was assigned instead. + # @return [String, nil] attr_accessor :new_code # ID of the original access method from which this backup access method was split, if applicable. + # @return [String, nil] attr_accessor :original_access_method_id # The originally requested PIN code that could not be used. + # @return [String, nil] attr_accessor :original_code + # @return [String] attr_accessor :warning_code # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :warning_message # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Snapshot of credential data read from the physical encoder. + # @return [AcsCredentialOnEncoder, nil] resource_accessor :acs_credential_on_encoder, AcsCredentialOnEncoder + # Corresponding credential data as stored on Seam and the access system. + # @return [AcsCredentialOnSeam, nil] resource_accessor :acs_credential_on_seam, AcsCredentialOnSeam + # Akiles-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [AkilesMetadata, nil] resource_accessor :akiles_metadata, AkilesMetadata + # Vostio-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [AssaAbloyVostioMetadata, nil] resource_accessor :assa_abloy_vostio_metadata, AssaAbloyVostioMetadata + # Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [VisionlineMetadata, nil] resource_accessor :visionline_metadata, VisionlineMetadata + # @return [Array] resource_list_accessor :errors, Errors + # Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress. + # @return [Array] resource_list_accessor :pending_mutations, PendingMutations + # @return [Array] resource_list_accessor :warnings, Warnings + # @return [Hash, nil] attr_accessor :access_code # Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`. + # @return [String] attr_accessor :access_method # ID of the access method. + # @return [String] attr_accessor :access_method_id # ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String] attr_accessor :acs_credential_id # ID of the credential pool to which the credential belongs. + # @return [String, nil] attr_accessor :acs_credential_pool_id # ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String] attr_accessor :acs_system_id # ID of the [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. + # @return [String, nil] attr_accessor :acs_user_id # Number of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String, nil] attr_accessor :card_number # Token of the client session associated with the access method. + # @return [String, nil] attr_accessor :client_session_token + # @return [String, nil] attr_accessor :code # ID of the [connected account](https://docs.seam.co/core-concepts/connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. + # @return [String] attr_accessor :connected_account_id # ID of the customization profile associated with the access method. + # @return [String, nil] attr_accessor :customization_profile_id + # @return [String] attr_accessor :display_name # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. + # @return [String, nil] attr_accessor :ends_at # Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`. + # @return [String, nil] attr_accessor :external_type # Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. + # @return [String, nil] attr_accessor :external_type_display_name # URL of the Instant Key for mobile key access methods. + # @return [String, nil] attr_accessor :instant_key_url # Indicates whether an existing card credential must be assigned to this access method before it can be issued. Only applies to card-mode access methods on systems that support credential assignment. + # @return [Boolean, nil] attr_accessor :is_assignment_required # Indicates whether encoding with an card encoder is required to issue or reissue the plastic card associated with the access method. + # @return [Boolean, nil] attr_accessor :is_encoding_required + # @return [Boolean, nil] attr_accessor :is_issued # Indicates whether the latest state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider. + # @return [Boolean, nil] attr_accessor :is_latest_desired_state_synced_with_provider # Indicates whether Seam manages the credential. + # @return [Boolean] attr_accessor :is_managed # Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). + # @return [Boolean, nil] attr_accessor :is_multi_phone_sync_credential # Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use. + # @return [Boolean, nil] attr_accessor :is_one_time_use # Indicates whether the access method is ready for card assignment. This is true when the access method is in card mode, has not yet been issued, and the system supports credential assignment. + # @return [Boolean, nil] attr_accessor :is_ready_for_assignment # Indicates whether the access method is ready to be encoded. This is true when the credential has been created and the card has not yet been issued. + # @return [Boolean, nil] attr_accessor :is_ready_for_encoding # Access method mode. Supported values: `code`, `card`, `mobile_key`, `cloud_key`. + # @return [String] attr_accessor :mode + # @return [Hash] attr_accessor :noise_threshold # ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). + # @return [String, nil] attr_accessor :parent_acs_credential_id # Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [String, nil] attr_accessor :starts_at # ID of the [user identity](https://docs.seam.co/api/user_identities) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs. + # @return [String, nil] attr_accessor :user_identity_id + # @return [Boolean, nil] attr_accessor :was_confirmed_by_device + # @return [String] attr_accessor :workspace_id + # @return [Time] date_accessor :created_at + # @return [Time, nil] date_accessor :issued_at # Date and time at which the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider. + # @return [Time, nil] date_accessor :latest_desired_state_synced_with_provider_at end + # Error associated with the action. + # @return [Error] resource_accessor :error, Error + # @return [Result] resource_accessor :result, Result # ID of the action attempt. + # @return [String] attr_accessor :action_attempt_id + # @return [String] attr_accessor :action_type + # @return [String] attr_accessor :status end end diff --git a/lib/seam/resources/batch.rb b/lib/seam/resources/batch.rb index 19ffaba..451fd01 100644 --- a/lib/seam/resources/batch.rb +++ b/lib/seam/resources/batch.rb @@ -13,16 +13,20 @@ class Batch < BaseResource # In addition, for certain devices, Seam also supports [offline access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes#offline-access-codes). Offline access (PIN) codes are designed for door locks that might not always maintain an internet connection. For this type of access code, the device manufacturer uses encryption keys (tokens) to create server-based registries of algorithmically-generated offline PIN codes. Because the tokens remain synchronized with the managed devices, the locks do not require an active internet connection—and you do not need to be near the locks—to create an offline access code. Then, owners or managers can share these offline codes with users through a variety of mechanisms, such as messaging applications. That is, lock users do not need to install a smartphone application to receive an offline access code. # # For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes. + # @return [Hash, nil] attr_accessor :access_codes # Represents an Access Grant. Access Grants enable you to grant a user identity access to spaces, entrances, and devices through one or more access methods, such as mobile keys, plastic cards, and PIN codes. You can create an Access Grant for an existing user identity, or you can create a new user identity *while* creating the new Access Grant. + # @return [Hash, nil] attr_accessor :access_grants # Represents an access method for an Access Grant. Access methods describe the modes of access, such as PIN codes, plastic cards, and mobile keys. For a mobile key, the access method also stores the URL for the associated Instant Key. + # @return [Hash, nil] attr_accessor :access_methods # Group that defines the entrances to which a set of users has access and, in some cases, the access schedule for these entrances and users. # # Some access control systems use [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups), which are sets of users, combined with sets of permissions. These permissions include both the set of areas or assets that the users can access and the schedule during which the users can access these areas or assets. Instead of assigning access rights individually to each access control system user, which can be time-consuming and error-prone, administrators can assign users to an access group, thereby ensuring that the users inherit all the permissions associated with the access group. Using access groups streamlines the process of managing large numbers of access control system users, especially in bigger organizations or complexes. # # To learn whether your access control system supports access groups, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). + # @return [Hash, nil] attr_accessor :acs_access_groups # Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems). # @@ -31,6 +35,7 @@ class Batch < BaseResource # For each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type. # # For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials. + # @return [Hash, nil] attr_accessor :acs_credentials # Represents a hardware device that encodes [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) data onto physical cards within an [access control system](https://docs.seam.co/low-level-apis/access-systems). # @@ -46,28 +51,33 @@ class Batch < BaseResource # See [Working with Card Encoders and Scanners](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). # # To verify if your access control system requires a card encoder, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). + # @return [Hash, nil] attr_accessor :acs_encoders # Represents an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/low-level-apis/access-systems). # # In an access control system, an entrance is a secured door, gate, zone, or other method of entry. You can list details for all the `acs_entrance` resources in your workspace or get these details for a specific `acs_entrance`. You can also list all entrances associated with a specific credential, and you can list all credentials associated with a specific entrance. + # @return [Hash, nil] attr_accessor :acs_entrances # Represents an [access control system](https://docs.seam.co/low-level-apis/access-systems). # # Within an `acs_system`, create [`acs_user`s](https://docs.seam.co/api/acs/users/object) and [`acs_credential`s](https://docs.seam.co/api/acs/credentials/object) to grant access to the `acs_user`s. # # For details about the resources associated with an access control system, see the [access control systems namespace](https://docs.seam.co/api/acs). + # @return [Hash, nil] attr_accessor :acs_systems # Represents a [user](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access system](https://docs.seam.co/low-level-apis/access-systems). # # An access system 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 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. # # For details about how to configure users in your access system, see the corresponding [system integration guide](https://docs.seam.co/device-and-system-integration-guides#access-control-systems). + # @return [Hash, nil] attr_accessor :acs_users # Represents an action attempt that enables you to keep track of the progress of your action that affects a physical device or system.actions against a device. Action attempts are useful because the physical world is intrinsically asynchronous. # # When you request for a device to perform an action, the Seam API immediately returns an action attempt object. In the background, the Seam API performs the action. # # See also [Action Attempts](https://docs.seam.co/core-concepts/action-attempts). + # @return [Hash, nil] attr_accessor :action_attempts # Represents a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). If you want to restrict your users' access to their own devices, use client sessions. # @@ -78,6 +88,7 @@ class Batch < BaseResource # A client session has a token that you can use with the Seam JavaScript SDK to make requests from the client (browser) directly to the Seam API. The token restricts the user's access to only the devices that they own. # # See also [Get Started with React](https://docs.seam.co/ui-components/overview/getting-started-with-seam-components/get-started-with-react-components-and-client-session-tokens). + # @return [Hash, nil] attr_accessor :client_sessions # Represents a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews). # @@ -90,26 +101,35 @@ class Batch < BaseResource # When you create a Connect Webview, specify the desired provider category key in the `provider_category` parameter. Alternately, to specify a list of providers explicitly, use the `accepted_providers` parameter with a list of device provider keys. # # To list all providers within a category, use `/devices/list_device_providers` with the desired `provider_category` filter. To list all provider keys, use `/devices/list_device_providers` with no filters. + # @return [Hash, nil] attr_accessor :connect_webviews # Represents a [connected account](https://docs.seam.co/core-concepts/connected-accounts). A connected account is an external third-party account to which your user has authorized Seam to get access, for example, an August account with a list of door locks. + # @return [Hash, nil] attr_accessor :connected_accounts # Represents a [device](https://docs.seam.co/core-concepts/devices) that has been connected to Seam. + # @return [Hash, nil] attr_accessor :devices # Represents an event. Events let you know when something interesting happens in your workspace. For example, when a lock is unlocked, Seam creates a `lock.unlocked` event. When a device's battery level is low, Seam creates a `device.battery_low` event. # # As with other API resources, you can retrieve an individual event or a list of events. Seam also provides a separate webhook system for sending the event objects directly to an endpoint on your sever. Manage webhooks through [Seam Console](https://console.seam.co). You can also use the webhooks sandbox in Seam Console to see the different payloads for each event and test them against your own endpoints. + # @return [Hash, nil] attr_accessor :events # Represents a Seam Instant Key. For issuing Bluetooth mobile keys, Instant Keys are the fastest way to share access. With a single API call, you can create a mobile key and send it through text or email or embed it in your own app. # # There’s no app to install, nor account to create. Your user just taps a link and gets a lightweight, native-feeling experience using iOS App Clip or Instant Apps on Android. Further, Instant Keys work offline, so even in areas with poor cellular or Wi-Fi, like elevator banks or concrete-walled hallways, the Instant Keys still work. + # @return [Hash, nil] attr_accessor :instant_keys # Represents a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them. + # @return [Hash, nil] attr_accessor :noise_thresholds # Represents a space that is a logical grouping of devices and entrances. You can assign access to an entire space, thereby making granting access more efficient. + # @return [Hash, nil] attr_accessor :spaces # Represents a thermostat daily program, consisting of a set of periods, each of which has a starting time and the key that identifies the climate preset to apply at the starting time. + # @return [Hash, nil] attr_accessor :thermostat_daily_programs # Represents a [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that activates a configured [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) on a [thermostat](https://docs.seam.co/capability-guides/thermostats) at a specified starting time and deactivates the climate preset at a specified ending time. + # @return [Hash, nil] attr_accessor :thermostat_schedules # Represents an [unmanaged smart lock access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes). # @@ -122,12 +142,16 @@ class Batch < BaseResource # Not all providers support unmanaged access codes. The following providers do not support unmanaged access codes: # # - [Kwikset](https://docs.seam.co/device-and-system-integration-guides/kwikset-locks) + # @return [Hash, nil] attr_accessor :unmanaged_access_codes # Represents an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed). + # @return [Hash, nil] attr_accessor :unmanaged_devices # Represents a [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with an application user account. + # @return [Hash, nil] attr_accessor :user_identities # Represents a Seam [workspace](https://docs.seam.co/core-concepts/workspaces). A workspace is a top-level entity that encompasses all other resources below it, such as devices, connected accounts, and Connect Webviews. Seam provides two types of workspaces. A [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) is a special type of workspace designed for testing code. Sandbox workspaces offer test device accounts and virtual devices that you can connect and control. This ability to work with virtual devices is quite handy because it removes the need to own physical devices from multiple brands. To connect real devices and systems to Seam, use a [production workspace](https://docs.seam.co/core-concepts/workspaces#production-workspaces). + # @return [Hash, nil] attr_accessor :workspaces end end diff --git a/lib/seam/resources/client_session.rb b/lib/seam/resources/client_session.rb index e643fa3..592bfe1 100644 --- a/lib/seam/resources/client_session.rb +++ b/lib/seam/resources/client_session.rb @@ -13,31 +13,43 @@ module Resources # See also [Get Started with React](https://docs.seam.co/ui-components/overview/getting-started-with-seam-components/get-started-with-react-components-and-client-session-tokens). class ClientSession < BaseResource # ID of the client session. + # @return [String] attr_accessor :client_session_id # IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). + # @return [Array] attr_accessor :connect_webview_ids # IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). + # @return [Array] attr_accessor :connected_account_ids # Customer key associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). + # @return [String, nil] attr_accessor :customer_key # Number of devices associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). + # @return [Float] attr_accessor :device_count # Client session token associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). + # @return [String] attr_accessor :token # Your user ID for the user associated with the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). + # @return [String, nil] attr_accessor :user_identifier_key # ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session. + # @return [String, nil] attr_accessor :user_identity_id # IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) associated with the client session. + # @return [Array] # @deprecated Use `user_identity_id` instead. attr_accessor :user_identity_ids # ID of the workspace associated with the client session. + # @return [String] attr_accessor :workspace_id # Date and time at which the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) was created. + # @return [Time] date_accessor :created_at # Date and time at which the [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) expires. + # @return [Time] date_accessor :expires_at end end diff --git a/lib/seam/resources/connect_webview.rb b/lib/seam/resources/connect_webview.rb index 03a5a76..b7b625d 100644 --- a/lib/seam/resources/connect_webview.rb +++ b/lib/seam/resources/connect_webview.rb @@ -15,44 +15,63 @@ module Resources # To list all providers within a category, use `/devices/list_device_providers` with the desired `provider_category` filter. To list all provider keys, use `/devices/list_device_providers` with no filters. class ConnectWebview < BaseResource # High-level device capabilities that the Connect Webview can accept. When creating a Connect Webview, you can specify the types of devices that it can connect to Seam. If you do not set custom `accepted_capabilities`, Seam uses a default set of `accepted_capabilities` for each provider. For example, if you create a Connect Webview that accepts SmartThing devices, without specifying `accepted_capabilities`, Seam accepts only SmartThings locks. To connect SmartThings thermostats and locks to Seam, create a Connect Webview and include both `thermostat` and `lock` in the `accepted_capabilities`. + # @return [Array] attr_accessor :accepted_capabilities # List of accepted [provider keys](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). + # @return [Array] attr_accessor :accepted_providers # Indicates whether any provider is allowed. + # @return [Boolean] attr_accessor :any_provider_allowed # Indicates whether Seam should [import all new devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for use and management by the Seam API. + # @return [Boolean] attr_accessor :automatically_manage_new_devices # ID of the Connect Webview. + # @return [String] attr_accessor :connect_webview_id # ID of the connected account associated with the Connect Webview. + # @return [String, nil] attr_accessor :connected_account_id # Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + # @return [Hash] attr_accessor :custom_metadata # URL to which the Connect Webview should redirect when an unexpected error occurs. + # @return [String, nil] attr_accessor :custom_redirect_failure_url # URL to which the Connect Webview should redirect when the user successfully pairs a device or system. If you do not set the `custom_redirect_failure_url`, the Connect Webview redirects to the `custom_redirect_url` when an unexpected error occurs. + # @return [String, nil] attr_accessor :custom_redirect_url # The customer key associated with this webview, if any. + # @return [String, nil] attr_accessor :customer_key # Device selection mode of the Connect Webview. Supported values: `none`, `single`, `multiple`. + # @return [String] attr_accessor :device_selection_mode # Indicates whether the user logged in successfully using the Connect Webview. + # @return [Boolean] attr_accessor :login_successful # Selected provider of the Connect Webview, one of the [provider keys](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). + # @return [String, nil] attr_accessor :selected_provider # Status of the Connect Webview. `authorized` indicates that the user has successfully logged into their device or system account, thereby completing the Connect Webview. + # @return [String] attr_accessor :status # URL for the Connect Webview. You use the URL to display the Connect Webview flow to your user. + # @return [String] attr_accessor :url # Indicates whether Seam should [finish syncing all devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#wait_for_device_creation) in a newly-connected account before completing the associated Connect Webview. + # @return [Boolean] attr_accessor :wait_for_device_creation # ID of the workspace that contains the Connect Webview. + # @return [String] attr_accessor :workspace_id # Date and time at which the user authorized (through the Connect Webview) the management of their devices. + # @return [Time, nil] date_accessor :authorized_at # Date and time at which the Connect Webview was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/connected_account.rb b/lib/seam/resources/connected_account.rb index 70149f5..d3935d8 100644 --- a/lib/seam/resources/connected_account.rb +++ b/lib/seam/resources/connected_account.rb @@ -8,41 +8,59 @@ class Errors < BaseResource class SaltoKsMetadata < BaseResource class Sites < BaseResource # ID of a Salto site associated with the connected account that has an error. + # @return [String, nil] attr_accessor :site_id # Name of a Salto site associated with the connected account that has an error. + # @return [String, nil] attr_accessor :site_name # Subscription limit of site users for a Salto site associated with the connected account that has an error. + # @return [Integer, nil] attr_accessor :site_user_subscription_limit # Count of subscribed site users for a Salto site associated with the connected account that has an error. + # @return [Integer, nil] attr_accessor :subscribed_site_user_count end + # Salto sites associated with the connected account that has an error. + # @return [Array] resource_list_accessor :sites, Sites end + # Salto KS metadata associated with the connected account that has an error. + # @return [SaltoKsMetadata] resource_accessor :salto_ks_metadata, SaltoKsMetadata # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + # @return [Boolean, nil] attr_accessor :is_bridge_error # Indicates whether the error is related specifically to the connected account. + # @return [Boolean, nil] attr_accessor :is_connected_account_error # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class UserIdentifier < BaseResource # API URL for the user identifier associated with the connected account. + # @return [String, nil] attr_accessor :api_url # Email address of the user identifier associated with the connected account. + # @return [String, nil] attr_accessor :email # Indicates whether the user identifier associated with the connected account is exclusive. + # @return [Boolean, nil] attr_accessor :exclusive # Phone number of the user identifier associated with the connected account. + # @return [String, nil] attr_accessor :phone # Username of the user identifier associated with the connected account. + # @return [String, nil] attr_accessor :username end @@ -50,60 +68,92 @@ class Warnings < BaseResource class SaltoKsMetadata < BaseResource class Sites < BaseResource # ID of a Salto site associated with the connected account that has a warning. + # @return [String, nil] attr_accessor :site_id # Name of a Salto site associated with the connected account that has a warning. + # @return [String, nil] attr_accessor :site_name # Subscription limit of site users for a Salto site associated with the connected account that has a warning. + # @return [Integer, nil] attr_accessor :site_user_subscription_limit # Count of subscribed site users for a Salto site associated with the connected account that has a warning. + # @return [Integer, nil] attr_accessor :subscribed_site_user_count end + # Salto sites associated with the connected account that has a warning. + # @return [Array] resource_list_accessor :sites, Sites end + # Salto KS metadata associated with the connected account that has a warning. + # @return [SaltoKsMetadata] resource_accessor :salto_ks_metadata, SaltoKsMetadata # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # User identifier associated with the connected account. + # @return [UserIdentifier, nil] resource_accessor :user_identifier, UserIdentifier + # Errors associated with the connected account. + # @return [Array] resource_list_accessor :errors, Errors + # Warnings associated with the connected account. + # @return [Array] resource_list_accessor :warnings, Warnings # List of capabilities that were accepted during the account connection process. + # @return [Array] attr_accessor :accepted_capabilities # Type of connected account. + # @return [String, nil] attr_accessor :account_type # Display name for the connected account type. + # @return [String] attr_accessor :account_type_display_name # Indicates whether Seam should [import all new devices](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#automatically_manage_new_devices) for the connected account to make these devices available for management by the Seam API. + # @return [Boolean] attr_accessor :automatically_manage_new_devices # ID of the connected account. + # @return [String] attr_accessor :connected_account_id # Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + # @return [Hash] attr_accessor :custom_metadata # Your unique key for the customer associated with this connected account. + # @return [String, nil] attr_accessor :customer_key # Default reservation check-in time for this connected account, as `HH:mm` (24-hour). Sourced from the connector configuration — set during the connect_webview for providers like Lodgify whose API does not expose check-in times. + # @return [String, nil] attr_accessor :default_checkin_time # Default reservation check-out time for this connected account, as `HH:mm` (24-hour). Sourced from the connector configuration. + # @return [String, nil] attr_accessor :default_checkout_time # Display name for the connected account. + # @return [String] attr_accessor :display_name # For iCal connected accounts, the platform that produced the feed (for example, `airbnb`, `vrbo`, or `booking`), or `unknown` when it could not be determined. Intended for rendering the source platform's logo. + # @return [String, nil] attr_accessor :ical_feed_origin # For iCal connected accounts, the feed URL for the connection. Sourced from the connector configuration. + # @return [String, nil] attr_accessor :ical_url # Logo URL for the connected account provider. + # @return [String, nil] attr_accessor :image_url # IANA time zone (e.g. America/Los_Angeles) for this connected account. Sourced from the connector configuration. + # @return [String, nil] attr_accessor :time_zone # Date and time at which the connected account was created. + # @return [Time, nil] date_accessor :created_at end end diff --git a/lib/seam/resources/customer_portal.rb b/lib/seam/resources/customer_portal.rb index 35a5811..57a35a6 100644 --- a/lib/seam/resources/customer_portal.rb +++ b/lib/seam/resources/customer_portal.rb @@ -9,16 +9,21 @@ module Resources # Seam hosts these flows, handling everything from account connection and device mapping to full-featured device control. class CustomerPortal < BaseResource # Customer key for the customer portal. + # @return [String] attr_accessor :customer_key # URL for the customer portal. + # @return [String] attr_accessor :url # ID of the workspace associated with the customer portal. + # @return [String] attr_accessor :workspace_id # Date and time at which the customer portal link was created. + # @return [Time] date_accessor :created_at # Date and time at which the customer portal link expires. + # @return [Time] date_accessor :expires_at end end diff --git a/lib/seam/resources/device.rb b/lib/seam/resources/device.rb index 089191a..097c3ac 100644 --- a/lib/seam/resources/device.rb +++ b/lib/seam/resources/device.rb @@ -6,45 +6,62 @@ module Resources class Device < BaseResource class DeviceManufacturer < BaseResource # Display name for the manufacturer, such as `August`, `Yale`, `Salto`, and so on. + # @return [String] attr_accessor :display_name # Image URL for the manufacturer logo. + # @return [String, nil] attr_accessor :image_url # Manufacturer identifier, such as `august`, `yale`, `salto`, and so on. + # @return [String] attr_accessor :manufacturer end class DeviceProvider < BaseResource # Device provider name. Corresponds to the integration type, such as `august`, `schlage`, `yale_access`, and so on. + # @return [String] attr_accessor :device_provider_name # Display name for the device provider type. + # @return [String] attr_accessor :display_name # Image URL for the device provider. + # @return [String, nil] attr_accessor :image_url # Provider category. Indicates the third-party provider type, such as `stable`, for stable integrations, or `internal`, for internal integrations. + # @return [String] attr_accessor :provider_category end class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + # @return [Boolean, nil] attr_accessor :is_bridge_error + # @return [Boolean, nil] attr_accessor :is_connected_account_error + # @return [Boolean] attr_accessor :is_device_error # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class Location < BaseResource # Name of the device location. + # @return [String, nil] attr_accessor :location_name # Name of the room within the device location, when the provider reports one. + # @return [String, nil] attr_accessor :room_name # Time zone of the device location. + # @return [String, nil] attr_accessor :time_zone # Time zone of the device location. + # @return [String, nil] # @deprecated Use `time_zone` instead. attr_accessor :timezone end @@ -52,39 +69,53 @@ class Location < BaseResource class Properties < BaseResource class AccessoryKeypad < BaseResource class Battery < BaseResource + # @return [Float] attr_accessor :level end + # Keypad battery properties. + # @return [Battery, nil] resource_accessor :battery, Battery # Indicates if an accessory keypad is connected to the device. + # @return [Boolean] attr_accessor :is_connected end class Appearance < BaseResource # Name of the device as seen from the provider API and application, not settable through Seam. + # @return [String] attr_accessor :name end class Battery < BaseResource # Battery charge level as a value between 0 and 1, inclusive. + # @return [Float] attr_accessor :level # Represents the current status of the battery charge level. Values are `critical`, which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; `low`, which signifies that the battery is under the preferred threshold and should be charged soon; `good`, which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and `full`, which represents a battery that is fully charged, providing the maximum duration of usage. + # @return [String] attr_accessor :status end class Model < BaseResource + # @return [Boolean, nil] # @deprecated use device.properties.model.can_connect_accessory_keypad attr_accessor :accessory_keypad_supported # Indicates whether the device can connect a accessory keypad. + # @return [Boolean, nil] attr_accessor :can_connect_accessory_keypad # Display name of the device model. + # @return [String] attr_accessor :display_name # Indicates whether the device has a built in accessory keypad. + # @return [Boolean, nil] attr_accessor :has_built_in_keypad # Display name that corresponds to the manufacturer-specific terminology for the device. + # @return [String] attr_accessor :manufacturer_display_name + # @return [Boolean, nil] # @deprecated use device.can_program_offline_access_codes. attr_accessor :offline_access_codes_supported + # @return [Boolean, nil] # @deprecated use device.can_program_online_access_codes. attr_accessor :online_access_codes_supported end @@ -92,290 +123,403 @@ class Model < BaseResource class AssaAbloyCredentialServiceMetadata < BaseResource class Endpoints < BaseResource # ID of the associated endpoint. + # @return [String, nil] attr_accessor :endpoint_id # Indicated whether the endpoint is active. + # @return [Boolean, nil] attr_accessor :is_active end + # Endpoints associated with the phone. + # @return [Array] resource_list_accessor :endpoints, Endpoints # Indicates whether the credential service has active endpoints associated with the phone. + # @return [Boolean, nil] attr_accessor :has_active_endpoint end class SaltoSpaceCredentialServiceMetadata < BaseResource # Indicates whether the credential service has an active associated phone. + # @return [Boolean, nil] attr_accessor :has_active_phone end class AkilesMetadata < BaseResource # Group ID to which to add users for an Akiles device. + # @return [String, nil] attr_accessor :_member_group_id # Gadget ID for an Akiles device. + # @return [String, nil] attr_accessor :gadget_id # Gadget name for an Akiles device. + # @return [String, nil] attr_accessor :gadget_name # Product name for an Akiles device. + # @return [String, nil] attr_accessor :product_name end class AqaraMetadata < BaseResource # Device name for an Aqara device. + # @return [String, nil] attr_accessor :device_name # Device ID (did) for an Aqara device. + # @return [String, nil] attr_accessor :did # Firmware version for an Aqara device. + # @return [String, nil] attr_accessor :firmware_version # Model identifier for an Aqara device. + # @return [String, nil] attr_accessor :model # Model type for an Aqara device. + # @return [Float, nil] attr_accessor :model_type # Parent gateway device ID for an Aqara device. + # @return [String, nil] attr_accessor :parent_did # Position (room) ID for an Aqara device. + # @return [String, nil] attr_accessor :position_id # Time zone reported for an Aqara device (e.g. GMT-07:00). + # @return [String, nil] attr_accessor :time_zone end class AssaAbloyVostioMetadata < BaseResource # Encoder name for an ASSA ABLOY Vostio system. + # @return [String, nil] attr_accessor :encoder_name end class AugustMetadata < BaseResource # Indicates whether an August device has a keypad. + # @return [Boolean, nil] attr_accessor :has_keypad # House ID for an August device. + # @return [String, nil] attr_accessor :house_id # House name for an August device. + # @return [String, nil] attr_accessor :house_name # Keypad battery level for an August device. + # @return [String, nil] attr_accessor :keypad_battery_level # Lock ID for an August device. + # @return [String, nil] attr_accessor :lock_id # Lock name for an August device. + # @return [String, nil] attr_accessor :lock_name # Model for an August device. + # @return [String, nil] attr_accessor :model end class AvigilonAltaMetadata < BaseResource # Entry name for an Avigilon Alta system. + # @return [String, nil] attr_accessor :entry_name # Total count of entry relays for an Avigilon Alta system. + # @return [Float, nil] attr_accessor :entry_relays_total_count # Organization name for an Avigilon Alta system. + # @return [String, nil] attr_accessor :org_name # Site ID for an Avigilon Alta system. + # @return [Float, nil] attr_accessor :site_id # Site name for an Avigilon Alta system. + # @return [String, nil] attr_accessor :site_name # Zone ID for an Avigilon Alta system. + # @return [Float, nil] attr_accessor :zone_id # Zone name for an Avigilon Alta system. + # @return [String, nil] attr_accessor :zone_name end class BrivoMetadata < BaseResource # Indicates whether the Brivo access point has activation (remote unlock) enabled. + # @return [Boolean, nil] attr_accessor :activation_enabled # Device name for a Brivo device. + # @return [String, nil] attr_accessor :device_name end class ControlbywebMetadata < BaseResource # Device ID for a ControlByWeb device. + # @return [String, nil] attr_accessor :device_id # Device name for a ControlByWeb device. + # @return [String, nil] attr_accessor :device_name # Relay name for a ControlByWeb device. + # @return [String, nil] attr_accessor :relay_name end class DormakabaOracodeMetadata < BaseResource class PredefinedTimeSlots < BaseResource # Check in time for a time slot for a dormakaba Oracode device. + # @return [String, nil] attr_accessor :check_in_time # Checkout time for a time slot for a dormakaba Oracode device. + # @return [String, nil] attr_accessor :check_out_time # ID of a user level for a dormakaba Oracode device. + # @return [String, nil] attr_accessor :dormakaba_oracode_user_level_id # Prefix for a user level for a dormakaba Oracode device. + # @return [Float, nil] attr_accessor :dormakaba_oracode_user_level_prefix # Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot. + # @return [Boolean, nil] attr_accessor :is_24_hour # Indicates whether a time slot for a dormakaba Oracode device is in biweekly mode. + # @return [Boolean, nil] attr_accessor :is_biweekly_mode # Indicates whether a time slot for a dormakaba Oracode device is a master time slot. + # @return [Boolean, nil] attr_accessor :is_master # Indicates whether a time slot for a dormakaba Oracode device is a one-shot time slot. + # @return [Boolean, nil] attr_accessor :is_one_shot # Name of a time slot for a dormakaba Oracode device. + # @return [String, nil] attr_accessor :name # Prefix for a time slot for a dormakaba Oracode device. + # @return [Float, nil] attr_accessor :prefix end + # Predefined time slots for a dormakaba Oracode device. + # @return [Array] resource_list_accessor :predefined_time_slots, PredefinedTimeSlots # Device ID for a dormakaba Oracode device. + # @return [String, nil] attr_accessor :device_id # Door ID for a dormakaba Oracode device. + # @return [Float, nil] attr_accessor :door_id # Indicates whether a door is wireless for a dormakaba Oracode device. + # @return [Boolean, nil] attr_accessor :door_is_wireless # Door name for a dormakaba Oracode device. + # @return [String, nil] attr_accessor :door_name # IANA time zone for a dormakaba Oracode device. + # @return [String, nil] attr_accessor :iana_timezone # Site ID for a dormakaba Oracode device. + # @return [Float, nil] # @deprecated Previously marked as "@DEPRECATED." attr_accessor :site_id # Site name for a dormakaba Oracode device. + # @return [String, nil] attr_accessor :site_name end class EcobeeMetadata < BaseResource # Device name for an ecobee device. + # @return [String, nil] attr_accessor :device_name # Device ID for an ecobee device. + # @return [String, nil] attr_accessor :ecobee_device_id end class FourSuitesMetadata < BaseResource # Device ID for a 4SUITES device. + # @return [Float, nil] attr_accessor :device_id # Device name for a 4SUITES device. + # @return [String, nil] attr_accessor :device_name # Reclose delay, in seconds, for a 4SUITES device. + # @return [Float, nil] attr_accessor :reclose_delay_in_seconds end class GenieMetadata < BaseResource # Lock name for a Genie device. + # @return [String, nil] attr_accessor :device_name # Door name for a Genie device. + # @return [String, nil] attr_accessor :door_name end class HoneywellResideoMetadata < BaseResource # Device name for a Honeywell Resideo device. + # @return [String, nil] attr_accessor :device_name # Device ID for a Honeywell Resideo device. + # @return [String, nil] attr_accessor :honeywell_resideo_device_id end class IglooMetadata < BaseResource # Bridge ID for an igloo device. + # @return [String, nil] attr_accessor :bridge_id # Device ID for an igloo device. + # @return [String, nil] attr_accessor :device_id # Model for an igloo device. + # @return [String, nil] attr_accessor :model end class IgloohomeMetadata < BaseResource # Bridge ID for an igloohome device. + # @return [String, nil] attr_accessor :bridge_id # Bridge name for an igloohome device. + # @return [String, nil] attr_accessor :bridge_name # Device ID for an igloohome device. + # @return [String, nil] attr_accessor :device_id # Device name for an igloohome device. + # @return [String, nil] attr_accessor :device_name # Indicates whether a keypad is linked to a bridge for an igloohome device. + # @return [Boolean, nil] attr_accessor :is_accessory_keypad_linked_to_bridge # Keypad ID for an igloohome device. + # @return [String, nil] attr_accessor :keypad_id end class KeynestMetadata < BaseResource # Address for a KeyNest device. + # @return [String, nil] attr_accessor :address # Current or last store ID for a KeyNest device. + # @return [Float, nil] attr_accessor :current_or_last_store_id # Current status for a KeyNest device. + # @return [String, nil] attr_accessor :current_status # Current user company for a KeyNest device. + # @return [String, nil] attr_accessor :current_user_company # Current user email for a KeyNest device. + # @return [String, nil] attr_accessor :current_user_email # Current user name for a KeyNest device. + # @return [String, nil] attr_accessor :current_user_name # Current user phone number for a KeyNest device. + # @return [String, nil] attr_accessor :current_user_phone_number # Default office ID for a KeyNest device. + # @return [Float, nil] attr_accessor :default_office_id # Device name for a KeyNest device. + # @return [String, nil] attr_accessor :device_name # Fob ID for a KeyNest device. + # @return [Float, nil] attr_accessor :fob_id # Handover method for a KeyNest device. + # @return [String, nil] attr_accessor :handover_method # Whether the KeyNest device has a photo. + # @return [Boolean, nil] attr_accessor :has_photo # Whether the key is in a locker that does not support the access codes API. + # @return [Boolean, nil] attr_accessor :is_quadient_locker # Key ID for a KeyNest device. + # @return [String, nil] attr_accessor :key_id # Key notes for a KeyNest device. + # @return [String, nil] attr_accessor :key_notes # KeyNest app user for a KeyNest device. + # @return [String, nil] attr_accessor :keynest_app_user # Last movement timestamp for a KeyNest device. + # @return [String, nil] attr_accessor :last_movement # Property ID for a KeyNest device. + # @return [String, nil] attr_accessor :property_id # Property postcode for a KeyNest device. + # @return [String, nil] attr_accessor :property_postcode # Status type for a KeyNest device. + # @return [String, nil] attr_accessor :status_type # Subscription plan for a KeyNest device. + # @return [String, nil] attr_accessor :subscription_plan end class KisiMetadata < BaseResource # Description for a Kisi device. + # @return [String, nil] attr_accessor :description # Lock ID for a Kisi device. + # @return [Float, nil] attr_accessor :lock_id # Lock name for a Kisi device. + # @return [String, nil] attr_accessor :lock_name # Place name for a Kisi device. + # @return [String, nil] attr_accessor :place_name end class KorelockMetadata < BaseResource # Device ID for a Korelock device. + # @return [String, nil] attr_accessor :device_id # Device name for a Korelock device. + # @return [String, nil] attr_accessor :device_name # Firmware version for a Korelock device. + # @return [String, nil] attr_accessor :firmware_version # Location ID for a Korelock device. Required for timebound access codes. + # @return [String, nil] attr_accessor :location_id # Model code for a Korelock device. + # @return [String, nil] attr_accessor :model_code # Serial number for a Korelock device. + # @return [String, nil] attr_accessor :serial_number # WiFi signal strength (0-1) for a Korelock device. + # @return [Float, nil] attr_accessor :wifi_signal_strength end class KwiksetMetadata < BaseResource # Device ID for a Kwikset device. + # @return [String, nil] attr_accessor :device_id # Device name for a Kwikset device. + # @return [String, nil] attr_accessor :device_name # Model number for a Kwikset device. + # @return [String, nil] attr_accessor :model_number end class LocklyMetadata < BaseResource # Device ID for a Lockly device. + # @return [String, nil] attr_accessor :device_id # Device name for a Lockly device. + # @return [String, nil] attr_accessor :device_name # Model for a Lockly device. + # @return [String, nil] attr_accessor :model end @@ -383,833 +527,1289 @@ class MinutMetadata < BaseResource class LatestSensorValues < BaseResource class AccelerometerZ < BaseResource # Time of latest accelerometer Z-axis reading for a Minut device. + # @return [String, nil] attr_accessor :time # Value of latest accelerometer Z-axis reading for a Minut device. + # @return [Float, nil] attr_accessor :value end class Humidity < BaseResource # Time of latest humidity reading for a Minut device. + # @return [String, nil] attr_accessor :time # Value of latest humidity reading for a Minut device. + # @return [Float, nil] attr_accessor :value end class Pressure < BaseResource # Time of latest pressure reading for a Minut device. + # @return [String, nil] attr_accessor :time # Value of latest pressure reading for a Minut device. + # @return [Float, nil] attr_accessor :value end class Sound < BaseResource # Time of latest sound reading for a Minut device. + # @return [String, nil] attr_accessor :time # Value of latest sound reading for a Minut device. + # @return [Float, nil] attr_accessor :value end class Temperature < BaseResource # Time of latest temperature reading for a Minut device. + # @return [String, nil] attr_accessor :time # Value of latest temperature reading for a Minut device. + # @return [Float, nil] attr_accessor :value end + # Latest accelerometer Z-axis reading for a Minut device. + # @return [AccelerometerZ, nil] resource_accessor :accelerometer_z, AccelerometerZ + # Latest humidity reading for a Minut device. + # @return [Humidity, nil] resource_accessor :humidity, Humidity + # Latest pressure reading for a Minut device. + # @return [Pressure, nil] resource_accessor :pressure, Pressure + # Latest sound reading for a Minut device. + # @return [Sound, nil] resource_accessor :sound, Sound + # Latest temperature reading for a Minut device. + # @return [Temperature, nil] resource_accessor :temperature, Temperature end + # Latest sensor values for a Minut device. + # @return [LatestSensorValues, nil] resource_accessor :latest_sensor_values, LatestSensorValues # Device ID for a Minut device. + # @return [String, nil] attr_accessor :device_id # Device name for a Minut device. + # @return [String, nil] attr_accessor :device_name end class NestMetadata < BaseResource # Custom device name for a Google Nest device. The device owner sets this value. + # @return [String, nil] attr_accessor :device_custom_name # Device name for a Google Nest device. Google sets this value. + # @return [String, nil] attr_accessor :device_name # Display name for a Google Nest device. + # @return [String, nil] attr_accessor :display_name # Device ID for a Google Nest device. + # @return [String, nil] attr_accessor :nest_device_id # ID of the Google Nest structure containing the device. + # @return [String, nil] attr_accessor :nest_structure_id # Name of the Google Nest structure containing the device. The device owner sets this value. + # @return [String, nil] attr_accessor :structure_name end class NoiseawareMetadata < BaseResource # Device ID for a NoiseAware device. + # @return [String, nil] attr_accessor :device_id # Device model for a NoiseAware device. + # @return [String, nil] attr_accessor :device_model # Device name for a NoiseAware device. + # @return [String, nil] attr_accessor :device_name # Noise level, in decibels, for a NoiseAware device. + # @return [Float, nil] attr_accessor :noise_level_decibel # Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device. + # @return [Float, nil] attr_accessor :noise_level_nrs end class NukiMetadata < BaseResource # Device ID for a Nuki device. + # @return [String, nil] attr_accessor :device_id # Device name for a Nuki device. + # @return [String, nil] attr_accessor :device_name # Indicates whether keypad 2 is paired for a Nuki device. + # @return [Boolean, nil] attr_accessor :keypad_2_paired # Indicates whether the keypad battery is in a critical state for a Nuki device. + # @return [Boolean, nil] attr_accessor :keypad_battery_critical # Indicates whether the keypad is paired for a Nuki device. + # @return [Boolean, nil] attr_accessor :keypad_paired end class OmnitecMetadata < BaseResource # Whether the Omnitec lock has a connected gateway for remote operations. + # @return [Boolean, nil] attr_accessor :has_gateway # Operator-assigned alias for an Omnitec device. + # @return [String, nil] attr_accessor :lock_alias # Lock ID for an Omnitec device. + # @return [Float, nil] attr_accessor :lock_id # Bluetooth MAC address for an Omnitec device. + # @return [String, nil] attr_accessor :lock_mac # Lock name for an Omnitec device. + # @return [String, nil] attr_accessor :lock_name # IANA time zone for the Omnitec device, used to schedule time-bound access codes at the correct local time (accounting for DST). + # @return [String, nil] attr_accessor :time_zone # Static UTC offset of the Omnitec lock in milliseconds. Does not account for DST. + # @return [Float, nil] attr_accessor :timezone_raw_offset_ms end class RingMetadata < BaseResource # Device ID for a Ring device. + # @return [String, nil] attr_accessor :device_id # Device name for a Ring device. + # @return [String, nil] attr_accessor :device_name end class SaltoKsMetadata < BaseResource # Battery level for a Salto KS device. + # @return [String, nil] attr_accessor :battery_level # Customer reference for a Salto KS device. + # @return [String, nil] attr_accessor :customer_reference # Indicates whether the site has a Salto KS subscription that supports custom PINs. + # @return [Boolean, nil] attr_accessor :has_custom_pin_subscription # Lock ID for a Salto KS device. + # @return [String, nil] attr_accessor :lock_id # Lock type for a Salto KS device. + # @return [String, nil] attr_accessor :lock_type # Locked state for a Salto KS device. + # @return [String, nil] attr_accessor :locked_state # Model for a Salto KS device. + # @return [String, nil] attr_accessor :model # Site ID for the Salto KS site to which the device belongs. + # @return [String, nil] attr_accessor :site_id # Site name for the Salto KS site to which the device belongs. + # @return [String, nil] attr_accessor :site_name end class SaltoMetadata < BaseResource # Battery level for a Salto device. + # @return [String, nil] attr_accessor :battery_level # Customer reference for a Salto device. + # @return [String, nil] attr_accessor :customer_reference # Lock ID for a Salto device. + # @return [String, nil] attr_accessor :lock_id # Lock type for a Salto device. + # @return [String, nil] attr_accessor :lock_type # Locked state for a Salto device. + # @return [String, nil] attr_accessor :locked_state # Model for a Salto device. + # @return [String, nil] attr_accessor :model # Site ID for the Salto KS site to which the device belongs. + # @return [String, nil] attr_accessor :site_id # Site name for the Salto KS site to which the device belongs. + # @return [String, nil] attr_accessor :site_name end class SchlageMetadata < BaseResource # Device ID for a Schlage device. + # @return [String, nil] attr_accessor :device_id # Device name for a Schlage device. + # @return [String, nil] attr_accessor :device_name # Model for a Schlage device. + # @return [String, nil] attr_accessor :model end class SeamBridgeMetadata < BaseResource # Device number for Seam Bridge. + # @return [Float, nil] attr_accessor :device_num # Name for Seam Bridge. + # @return [String, nil] attr_accessor :name # Unlock method for Seam Bridge. + # @return [String, nil] attr_accessor :unlock_method end class SensiMetadata < BaseResource # Device ID for a Sensi device. + # @return [String, nil] attr_accessor :device_id # Device name for a Sensi device. + # @return [String, nil] attr_accessor :device_name # Set to true when the device does not support the /dual-setpoints API endpoint. + # @return [Boolean, nil] attr_accessor :dual_setpoints_not_supported # Enforced setpoint range in Celsius for a Sensi device, derived from an OutOfRange API error. + # @return [Array] attr_accessor :enforced_setpoint_range_celsius # Product type for a Sensi device. + # @return [String, nil] attr_accessor :product_type end class SmartthingsMetadata < BaseResource # Device ID for a SmartThings device. + # @return [String, nil] attr_accessor :device_id # Device name for a SmartThings device. + # @return [String, nil] attr_accessor :device_name # Location ID for a SmartThings device. + # @return [String, nil] attr_accessor :location_id # Model for a SmartThings device. + # @return [String, nil] attr_accessor :model end class TadoMetadata < BaseResource # Device type for a tado° device. + # @return [String, nil] attr_accessor :device_type # Serial number for a tado° device. + # @return [String, nil] attr_accessor :serial_no end class TedeeMetadata < BaseResource # Bridge ID for a Tedee device. + # @return [Float, nil] attr_accessor :bridge_id # Bridge name for a Tedee device. + # @return [String, nil] attr_accessor :bridge_name # Device ID for a Tedee device. + # @return [Float, nil] attr_accessor :device_id # Device model for a Tedee device. + # @return [String, nil] attr_accessor :device_model # Device name for a Tedee device. + # @return [String, nil] attr_accessor :device_name # Keypad ID for a Tedee device. + # @return [Float, nil] attr_accessor :keypad_id # Serial number for a Tedee device. + # @return [String, nil] attr_accessor :serial_number end class TtlockMetadata < BaseResource class Features < BaseResource # Indicates whether a TTLock device supports auto-lock time configuration. + # @return [Boolean, nil] attr_accessor :auto_lock_time_config # Indicates whether a TTLock device supports an incomplete keyboard passcode. + # @return [Boolean, nil] attr_accessor :incomplete_keyboard_passcode # Indicates whether a TTLock device supports the lock command. + # @return [Boolean, nil] attr_accessor :lock_command # Indicates whether a TTLock device supports a passcode. + # @return [Boolean, nil] attr_accessor :passcode # Indicates whether a TTLock device supports passcode management. + # @return [Boolean, nil] attr_accessor :passcode_management # Indicates whether a TTLock device supports unlock via gateway. + # @return [Boolean, nil] attr_accessor :unlock_via_gateway # Indicates whether a TTLock device supports Wi-Fi. + # @return [Boolean, nil] attr_accessor :wifi end class WirelessKeypads < BaseResource # ID for a wireless keypad for a TTLock device. + # @return [Float, nil] attr_accessor :wireless_keypad_id # Name for a wireless keypad for a TTLock device. + # @return [String, nil] attr_accessor :wireless_keypad_name end + # Features for a TTLock device. + # @return [Features, nil] resource_accessor :features, Features + # Wireless keypads for a TTLock device. + # @return [Array] resource_list_accessor :wireless_keypads, WirelessKeypads # Feature value for a TTLock device. + # @return [String, nil] attr_accessor :feature_value # Indicates whether a TTLock device has a gateway. + # @return [Boolean, nil] attr_accessor :has_gateway # Lock alias for a TTLock device. + # @return [String, nil] attr_accessor :lock_alias # Lock ID for a TTLock device. + # @return [Float, nil] attr_accessor :lock_id # Lock-side timezone offset in milliseconds east of UTC, as configured in the TTLock app. Source of truth for the lock's wall-clock interpretation of access code start/end times — a misconfigured value here is the typical cause of customer "codes offset by N hours" reports. Diagnostic only; Seam does not convert times based on this value. + # @return [Float, nil] attr_accessor :timezone_raw_offset_ms end class TwoNMetadata < BaseResource # Device ID for a 2N device. + # @return [Float, nil] attr_accessor :device_id # Device name for a 2N device. + # @return [String, nil] attr_accessor :device_name end class UltraloqMetadata < BaseResource # Device ID for an Ultraloq device. + # @return [String, nil] attr_accessor :device_id # Device name for an Ultraloq device. + # @return [String, nil] attr_accessor :device_name # Device type for an Ultraloq device. + # @return [String, nil] attr_accessor :device_type # IANA timezone for the Ultraloq device. + # @return [String, nil] attr_accessor :time_zone end class VisionlineMetadata < BaseResource # Encoder ID for an ASSA ABLOY Visionline system. + # @return [String, nil] attr_accessor :encoder_id end class WyzeMetadata < BaseResource # Device ID for a Wyze device. + # @return [String, nil] attr_accessor :device_id # Device information model for a Wyze device. + # @return [String, nil] attr_accessor :device_info_model # Device name for a Wyze device. + # @return [String, nil] attr_accessor :device_name # Keypad UUID for a Wyze device. + # @return [String, nil] attr_accessor :keypad_uuid # Locker status (hardlock) for a Wyze device. + # @return [Float, nil] attr_accessor :locker_status_hardlock # Product model for a Wyze device. + # @return [String, nil] attr_accessor :product_model # Product name for a Wyze device. + # @return [String, nil] attr_accessor :product_name # Product type for a Wyze device. + # @return [String, nil] attr_accessor :product_type end class YacanMetadata < BaseResource # Device ID for a Yacan device. + # @return [String, nil] attr_accessor :device_id # Device name for a Yacan device. + # @return [String, nil] attr_accessor :device_name # Device type for a Yacan device. + # @return [String, nil] attr_accessor :device_type # Serial number for a Yacan device. + # @return [String, nil] attr_accessor :serial_number end class CodeConstraints < BaseResource + # @return [String] attr_accessor :constraint_type # Maximum name length constraint for access codes. + # @return [Float, nil] attr_accessor :max_length # Minimum name length constraint for access codes. + # @return [Float, nil] attr_accessor :min_length end class KeypadBattery < BaseResource # Keypad battery charge level. + # @return [Float] attr_accessor :level end class OfflineTimeFrameOptions < BaseResource class TimePairs < BaseResource # Label for the start/end time pairing. + # @return [String] attr_accessor :display_name # End time of day as a 24-hour `HH:MM` value, interpreted in the option's `time_zone`. An `end_time` earlier on the clock than `start_time` means the end falls on a later date. + # @return [String] attr_accessor :end_time # Start time of day as a 24-hour `HH:MM` value, interpreted in the option's `time_zone`. + # @return [String] attr_accessor :start_time end + # Fixed start/end time pairings the caller chooses from. Mutually exclusive with `matching_start_end_time`. + # @return [Array] resource_list_accessor :time_pairs, TimePairs # Label for this option. For a single-option device, the product name (for example, `algoPIN` or `SmartPIN`); for a multi-option device, a label that distinguishes it (for example, `Hourly` or `Fixed start times`). + # @return [String] attr_accessor :display_name # iCalendar recurrence rule (RRULE) that the end date must fall on. Constrains which calendar dates are selectable, independent of the time-of-day rules. + # @return [String, nil] attr_accessor :end_date_recurrence_rule # When `true`, the start and end must fall at the same time of day (the caller picks which). Mutually exclusive with `time_pairs`. + # @return [Boolean, nil] attr_accessor :matching_start_end_time # Maximum duration this option covers, as an ISO 8601 duration (for example, `PT672H` or `P367D`). Omitted when there is no maximum. + # @return [String, nil] attr_accessor :max_duration # Minimum duration this option covers, as an ISO 8601 duration (for example, `PT1H` or `P29D`). Omitted when there is no minimum. + # @return [String, nil] attr_accessor :min_duration # iCalendar recurrence rule (RRULE) that the start date must fall on (for example, `FREQ=MONTHLY;BYDAY=1MO,3MO`). Constrains which calendar dates are selectable, independent of the time-of-day rules. + # @return [String, nil] attr_accessor :start_date_recurrence_rule # IANA time zone for interpreting `time_pairs` and the date recurrence rules. Present only when the option fixes times or dates. + # @return [String, nil] attr_accessor :time_zone end class OnlineTimeFrameOptions < BaseResource class TimePairs < BaseResource # Label for the start/end time pairing. + # @return [String] attr_accessor :display_name # End time of day as a 24-hour `HH:MM` value, interpreted in the option's `time_zone`. An `end_time` earlier on the clock than `start_time` means the end falls on a later date. + # @return [String] attr_accessor :end_time # Start time of day as a 24-hour `HH:MM` value, interpreted in the option's `time_zone`. + # @return [String] attr_accessor :start_time end + # Fixed start/end time pairings the caller chooses from. Mutually exclusive with `matching_start_end_time`. + # @return [Array] resource_list_accessor :time_pairs, TimePairs # Label for this option. For a single-option device, the product name (for example, `algoPIN` or `SmartPIN`); for a multi-option device, a label that distinguishes it (for example, `Hourly` or `Fixed start times`). + # @return [String] attr_accessor :display_name # iCalendar recurrence rule (RRULE) that the end date must fall on. Constrains which calendar dates are selectable, independent of the time-of-day rules. + # @return [String, nil] attr_accessor :end_date_recurrence_rule # When `true`, the start and end must fall at the same time of day (the caller picks which). Mutually exclusive with `time_pairs`. + # @return [Boolean, nil] attr_accessor :matching_start_end_time # Maximum duration this option covers, as an ISO 8601 duration (for example, `PT672H` or `P367D`). Omitted when there is no maximum. + # @return [String, nil] attr_accessor :max_duration # Minimum duration this option covers, as an ISO 8601 duration (for example, `PT1H` or `P29D`). Omitted when there is no minimum. + # @return [String, nil] attr_accessor :min_duration # iCalendar recurrence rule (RRULE) that the start date must fall on (for example, `FREQ=MONTHLY;BYDAY=1MO,3MO`). Constrains which calendar dates are selectable, independent of the time-of-day rules. + # @return [String, nil] attr_accessor :start_date_recurrence_rule # IANA time zone for interpreting `time_pairs` and the date recurrence rules. Present only when the option fixes times or dates. + # @return [String, nil] attr_accessor :time_zone end class ActiveThermostatSchedule < BaseResource class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end + # Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + # @return [Array] resource_list_accessor :errors, Errors # Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + # @return [String] attr_accessor :climate_preset_key # ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. + # @return [String] attr_accessor :device_id # Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + # @return [Boolean, nil] attr_accessor :is_override_allowed # Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + # @return [Integer, nil] attr_accessor :max_override_period_minutes # User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + # @return [String, nil] attr_accessor :name # ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + # @return [String] attr_accessor :thermostat_schedule_id # ID of the workspace that contains the thermostat schedule. + # @return [String] attr_accessor :workspace_id # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + # @return [Time] date_accessor :created_at # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [Time] date_accessor :ends_at # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [Time] date_accessor :starts_at end class AvailableClimatePresets < BaseResource class EcobeeMetadata < BaseResource # Reference to the Ecobee climate, if applicable. + # @return [String, nil] attr_accessor :climate_ref # Indicates if the climate preset is optimized by Ecobee. + # @return [Boolean, nil] attr_accessor :is_optimized # Indicates whether the climate preset is owned by the user or the system. + # @return [String, nil] attr_accessor :owner end + # Metadata specific to the Ecobee climate, if applicable. + # @return [EcobeeMetadata, nil] resource_accessor :ecobee_metadata, EcobeeMetadata # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + # @return [Boolean] attr_accessor :can_delete # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + # @return [Boolean] attr_accessor :can_edit # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + # @return [Boolean] attr_accessor :can_use_with_thermostat_daily_programs # Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + # @return [String] attr_accessor :climate_preset_key # The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + # @return [String, nil] attr_accessor :climate_preset_mode # Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :cooling_set_point_celsius # Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :cooling_set_point_fahrenheit # Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + # @return [String] attr_accessor :display_name # Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + # @return [String, nil] attr_accessor :fan_mode_setting # Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :heating_set_point_celsius # Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :heating_set_point_fahrenheit # Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + # @return [String, nil] attr_accessor :hvac_mode_setting # Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + # @return [Boolean] # @deprecated Use 'thermostat_schedule.is_override_allowed' attr_accessor :manual_override_allowed # User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + # @return [String, nil] attr_accessor :name end class CurrentClimateSetting < BaseResource class EcobeeMetadata < BaseResource # Reference to the Ecobee climate, if applicable. + # @return [String, nil] attr_accessor :climate_ref # Indicates if the climate preset is optimized by Ecobee. + # @return [Boolean, nil] attr_accessor :is_optimized # Indicates whether the climate preset is owned by the user or the system. + # @return [String, nil] attr_accessor :owner end + # Metadata specific to the Ecobee climate, if applicable. + # @return [EcobeeMetadata, nil] resource_accessor :ecobee_metadata, EcobeeMetadata # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + # @return [Boolean, nil] attr_accessor :can_delete # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + # @return [Boolean, nil] attr_accessor :can_edit # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + # @return [Boolean, nil] attr_accessor :can_use_with_thermostat_daily_programs # Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + # @return [String, nil] attr_accessor :climate_preset_key # The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + # @return [String, nil] attr_accessor :climate_preset_mode # Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :cooling_set_point_celsius # Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :cooling_set_point_fahrenheit # Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + # @return [String, nil] attr_accessor :display_name # Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + # @return [String, nil] attr_accessor :fan_mode_setting # Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :heating_set_point_celsius # Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :heating_set_point_fahrenheit # Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + # @return [String, nil] attr_accessor :hvac_mode_setting # Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + # @return [Boolean, nil] # @deprecated Use 'thermostat_schedule.is_override_allowed' attr_accessor :manual_override_allowed # User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + # @return [String, nil] attr_accessor :name end class DefaultClimateSetting < BaseResource class EcobeeMetadata < BaseResource # Reference to the Ecobee climate, if applicable. + # @return [String, nil] attr_accessor :climate_ref # Indicates if the climate preset is optimized by Ecobee. + # @return [Boolean, nil] attr_accessor :is_optimized # Indicates whether the climate preset is owned by the user or the system. + # @return [String, nil] attr_accessor :owner end + # Metadata specific to the Ecobee climate, if applicable. + # @return [EcobeeMetadata, nil] resource_accessor :ecobee_metadata, EcobeeMetadata # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted. + # @return [Boolean, nil] attr_accessor :can_delete # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited. + # @return [Boolean, nil] attr_accessor :can_edit # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program. + # @return [Boolean, nil] attr_accessor :can_use_with_thermostat_daily_programs # Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + # @return [String, nil] attr_accessor :climate_preset_key # The climate preset mode for the thermostat, based on the available climate preset modes reported by the device. + # @return [String, nil] attr_accessor :climate_preset_mode # Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :cooling_set_point_celsius # Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :cooling_set_point_fahrenheit # Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + # @return [String, nil] attr_accessor :display_name # Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + # @return [String, nil] attr_accessor :fan_mode_setting # Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :heating_set_point_celsius # Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :heating_set_point_fahrenheit # Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + # @return [String, nil] attr_accessor :hvac_mode_setting # Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + # @return [Boolean, nil] # @deprecated Use 'thermostat_schedule.is_override_allowed' attr_accessor :manual_override_allowed # User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). + # @return [String, nil] attr_accessor :name end class TemperatureThreshold < BaseResource # Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + # @return [Float, nil] attr_accessor :lower_limit_celsius # Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + # @return [Float, nil] attr_accessor :lower_limit_fahrenheit # Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + # @return [Float, nil] attr_accessor :upper_limit_celsius # Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + # @return [Float, nil] attr_accessor :upper_limit_fahrenheit end class ThermostatDailyPrograms < BaseResource class Periods < BaseResource # Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`. + # @return [String] attr_accessor :climate_preset_key # Time at which the thermostat daily program period starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [String] attr_accessor :starts_at_time end + # Array of thermostat daily program periods. + # @return [Array] resource_list_accessor :periods, Periods # ID of the thermostat device on which the thermostat daily program is configured. + # @return [String] attr_accessor :device_id # User-friendly name to identify the thermostat daily program. + # @return [String, nil] attr_accessor :name # ID of the thermostat daily program. + # @return [String] attr_accessor :thermostat_daily_program_id # ID of the workspace that contains the thermostat daily program. + # @return [String] attr_accessor :workspace_id # Date and time at which the thermostat daily program was created. + # @return [Time] date_accessor :created_at end class ThermostatWeeklyProgram < BaseResource # ID of the thermostat daily program to run on Fridays. + # @return [String, nil] attr_accessor :friday_program_id # ID of the thermostat daily program to run on Mondays. + # @return [String, nil] attr_accessor :monday_program_id # ID of the thermostat daily program to run on Saturdays. + # @return [String, nil] attr_accessor :saturday_program_id # ID of the thermostat daily program to run on Sundays. + # @return [String, nil] attr_accessor :sunday_program_id # ID of the thermostat daily program to run on Thursdays. + # @return [String, nil] attr_accessor :thursday_program_id # ID of the thermostat daily program to run on Tuesdays. + # @return [String, nil] attr_accessor :tuesday_program_id # ID of the thermostat daily program to run on Wednesdays. + # @return [String, nil] attr_accessor :wednesday_program_id # Date and time at which the thermostat weekly program was created. + # @return [Time] date_accessor :created_at end + # Accessory keypad properties and state. + # @return [AccessoryKeypad, nil] resource_accessor :accessory_keypad, AccessoryKeypad + # Appearance-related properties, as reported by the device. + # @return [Appearance] resource_accessor :appearance, Appearance + # Represents the current status of the battery charge level. + # @return [Battery, nil] resource_accessor :battery, Battery + # Device model-related properties. + # @return [Model] resource_accessor :model, Model + # ASSA ABLOY Credential Service metadata for the phone. + # @return [AssaAbloyCredentialServiceMetadata, nil] resource_accessor :assa_abloy_credential_service_metadata, AssaAbloyCredentialServiceMetadata + # Salto Space credential service metadata for the phone. + # @return [SaltoSpaceCredentialServiceMetadata, nil] resource_accessor :salto_space_credential_service_metadata, SaltoSpaceCredentialServiceMetadata + # Metadata for an Akiles device. + # @return [AkilesMetadata, nil] resource_accessor :akiles_metadata, AkilesMetadata + # Metadata for an Aqara device. + # @return [AqaraMetadata, nil] resource_accessor :aqara_metadata, AqaraMetadata + # Metadata for an ASSA ABLOY Vostio system. + # @return [AssaAbloyVostioMetadata, nil] resource_accessor :assa_abloy_vostio_metadata, AssaAbloyVostioMetadata + # Metadata for an August device. + # @return [AugustMetadata, nil] resource_accessor :august_metadata, AugustMetadata + # Metadata for an Avigilon Alta system. + # @return [AvigilonAltaMetadata, nil] resource_accessor :avigilon_alta_metadata, AvigilonAltaMetadata + # Metadata for a Brivo device. + # @return [BrivoMetadata, nil] resource_accessor :brivo_metadata, BrivoMetadata + # Metadata for a ControlByWeb device. + # @return [ControlbywebMetadata, nil] resource_accessor :controlbyweb_metadata, ControlbywebMetadata + # Metadata for a dormakaba Oracode device. + # @return [DormakabaOracodeMetadata, nil] resource_accessor :dormakaba_oracode_metadata, DormakabaOracodeMetadata + # Metadata for an ecobee device. + # @return [EcobeeMetadata, nil] resource_accessor :ecobee_metadata, EcobeeMetadata + # Metadata for a 4SUITES device. + # @return [FourSuitesMetadata, nil] resource_accessor :four_suites_metadata, FourSuitesMetadata + # Metadata for a Genie device. + # @return [GenieMetadata, nil] resource_accessor :genie_metadata, GenieMetadata + # Metadata for a Honeywell Resideo device. + # @return [HoneywellResideoMetadata, nil] resource_accessor :honeywell_resideo_metadata, HoneywellResideoMetadata + # Metadata for an igloo device. + # @return [IglooMetadata, nil] resource_accessor :igloo_metadata, IglooMetadata + # Metadata for an igloohome device. + # @return [IgloohomeMetadata, nil] resource_accessor :igloohome_metadata, IgloohomeMetadata + # Metadata for a KeyNest device. + # @return [KeynestMetadata, nil] resource_accessor :keynest_metadata, KeynestMetadata + # Metadata for a Kisi device. + # @return [KisiMetadata, nil] resource_accessor :kisi_metadata, KisiMetadata + # Metadata for a Korelock device. + # @return [KorelockMetadata, nil] resource_accessor :korelock_metadata, KorelockMetadata + # Metadata for a Kwikset device. + # @return [KwiksetMetadata, nil] resource_accessor :kwikset_metadata, KwiksetMetadata + # Metadata for a Lockly device. + # @return [LocklyMetadata, nil] resource_accessor :lockly_metadata, LocklyMetadata + # Metadata for a Minut device. + # @return [MinutMetadata, nil] resource_accessor :minut_metadata, MinutMetadata + # Metadata for a Google Nest device. + # @return [NestMetadata, nil] resource_accessor :nest_metadata, NestMetadata + # Metadata for a NoiseAware device. + # @return [NoiseawareMetadata, nil] resource_accessor :noiseaware_metadata, NoiseawareMetadata + # Metadata for a Nuki device. + # @return [NukiMetadata, nil] resource_accessor :nuki_metadata, NukiMetadata + # Metadata for an Omnitec device. + # @return [OmnitecMetadata, nil] resource_accessor :omnitec_metadata, OmnitecMetadata + # Metadata for a Ring device. + # @return [RingMetadata, nil] resource_accessor :ring_metadata, RingMetadata + # Metadata for a Salto KS device. + # @return [SaltoKsMetadata, nil] resource_accessor :salto_ks_metadata, SaltoKsMetadata + # Metada for a Salto device. + # @return [SaltoMetadata, nil] resource_accessor :salto_metadata, SaltoMetadata + # Metadata for a Schlage device. + # @return [SchlageMetadata, nil] resource_accessor :schlage_metadata, SchlageMetadata + # Metadata for Seam Bridge. + # @return [SeamBridgeMetadata, nil] resource_accessor :seam_bridge_metadata, SeamBridgeMetadata + # Metadata for a Sensi device. + # @return [SensiMetadata, nil] resource_accessor :sensi_metadata, SensiMetadata + # Metadata for a SmartThings device. + # @return [SmartthingsMetadata, nil] resource_accessor :smartthings_metadata, SmartthingsMetadata + # Metadata for a tado° device. + # @return [TadoMetadata, nil] resource_accessor :tado_metadata, TadoMetadata + # Metadata for a Tedee device. + # @return [TedeeMetadata, nil] resource_accessor :tedee_metadata, TedeeMetadata + # Metadata for a TTLock device. + # @return [TtlockMetadata, nil] resource_accessor :ttlock_metadata, TtlockMetadata + # Metadata for a 2N device. + # @return [TwoNMetadata, nil] resource_accessor :two_n_metadata, TwoNMetadata + # Metadata for an Ultraloq device. + # @return [UltraloqMetadata, nil] resource_accessor :ultraloq_metadata, UltraloqMetadata + # Metadata for an ASSA ABLOY Visionline system. + # @return [VisionlineMetadata, nil] resource_accessor :visionline_metadata, VisionlineMetadata + # Metadata for a Wyze device. + # @return [WyzeMetadata, nil] resource_accessor :wyze_metadata, WyzeMetadata + # Metadata for a Yacan device. + # @return [YacanMetadata, nil] resource_accessor :yacan_metadata, YacanMetadata + # Keypad battery status. + # @return [KeypadBattery, nil] resource_accessor :keypad_battery, KeypadBattery + # Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + # @return [ActiveThermostatSchedule, nil] resource_accessor :active_thermostat_schedule, ActiveThermostatSchedule + # Current climate setting. + # @return [CurrentClimateSetting, nil] resource_accessor :current_climate_setting, CurrentClimateSetting + # @return [DefaultClimateSetting, nil] resource_accessor :default_climate_setting, DefaultClimateSetting + # Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat. + # @return [TemperatureThreshold, nil] resource_accessor :temperature_threshold, TemperatureThreshold + # Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + # @return [ThermostatWeeklyProgram, nil] resource_accessor :thermostat_weekly_program, ThermostatWeeklyProgram + # Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific. + # @return [Array] resource_list_accessor :code_constraints, CodeConstraints + # Time frames that may be requested when creating an offline access code, expressed as a list of options. The caller picks one option (by matching the requested duration when the options' duration ranges do not overlap, or by `display_name` when they do) and satisfies that one option's rules. When `undefined`, any time frame works. + # @return [Array] resource_list_accessor :offline_time_frame_options, OfflineTimeFrameOptions + # Time frames that may be requested when creating an online access code, expressed as a list of options. The caller picks one option (by matching the requested duration when the options' duration ranges do not overlap, or by `display_name` when they do) and satisfies that one option's rules. When `undefined`, any time frame works. + # @return [Array] resource_list_accessor :online_time_frame_options, OnlineTimeFrameOptions + # Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat. + # @return [Array] resource_list_accessor :available_climate_presets, AvailableClimatePresets + # Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat. + # @return [Array] resource_list_accessor :thermostat_daily_programs, ThermostatDailyPrograms # Indicates the battery level of the device as a decimal value between 0 and 1, inclusive. + # @return [Float, nil] attr_accessor :battery_level # Array of noise threshold IDs that are currently triggering. + # @return [Array] attr_accessor :currently_triggering_noise_threshold_ids # Indicates whether the device has direct power. + # @return [Boolean, nil] attr_accessor :has_direct_power # Alt text for the device image. + # @return [String, nil] attr_accessor :image_alt_text # Image URL for the device. + # @return [String, nil] attr_accessor :image_url # Manufacturer of the device. When a device, such as a smart lock, is connected through a smart hub, the manufacturer of the device might be different from that of the smart hub. + # @return [String, nil] attr_accessor :manufacturer # Name of the device. + # @return [String] # @deprecated use device.display_name instead attr_accessor :name # Indicates current noise level in decibels, if the device supports noise detection. + # @return [Float, nil] attr_accessor :noise_level_decibels # Indicates whether it is currently possible to use offline access codes for the device. + # @return [Boolean, nil] # @deprecated use device.can_program_offline_access_codes attr_accessor :offline_access_codes_enabled # Indicates whether the device is online. + # @return [Boolean] attr_accessor :online # Indicates whether it is currently possible to use online access codes for the device. + # @return [Boolean, nil] # @deprecated use device.can_program_online_access_codes attr_accessor :online_access_codes_enabled # Serial number of the device. + # @return [String, nil] attr_accessor :serial_number + # @return [Boolean, nil] # @deprecated use device.properties.model.can_connect_accessory_keypad attr_accessor :supports_accessory_keypad + # @return [Boolean, nil] # @deprecated use offline_access_codes_enabled attr_accessor :supports_offline_access_codes # The delay in seconds before the lock automatically locks after being unlocked. + # @return [Float, nil] attr_accessor :auto_lock_delay_seconds # Indicates whether automatic locking is enabled. + # @return [Boolean, nil] attr_accessor :auto_lock_enabled # Indicates whether the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is currently enabled for the device. To disable it, set this to `false` using [/devices/update](https://docs.seam.co/api/devices/update). + # @return [Boolean, nil] attr_accessor :backup_access_code_pool_enabled # Indicates whether the door is open. + # @return [Boolean, nil] attr_accessor :door_open # Indicates whether the device supports native entry events. + # @return [Boolean, nil] attr_accessor :has_native_entry_events # Indicates whether the lock is locked. + # @return [Boolean, nil] attr_accessor :locked # Maximum number of active access codes that the device supports. + # @return [Float, nil] attr_accessor :max_active_codes_supported # Supported code lengths for access codes. + # @return [Array] attr_accessor :supported_code_lengths # Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes). + # @return [Boolean, nil] attr_accessor :supports_backup_access_code_pool # ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + # @return [String, nil] attr_accessor :active_thermostat_schedule_id # Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied". + # @return [Array] attr_accessor :available_climate_preset_modes # Fan mode settings that the thermostat supports. + # @return [Array] attr_accessor :available_fan_mode_settings # HVAC mode settings that the thermostat supports. + # @return [Array] attr_accessor :available_hvac_mode_settings # Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat. + # @return [String, nil] attr_accessor :fallback_climate_preset_key + # @return [String, nil] # @deprecated Use `current_climate_setting.fan_mode_setting` instead. attr_accessor :fan_mode_setting # Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat. + # @return [Boolean, nil] attr_accessor :is_cooling # Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat. + # @return [Boolean, nil] attr_accessor :is_fan_running # Indicates whether the connected HVAC system is currently heating, as reported by the thermostat. + # @return [Boolean, nil] attr_accessor :is_heating # Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`. + # @return [Boolean, nil] attr_accessor :is_temporary_manual_override_active # Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + # @return [Float, nil] attr_accessor :max_cooling_set_point_celsius # Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + # @return [Float, nil] attr_accessor :max_cooling_set_point_fahrenheit # Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + # @return [Float, nil] attr_accessor :max_heating_set_point_celsius # Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + # @return [Float, nil] attr_accessor :max_heating_set_point_fahrenheit # Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4. + # @return [Float, nil] attr_accessor :max_thermostat_daily_program_periods_per_day # Maximum number of climate presets that the thermostat can support for weekly programming. + # @return [Float, nil] attr_accessor :max_unique_climate_presets_per_thermostat_weekly_program # Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C. + # @return [Float, nil] attr_accessor :min_cooling_set_point_celsius # Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F. + # @return [Float, nil] attr_accessor :min_cooling_set_point_fahrenheit # Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode. + # @return [Float, nil] attr_accessor :min_heating_cooling_delta_celsius # Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode. + # @return [Float, nil] attr_accessor :min_heating_cooling_delta_fahrenheit # Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C. + # @return [Float, nil] attr_accessor :min_heating_set_point_celsius # Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F. + # @return [Float, nil] attr_accessor :min_heating_set_point_fahrenheit # Reported relative humidity, as a value between 0 and 1, inclusive. + # @return [Float, nil] attr_accessor :relative_humidity # Reported temperature in °C. + # @return [Float, nil] attr_accessor :temperature_celsius # Reported temperature in °F. + # @return [Float, nil] attr_accessor :temperature_fahrenheit # Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour. + # @return [Float, nil] attr_accessor :thermostat_daily_program_period_precision_minutes end class Warnings < BaseResource # Number of active access codes on the device when the warning was set. + # @return [Integer] attr_accessor :active_access_code_count # Maximum number of active access codes supported by the device. + # @return [Integer] attr_accessor :max_active_access_code_count # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Manufacturer of the device. Represents the hardware brand, which may differ from the provider. + # @return [DeviceManufacturer, nil] resource_accessor :device_manufacturer, DeviceManufacturer + # Provider of the device. Represents the third-party service through which the device is controlled. + # @return [DeviceProvider, nil] resource_accessor :device_provider, DeviceProvider + # Location information for the device. + # @return [Location, nil] resource_accessor :location, Location + # Properties of the device. + # @return [Properties] resource_accessor :properties, Properties + # Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. + # @return [Array] resource_list_accessor :errors, Errors + # Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. + # @return [Array] resource_list_accessor :warnings, Warnings # Indicates whether the lock supports configuring automatic locking. + # @return [Boolean, nil] attr_accessor :can_configure_auto_lock # Indicates whether the thermostat supports cooling. + # @return [Boolean, nil] attr_accessor :can_hvac_cool # Indicates whether the thermostat supports heating. + # @return [Boolean, nil] attr_accessor :can_hvac_heat # Indicates whether the thermostat supports simultaneous heating and cooling. + # @return [Boolean, nil] attr_accessor :can_hvac_heat_cool # Indicates whether the device supports programming offline access codes. + # @return [Boolean, nil] attr_accessor :can_program_offline_access_codes # Indicates whether the device supports programming online access codes. + # @return [Boolean, nil] attr_accessor :can_program_online_access_codes # Indicates whether the thermostat supports different climate programs for each day of the week. + # @return [Boolean, nil] attr_accessor :can_program_thermostat_programs_as_different_each_day # Indicates whether the thermostat supports a single climate program applied to every day. + # @return [Boolean, nil] attr_accessor :can_program_thermostat_programs_as_same_each_day # Indicates whether the thermostat supports weekday/weekend climate programs. + # @return [Boolean, nil] attr_accessor :can_program_thermostat_programs_as_weekday_weekend # Indicates whether the device supports remote locking. + # @return [Boolean, nil] attr_accessor :can_remotely_lock # Indicates whether the device supports remote unlocking. + # @return [Boolean, nil] attr_accessor :can_remotely_unlock # Indicates whether the thermostat supports running climate programs. + # @return [Boolean, nil] attr_accessor :can_run_thermostat_programs # Indicates whether the device supports simulating connection in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_connection # Indicates whether the device supports simulating disconnection in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_disconnection # Indicates whether the hub supports simulating connection in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_hub_connection # Indicates whether the hub supports simulating disconnection in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_hub_disconnection # Indicates whether the device supports simulating a paid subscription in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_paid_subscription # Indicates whether the device supports simulating removal in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_removal # Indicates whether the thermostat can be turned off. + # @return [Boolean, nil] attr_accessor :can_turn_off_hvac # Indicates whether the lock supports unlocking with an access code. + # @return [Boolean, nil] attr_accessor :can_unlock_with_code # Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). + # @return [Array] attr_accessor :capabilities_supported # Unique identifier for the account associated with the device. + # @return [String] attr_accessor :connected_account_id # Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + # @return [Hash] attr_accessor :custom_metadata # ID of the device. + # @return [String] attr_accessor :device_id # Type of the device. + # @return [String] attr_accessor :device_type # Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices. + # @return [String] attr_accessor :display_name # Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). + # @return [Boolean] attr_accessor :is_managed # Optional nickname to describe the device, settable through Seam. + # @return [String, nil] attr_accessor :nickname # IDs of the spaces the device is in. + # @return [Array] attr_accessor :space_ids # Unique identifier for the Seam workspace associated with the device. + # @return [String] attr_accessor :workspace_id # Date and time at which the device object was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/device_provider.rb b/lib/seam/resources/device_provider.rb index 2f7dc74..24af39a 100644 --- a/lib/seam/resources/device_provider.rb +++ b/lib/seam/resources/device_provider.rb @@ -4,52 +4,76 @@ module Seam module Resources class DeviceProvider < BaseResource # Indicates whether the lock supports configuring automatic locking. + # @return [Boolean, nil] attr_accessor :can_configure_auto_lock # Indicates whether the thermostat supports cooling. + # @return [Boolean, nil] attr_accessor :can_hvac_cool # Indicates whether the thermostat supports heating. + # @return [Boolean, nil] attr_accessor :can_hvac_heat # Indicates whether the thermostat supports simultaneous heating and cooling. + # @return [Boolean, nil] attr_accessor :can_hvac_heat_cool # Indicates whether the device supports programming offline access codes. + # @return [Boolean, nil] attr_accessor :can_program_offline_access_codes # Indicates whether the device supports programming online access codes. + # @return [Boolean, nil] attr_accessor :can_program_online_access_codes # Indicates whether the thermostat supports different climate programs for each day of the week. + # @return [Boolean, nil] attr_accessor :can_program_thermostat_programs_as_different_each_day # Indicates whether the thermostat supports a single climate program applied to every day. + # @return [Boolean, nil] attr_accessor :can_program_thermostat_programs_as_same_each_day # Indicates whether the thermostat supports weekday/weekend climate programs. + # @return [Boolean, nil] attr_accessor :can_program_thermostat_programs_as_weekday_weekend # Indicates whether the device supports remote locking. + # @return [Boolean, nil] attr_accessor :can_remotely_lock # Indicates whether the device supports remote unlocking. + # @return [Boolean, nil] attr_accessor :can_remotely_unlock # Indicates whether the thermostat supports running climate programs. + # @return [Boolean, nil] attr_accessor :can_run_thermostat_programs # Indicates whether the device supports simulating connection in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_connection # Indicates whether the device supports simulating disconnection in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_disconnection # Indicates whether the hub supports simulating connection in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_hub_connection # Indicates whether the hub supports simulating disconnection in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_hub_disconnection # Indicates whether the device supports simulating a paid subscription in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_paid_subscription # Indicates whether the device supports simulating removal in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_removal # Indicates whether the thermostat can be turned off. + # @return [Boolean, nil] attr_accessor :can_turn_off_hvac # Indicates whether the lock supports unlocking with an access code. + # @return [Boolean, nil] attr_accessor :can_unlock_with_code # Name of the device provider. + # @return [String] attr_accessor :device_provider_name # Display name for the device provider. + # @return [String] attr_accessor :display_name # Image URL for the device provider. + # @return [String] attr_accessor :image_url # List of provider categories to which the device provider belongs, such as `stable`, `consumer_smartlocks`, `thermostats`, and so on. + # @return [Array] attr_accessor :provider_categories end end diff --git a/lib/seam/resources/event.rb b/lib/seam/resources/event.rb index 4ce7fd7..4022f90 100644 --- a/lib/seam/resources/event.rb +++ b/lib/seam/resources/event.rb @@ -5,271 +5,411 @@ module Resources class SeamEvent < BaseResource class AccessCodeErrors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class AccessCodeWarnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end class AcsSystemErrors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class AcsSystemWarnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end class ChangedProperties < BaseResource # Previous value of the property, or null if not set. + # @return [String, nil] attr_accessor :from # Name of the property that changed (e.g. `code`). + # @return [String] attr_accessor :property # New value of the property, or null if cleared. + # @return [String, nil] attr_accessor :to end class ConnectedAccountErrors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class ConnectedAccountWarnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end class DeviceErrors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class DeviceWarnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end class From < BaseResource # Previous pin code. + # @return [String, nil] attr_accessor :code # Previous end time. + # @return [String, nil] attr_accessor :ends_at # Previous name of the access code. + # @return [String, nil] attr_accessor :name # Previous start time. + # @return [String, nil] attr_accessor :starts_at end class Reason < BaseResource # Human-readable explanation of why access was denied. + # @return [String] attr_accessor :message # Normalized reason a lock denied access. Provider-agnostic; not all providers report every value. + # @return [String] attr_accessor :reason_code end class RequestedMutations < BaseResource # Previous property values before the requested change. Keys depend on the mutation type. Absent for non-property mutations like `deleting`. + # @return [Hash, nil] attr_accessor :from # Code identifying the type of mutation requested, such as `updating_name`, `updating_code`, `updating_time_frame`, or `deleting`. + # @return [String] attr_accessor :mutation_code # New property values after the requested change. Keys depend on the mutation type. Absent for non-property mutations like `deleting`. + # @return [Hash, nil] attr_accessor :to end class To < BaseResource # New pin code. + # @return [String, nil] attr_accessor :code # New end time. + # @return [String, nil] attr_accessor :ends_at # New name of the access code. + # @return [String, nil] attr_accessor :name # New start time. + # @return [String, nil] attr_accessor :starts_at end + # @return [From] resource_accessor :from, From + # Why access was denied, when the provider reports a determinable cause. Omitted when unknown. + # @return [Reason, nil] resource_accessor :reason, Reason + # @return [To] resource_accessor :to, To + # Errors associated with the access code. + # @return [Array] resource_list_accessor :access_code_errors, AccessCodeErrors + # Warnings associated with the access code. + # @return [Array] resource_list_accessor :access_code_warnings, AccessCodeWarnings + # Errors associated with the access control system. + # @return [Array] resource_list_accessor :acs_system_errors, AcsSystemErrors + # Warnings associated with the access control system. + # @return [Array] resource_list_accessor :acs_system_warnings, AcsSystemWarnings + # List of properties that changed on the access code. + # @return [Array] resource_list_accessor :changed_properties, ChangedProperties + # Errors associated with the connected account. + # @return [Array] resource_list_accessor :connected_account_errors, ConnectedAccountErrors + # Warnings associated with the connected account. + # @return [Array] resource_list_accessor :connected_account_warnings, ConnectedAccountWarnings + # Errors associated with the device. + # @return [Array] resource_list_accessor :device_errors, DeviceErrors + # Warnings associated with the device. + # @return [Array] resource_list_accessor :device_warnings, DeviceWarnings + # Array of mutations requested on the access code, each containing the mutation type and from/to values. + # @return [Array] resource_list_accessor :requested_mutations, RequestedMutations + # @return [String, nil] attr_accessor :access_code_id # Whether the access code is managed by Seam (true) or unmanaged (false). Only present when access_code_id is set. + # @return [Boolean, nil] attr_accessor :access_code_is_managed # ID of the affected Access Grant. + # @return [String] attr_accessor :access_grant_id # IDs of the access grants associated with this access method. + # @return [Array] attr_accessor :access_grant_ids # Key of the affected Access Grant (if present). + # @return [String, nil] attr_accessor :access_grant_key # Keys of the access grants associated with this access method (if present). + # @return [Array] attr_accessor :access_grant_keys # ID of the affected access method. + # @return [String] attr_accessor :access_method_id # ID of the affected access group. + # @return [String] attr_accessor :acs_access_group_id # ID of the affected credential. + # @return [String] attr_accessor :acs_credential_id # ID of the affected encoder. + # @return [String] attr_accessor :acs_encoder_id + # @return [String] attr_accessor :acs_entrance_id + # @return [Array] attr_accessor :acs_entrance_ids # ID of the access system. + # @return [String] attr_accessor :acs_system_id # ID of the affected access system user. + # @return [String] attr_accessor :acs_user_id + # @return [String, nil] attr_accessor :action_attempt_id # Type of the action. + # @return [String] attr_accessor :action_type # The reason the camera was activated. + # @return [String] attr_accessor :activation_reason # ID of the backup access code that was pulled from the pool. + # @return [String] attr_accessor :backup_access_code_id # Number in the range 0 to 1.0 indicating the amount of battery in the affected device, as reported by the device. + # @return [Float] attr_accessor :battery_level # Battery status of the affected device, calculated from the numeric `battery_level` value. + # @return [String] attr_accessor :battery_status # Human-readable reason for the change (e.g. `ongoing code auto-renewed`). + # @return [String, nil] attr_accessor :change_reason # ID of the affected client session. + # @return [String] attr_accessor :client_session_id # Key of the climate preset that was activated. + # @return [String] attr_accessor :climate_preset_key + # @return [String, nil] attr_accessor :code + # @return [String, nil] attr_accessor :connect_webview_id + # @return [Hash, nil] attr_accessor :connected_account_custom_metadata + # @return [String, nil] attr_accessor :connected_account_id # Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :cooling_set_point_celsius # Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :cooling_set_point_fahrenheit + # @return [String, nil] attr_accessor :customer_key # Human-readable description of the change and its source. + # @return [String] attr_accessor :description # Desired temperature, in °C, defined by the affected thermostat's cooling or heating set point. + # @return [Float, nil] attr_accessor :desired_temperature_celsius # Desired temperature, in °F, defined by the affected thermostat's cooling or heating set point. + # @return [Float, nil] attr_accessor :desired_temperature_fahrenheit + # @return [Hash, nil] attr_accessor :device_custom_metadata + # @return [String, nil] attr_accessor :device_id + # @return [Array] attr_accessor :device_ids + # @return [String, nil] attr_accessor :device_name # The new end time for the access grant. + # @return [String, nil] attr_accessor :ends_at # Error code associated with the disconnection event, if any. + # @return [String] attr_accessor :error_code # Description of why the access methods could not be created. + # @return [String] attr_accessor :error_message # Human-readable description of the event. Persisted when the event is created (so the creating code, including a provider, can supply a tailored description) and otherwise derived from the event. + # @return [String, nil] attr_accessor :event_description # ID of the event. + # @return [String, nil] attr_accessor :event_id # Type of the event. + # @return [String, nil] attr_accessor :event_type # Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`. + # @return [String, nil] attr_accessor :fan_mode_setting # Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :heating_set_point_celsius # Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points). + # @return [Float, nil] attr_accessor :heating_set_point_fahrenheit # Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`. + # @return [String, nil] attr_accessor :hvac_mode_setting + # @return [String, nil] attr_accessor :image_url # Indicates whether the code is a backup code (only present when mode is 'code' and a backup code was used). + # @return [Boolean, nil] attr_accessor :is_backup_code # Indicates whether the climate preset that was activated is the fallback climate preset for the thermostat. + # @return [Boolean] attr_accessor :is_fallback_climate_preset + # @return [Boolean, nil] attr_accessor :is_via_bluetooth + # @return [Boolean, nil] attr_accessor :is_via_nfc # Lower temperature limit, in °C, defined by the set threshold. + # @return [Float, nil] attr_accessor :lower_limit_celsius # Lower temperature limit, in °F, defined by the set threshold. + # @return [Float, nil] attr_accessor :lower_limit_fahrenheit + # @return [String] attr_accessor :method # Metadata from Minut. + # @return [Hash, nil] attr_accessor :minut_metadata # IDs of the devices that did not receive a requested access method. Use these to identify which specific devices failed without having to fetch the Access Grant. + # @return [Array] attr_accessor :missing_device_ids # Sub-type of motion detected, if available. + # @return [String, nil] attr_accessor :motion_sub_type # Detected noise level in decibels. + # @return [Float, nil] attr_accessor :noise_level_decibels # Detected noise level in Noiseaware Noise Risk Score (NRS). + # @return [Float, nil] attr_accessor :noise_level_nrs # ID of the noise threshold that was triggered. + # @return [String, nil] attr_accessor :noise_threshold_id # Name of the noise threshold that was triggered. + # @return [String, nil] attr_accessor :noise_threshold_name # Metadata from Noiseaware. + # @return [Hash, nil] attr_accessor :noiseaware_metadata # ID of the affected space. + # @return [String] attr_accessor :space_id # Unique key for the space within the workspace. + # @return [String, nil] attr_accessor :space_key # The new start time for the access grant. + # @return [String, nil] attr_accessor :starts_at # Status of the action. + # @return [String] attr_accessor :status # Temperature, in °C, reported by the affected thermostat. + # @return [Float] attr_accessor :temperature_celsius # Temperature, in °F, reported by the affected thermostat. + # @return [Float] attr_accessor :temperature_fahrenheit # ID of the thermostat schedule that prompted the affected climate preset to be activated. + # @return [String, nil] attr_accessor :thermostat_schedule_id # Upper temperature limit, in °C, defined by the set threshold. + # @return [Float, nil] attr_accessor :upper_limit_celsius # Upper temperature limit, in °F, defined by the set threshold. + # @return [Float, nil] attr_accessor :upper_limit_fahrenheit + # @return [String, nil] attr_accessor :video_url # ID of the workspace associated with the event. + # @return [String, nil] attr_accessor :workspace_id # Date and time at which the event was created. + # @return [Time, nil] date_accessor :created_at # Date and time at which the event occurred. + # @return [Time, nil] date_accessor :occurred_at end end diff --git a/lib/seam/resources/instant_key.rb b/lib/seam/resources/instant_key.rb index ef181d1..38c4bc7 100644 --- a/lib/seam/resources/instant_key.rb +++ b/lib/seam/resources/instant_key.rb @@ -8,31 +8,44 @@ module Resources class InstantKey < BaseResource class Customization < BaseResource # URL of the logo displayed on the Instant Key. + # @return [String, nil] attr_accessor :logo_url # Primary color used in the Instant Key UI. + # @return [String, nil] attr_accessor :primary_color # Secondary color used in the Instant Key UI. + # @return [String, nil] attr_accessor :secondary_color end + # Customization applied to the Instant Key UI. + # @return [Customization, nil] resource_accessor :customization, Customization # ID of the client session associated with the Instant Key. + # @return [String] attr_accessor :client_session_id # ID of the customization profile associated with the Instant Key. + # @return [String, nil] attr_accessor :customization_profile_id # ID of the Instant Key. + # @return [String] attr_accessor :instant_key_id # Shareable URL for the Instant Key. Use the URL to deliver the Instant Key to your user through a link in a text message or email or by embedding it in your web app. + # @return [String] attr_accessor :instant_key_url # ID of the user identity associated with the Instant Key. + # @return [String] attr_accessor :user_identity_id # ID of the workspace that contains the Instant Key. + # @return [String] attr_accessor :workspace_id # Date and time at which the Instant Key was created. + # @return [Time] date_accessor :created_at # Date and time at which the Instant Key expires. + # @return [Time] date_accessor :expires_at end end diff --git a/lib/seam/resources/noise_threshold.rb b/lib/seam/resources/noise_threshold.rb index c95947b..d8cec4d 100644 --- a/lib/seam/resources/noise_threshold.rb +++ b/lib/seam/resources/noise_threshold.rb @@ -5,18 +5,25 @@ module Resources # Represents a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them. class NoiseThreshold < BaseResource # Unique identifier for the device that contains the noise threshold. + # @return [String] attr_accessor :device_id # Time at which the noise threshold should become inactive daily. + # @return [String] attr_accessor :ends_daily_at # Name of the noise threshold. + # @return [String] attr_accessor :name # Noise level in decibels for the noise threshold. + # @return [Float] attr_accessor :noise_threshold_decibels # Unique identifier for the noise threshold. + # @return [String] attr_accessor :noise_threshold_id # Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors). + # @return [Float, nil] attr_accessor :noise_threshold_nrs # Time at which the noise threshold should become active daily. + # @return [String] attr_accessor :starts_daily_at end end diff --git a/lib/seam/resources/pagination.rb b/lib/seam/resources/pagination.rb index 659583d..e66b68f 100644 --- a/lib/seam/resources/pagination.rb +++ b/lib/seam/resources/pagination.rb @@ -5,10 +5,13 @@ module Resources # Information about the current page of results. class Pagination < BaseResource # Indicates whether there is another page of results after this one. + # @return [Boolean] attr_accessor :has_next_page # Opaque value that can be used to select the next page of results via the `page_cursor` parameter. + # @return [String, nil] attr_accessor :next_page_cursor # URL to get the next page of results. + # @return [String, nil] attr_accessor :next_page_url end end diff --git a/lib/seam/resources/phone.rb b/lib/seam/resources/phone.rb index dbadc28..310e66e 100644 --- a/lib/seam/resources/phone.rb +++ b/lib/seam/resources/phone.rb @@ -6,10 +6,13 @@ module Resources class Phone < BaseResource class Errors < BaseResource # Unique identifier of the type of error. + # @return [String] attr_accessor :error_code # Detailed description of the error. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end @@ -17,51 +20,77 @@ class Properties < BaseResource class AssaAbloyCredentialServiceMetadata < BaseResource class Endpoints < BaseResource # ID of the associated endpoint. + # @return [String, nil] attr_accessor :endpoint_id # Indicated whether the endpoint is active. + # @return [Boolean, nil] attr_accessor :is_active end + # Endpoints associated with the phone. + # @return [Array] resource_list_accessor :endpoints, Endpoints # Indicates whether the credential service has active endpoints associated with the phone. + # @return [Boolean, nil] attr_accessor :has_active_endpoint end class SaltoSpaceCredentialServiceMetadata < BaseResource # Indicates whether the credential service has an active associated phone. + # @return [Boolean, nil] attr_accessor :has_active_phone end + # ASSA ABLOY Credential Service metadata for the phone. + # @return [AssaAbloyCredentialServiceMetadata, nil] resource_accessor :assa_abloy_credential_service_metadata, AssaAbloyCredentialServiceMetadata + # Salto Space credential service metadata for the phone. + # @return [SaltoSpaceCredentialServiceMetadata, nil] resource_accessor :salto_space_credential_service_metadata, SaltoSpaceCredentialServiceMetadata end class Warnings < BaseResource # Detailed description of the warning. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Properties of the phone. + # @return [Properties] resource_accessor :properties, Properties + # Errors associated with the phone. + # @return [Array] resource_list_accessor :errors, Errors + # Warnings associated with the phone. + # @return [Array] resource_list_accessor :warnings, Warnings # Optional [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) for the phone. + # @return [Hash] attr_accessor :custom_metadata # ID of the phone. + # @return [String] attr_accessor :device_id # Type of the phone device, such as `ios_phone` or `android_phone`. + # @return [String] attr_accessor :device_type # Display name of the phone. Defaults to `nickname` (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the phone easily, especially when there are numerous phones. + # @return [String] attr_accessor :display_name # Optional nickname to describe the phone, settable through Seam. + # @return [String, nil] attr_accessor :nickname # ID of the workspace that contains the phone. + # @return [String] attr_accessor :workspace_id # Date and time at which the phone was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/space.rb b/lib/seam/resources/space.rb index 6b00724..e573182 100644 --- a/lib/seam/resources/space.rb +++ b/lib/seam/resources/space.rb @@ -6,42 +6,61 @@ module Resources class Space < BaseResource class CustomerData < BaseResource # Postal address for the space. + # @return [String, nil] attr_accessor :address # Default check-in time for reservations at the space, as HH:mm or HH:mm:ss. + # @return [String, nil] attr_accessor :default_checkin_time # Default check-out time for reservations at the space, as HH:mm or HH:mm:ss. + # @return [String, nil] attr_accessor :default_checkout_time # IANA time zone for the space, e.g. America/Los_Angeles. + # @return [String, nil] attr_accessor :time_zone end class Geolocation < BaseResource # Latitude of the space, in decimal degrees. + # @return [Float] attr_accessor :latitude # Longitude of the space, in decimal degrees. + # @return [Float] attr_accessor :longitude end + # Reservation/stay-related defaults for the space. Also carries the provider/PMS-supplied name under a `_name` key (e.g. `guesty_name`), which Seam preserves when you rename the space (read-only — managed by Seam). + # @return [CustomerData, nil] resource_accessor :customer_data, CustomerData + # Geographic coordinates (latitude and longitude) of the space. + # @return [Geolocation, nil] resource_accessor :geolocation, Geolocation # Number of entrances in the space. + # @return [Float] attr_accessor :acs_entrance_count # Customer key associated with the space. + # @return [String, nil] attr_accessor :customer_key # Number of devices in the space. + # @return [Float] attr_accessor :device_count # Display name for the space. + # @return [String] attr_accessor :display_name # Name of the space. + # @return [String] attr_accessor :name # ID of the space. + # @return [String] attr_accessor :space_id # Unique key for the space within the workspace. + # @return [String, nil] attr_accessor :space_key # ID of the workspace associated with the space. + # @return [String] attr_accessor :workspace_id # Date and time at which the space was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/thermostat_daily_program.rb b/lib/seam/resources/thermostat_daily_program.rb index d74d047..110a9ee 100644 --- a/lib/seam/resources/thermostat_daily_program.rb +++ b/lib/seam/resources/thermostat_daily_program.rb @@ -6,22 +6,31 @@ module Resources class ThermostatDailyProgram < BaseResource class Periods < BaseResource # Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`. + # @return [String] attr_accessor :climate_preset_key # Time at which the thermostat daily program period starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [String] attr_accessor :starts_at_time end + # Array of thermostat daily program periods. + # @return [Array] resource_list_accessor :periods, Periods # ID of the thermostat device on which the thermostat daily program is configured. + # @return [String] attr_accessor :device_id # User-friendly name to identify the thermostat daily program. + # @return [String, nil] attr_accessor :name # ID of the thermostat daily program. + # @return [String] attr_accessor :thermostat_daily_program_id # ID of the workspace that contains the thermostat daily program. + # @return [String] attr_accessor :workspace_id # Date and time at which the thermostat daily program was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/thermostat_schedule.rb b/lib/seam/resources/thermostat_schedule.rb index 0bcf2de..ca023fd 100644 --- a/lib/seam/resources/thermostat_schedule.rb +++ b/lib/seam/resources/thermostat_schedule.rb @@ -6,36 +6,51 @@ module Resources class ThermostatSchedule < BaseResource class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end + # Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + # @return [Array] resource_list_accessor :errors, Errors # Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + # @return [String] attr_accessor :climate_preset_key # ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device. + # @return [String] attr_accessor :device_id # Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts. + # @return [Boolean, nil] attr_accessor :is_override_allowed # Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions). + # @return [Integer, nil] attr_accessor :max_override_period_minutes # User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + # @return [String, nil] attr_accessor :name # ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules). + # @return [String] attr_accessor :thermostat_schedule_id # ID of the workspace that contains the thermostat schedule. + # @return [String] attr_accessor :workspace_id # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created. + # @return [Time] date_accessor :created_at # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [Time] date_accessor :ends_at # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @return [Time] date_accessor :starts_at end end diff --git a/lib/seam/resources/unmanaged_access_code.rb b/lib/seam/resources/unmanaged_access_code.rb index 4a8bb54..0c82c77 100644 --- a/lib/seam/resources/unmanaged_access_code.rb +++ b/lib/seam/resources/unmanaged_access_code.rb @@ -16,106 +16,157 @@ module Resources class UnmanagedAccessCode < BaseResource class DormakabaOracodeMetadata < BaseResource # Indicates whether the stay can be cancelled via the Dormakaba Oracode API. + # @return [Boolean, nil] attr_accessor :is_cancellable # Indicates whether early check-in is available for this stay. + # @return [Boolean, nil] attr_accessor :is_early_checkin_able # Indicates whether the stay can be extended via the Dormakaba Oracode API. + # @return [Boolean, nil] attr_accessor :is_extendable # Indicates whether the access code can be overridden. When false, the maximum number of overrides has been reached. + # @return [Boolean, nil] attr_accessor :is_overridable # Dormakaba Oracode site name associated with this access code. + # @return [String, nil] attr_accessor :site_name # Dormakaba Oracode stay ID associated with this access code. + # @return [Float, nil] attr_accessor :stay_id # Dormakaba Oracode user level ID associated with this access code. + # @return [String, nil] attr_accessor :user_level_id # Dormakaba Oracode user level name associated with this access code. + # @return [String, nil] attr_accessor :user_level_name end class Errors < BaseResource class ModifiedFields < BaseResource # The name of the field that was changed (e.g. `code`, `starts_at`, `ends_at`). + # @return [String] attr_accessor :field # The previous value of the field. + # @return [String, nil] attr_accessor :from # The new value of the field. + # @return [String, nil] attr_accessor :to end + # List of fields that were changed externally, with their previous and new values. + # @return [Array] resource_list_accessor :modified_fields, ModifiedFields # Indicates the type of external modification. `modified` means the code's PIN or schedule was changed. `removed` means the code was deleted from the device. + # @return [String, nil] attr_accessor :change_type # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Indicates that this is an access code error. + # @return [Boolean] attr_accessor :is_access_code_error # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + # @return [Boolean, nil] attr_accessor :is_bridge_error + # @return [Boolean, nil] attr_accessor :is_connected_account_error + # @return [Boolean] attr_accessor :is_device_error # ID of the managed access code that conflicts with this managed access code, when Seam can identify it. + # @return [String, nil] attr_accessor :managed_access_code_id # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # ID of the unmanaged access code that conflicts with this managed access code, when Seam can identify it. + # @return [String, nil] attr_accessor :unmanaged_access_code_id # Date and time at which Seam created the error. + # @return [Time, nil] date_accessor :created_at end class Warnings < BaseResource class ModifiedFields < BaseResource # The name of the field that was changed (e.g. `code`, `starts_at`, `ends_at`). + # @return [String] attr_accessor :field # The previous value of the field. + # @return [String, nil] attr_accessor :from # The new value of the field. + # @return [String, nil] attr_accessor :to end + # List of fields that were changed externally, with their previous and new values. + # @return [Array] resource_list_accessor :modified_fields, ModifiedFields # Indicates the type of external modification. `modified` means the code's PIN or schedule was changed. `removed` means the code was deleted from the device. + # @return [String, nil] attr_accessor :change_type # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time, nil] date_accessor :created_at end + # Metadata for a dormakaba Oracode unmanaged access code. Only present for unmanaged access codes from dormakaba Oracode devices. + # @return [DormakabaOracodeMetadata, nil] resource_accessor :dormakaba_oracode_metadata, DormakabaOracodeMetadata + # Errors associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). + # @return [Array] resource_list_accessor :errors, Errors + # Warnings associated with the [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). + # @return [Array] resource_list_accessor :warnings, Warnings # Unique identifier for the access code. + # @return [String] attr_accessor :access_code_id # Indicates that Seam cannot convert this unmanaged access code to a managed access code. Some providers do not support management of unmanaged access codes through API integrations. + # @return [Boolean, nil] attr_accessor :cannot_be_managed # Indicates that Seam cannot delete this unmanaged access code through the provider. If this access code needs to be deleted, it will only be possible from the manufacturer app. + # @return [Boolean, nil] attr_accessor :cannot_delete_unmanaged_access_code # Code used for access. Typically, a numeric or alphanumeric string. + # @return [String, nil] attr_accessor :code # Unique identifier for the device associated with the access code. + # @return [String] attr_accessor :device_id # Indicates that Seam does not manage the access code. + # @return [Boolean] attr_accessor :is_managed # Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. Note that the name provided on Seam is used to identify the code on Seam and is not necessarily the name that will appear in the lock provider's app or on the device. This is because lock providers may have constraints on names, such as length, uniqueness, or characters that can be used. In addition, some lock providers may break down names into components such as `first_name` and `last_name`. To provide a consistent experience, Seam identifies the code on Seam by its name but may modify the name that appears on the lock provider's app or on the device. For example, Seam may add additional characters or truncate the name to meet provider constraints. To help your users identify codes set by Seam, Seam provides the name exactly as it appears on the lock provider's app or on the device as a separate property called `appearance`. This is an object with a `name` property and, optionally, `first_name` and `last_name` properties (for providers that break down a name into components). + # @return [String, nil] attr_accessor :name # Current status of the access code within the operational lifecycle. `set` indicates that the code is active and operational. `unset` indicates that the code exists on the provider but is not usable on the device. + # @return [String] attr_accessor :status # Type of the access code. `ongoing` access codes are active continuously until deactivated manually. `time_bound` access codes have a specific duration. + # @return [String] attr_accessor :type # Unique identifier for the Seam workspace associated with the access code. + # @return [String] attr_accessor :workspace_id # Date and time at which the access code was created. + # @return [Time] date_accessor :created_at # Date and time after which the time-bound access code becomes inactive. + # @return [Time, nil] date_accessor :ends_at # Date and time at which the time-bound access code becomes active. + # @return [Time, nil] date_accessor :starts_at end end diff --git a/lib/seam/resources/unmanaged_access_grant.rb b/lib/seam/resources/unmanaged_access_grant.rb index 244bcc1..6bcd7e7 100644 --- a/lib/seam/resources/unmanaged_access_grant.rb +++ b/lib/seam/resources/unmanaged_access_grant.rb @@ -6,120 +6,176 @@ module Resources class UnmanagedAccessGrant < BaseResource class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # IDs of the devices that did not receive an access code at grant creation. Use these to identify which specific devices failed when the message reports a partial failure. + # @return [Array] attr_accessor :missing_device_ids # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class PendingMutations < BaseResource class From < BaseResource # Previous device IDs where access codes existed. + # @return [Array] attr_accessor :device_ids # Previous end time for access. + # @return [Time, nil] date_accessor :ends_at # Previous start time for access. + # @return [Time, nil] date_accessor :starts_at end class To < BaseResource # Common code key to ensure PIN code reuse across devices. + # @return [String, nil] attr_accessor :common_code_key # New device IDs where access codes should be created. + # @return [Array] attr_accessor :device_ids # New end time for access. + # @return [Time, nil] date_accessor :ends_at # New start time for access. + # @return [Time, nil] date_accessor :starts_at end + # @return [From] resource_accessor :from, From + # @return [To] resource_accessor :to, To # IDs of the access methods being updated. + # @return [Array] attr_accessor :access_method_ids # Detailed description of the mutation. + # @return [String] attr_accessor :message + # @return [String] attr_accessor :mutation_code # Date and time at which the mutation was created. + # @return [Time] date_accessor :created_at end class RequestedAccessMethods < BaseResource # Specific PIN code to use for this access method. Only applicable when mode is 'code'. + # @return [String, nil] attr_accessor :code # IDs of the access methods created for the requested access method. + # @return [Array] attr_accessor :created_access_method_ids # Display name of the access method. + # @return [String] attr_accessor :display_name # Maximum number of times the instant key can be used. Only applicable when mode is 'mobile_key'. Defaults to 1 if not specified. + # @return [Integer, nil] attr_accessor :instant_key_max_use_count # Access method mode. Supported values: `code`, `card`, `mobile_key`, `cloud_key`. + # @return [String] attr_accessor :mode # Date and time at which the requested access method was added to the Access Grant. + # @return [Time] date_accessor :created_at end class Warnings < BaseResource class FailedDevices < BaseResource # Device whose access code could not be revoked. + # @return [String] attr_accessor :device_id # Reason the access code could not be revoked (e.g. `offline_access_code_not_revocable`). + # @return [String] attr_accessor :error_code # Human-readable description of why revocation failed. + # @return [String] attr_accessor :message end + # Devices whose access codes could not be revoked during reconciliation. Present when the provider does not support revoking an offline access code (e.g. Dormakaba oracode with exhausted override budget). + # @return [Array] resource_list_accessor :failed_devices, FailedDevices # IDs of the access methods being updated. + # @return [Array] attr_accessor :access_method_ids + # @return [String] attr_accessor :device_id # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # The new PIN code that was assigned instead. + # @return [String] attr_accessor :new_code # The originally requested PIN code that was unavailable. + # @return [String] attr_accessor :original_code # Specific reason why the grant's times are not programmable on the device. + # @return [String] attr_accessor :reason # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access). + # @return [Array] resource_list_accessor :errors, Errors + # List of pending mutations for the access grant. This shows updates that are in progress. + # @return [Array] resource_list_accessor :pending_mutations, PendingMutations + # Access methods that the user requested for the Access Grant. + # @return [Array] resource_list_accessor :requested_access_methods, RequestedAccessMethods + # Warnings associated with the [access grant](https://docs.seam.co/use-cases/granting-access). + # @return [Array] resource_list_accessor :warnings, Warnings # ID of the Access Grant. + # @return [String] attr_accessor :access_grant_id # IDs of the access methods created for the Access Grant. + # @return [Array] attr_accessor :access_method_ids # Display name of the Access Grant. + # @return [String] attr_accessor :display_name + # @return [Array] # @deprecated Use `space_ids`. attr_accessor :location_ids # Name of the Access Grant. If not provided, the display name will be computed. + # @return [String, nil] attr_accessor :name # Reservation key for the access grant. + # @return [String, nil] attr_accessor :reservation_key # IDs of the spaces to which the Access Grant gives access. + # @return [Array] attr_accessor :space_ids # ID of user identity to which the Access Grant gives access. + # @return [String, nil] attr_accessor :user_identity_id # ID of the Seam workspace associated with the Access Grant. + # @return [String] attr_accessor :workspace_id # Date and time at which the Access Grant was created. + # @return [Time] date_accessor :created_at # Date and time at which the Access Grant ends. + # @return [Time, nil] date_accessor :ends_at # Date and time at which the Access Grant starts. + # @return [Time] date_accessor :starts_at end end diff --git a/lib/seam/resources/unmanaged_access_method.rb b/lib/seam/resources/unmanaged_access_method.rb index 89066af..a02fb41 100644 --- a/lib/seam/resources/unmanaged_access_method.rb +++ b/lib/seam/resources/unmanaged_access_method.rb @@ -6,78 +6,114 @@ module Resources class UnmanagedAccessMethod < BaseResource class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class PendingMutations < BaseResource class From < BaseResource + # @return [Array] attr_accessor :device_ids # Previous end time for access. + # @return [Time, nil] date_accessor :ends_at # Previous start time for access. + # @return [Time, nil] date_accessor :starts_at end class To < BaseResource + # @return [Array] attr_accessor :device_ids # New end time for access. + # @return [Time, nil] date_accessor :ends_at # New start time for access. + # @return [Time, nil] date_accessor :starts_at end + # @return [From] resource_accessor :from, From + # @return [To] resource_accessor :to, To # Detailed description of the mutation. + # @return [String] attr_accessor :message + # @return [String] attr_accessor :mutation_code # Date and time at which the mutation was created. + # @return [Time] date_accessor :created_at end class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # ID of the original access method from which this backup access method was split, if applicable. + # @return [String, nil] attr_accessor :original_access_method_id # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Errors associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). + # @return [Array] resource_list_accessor :errors, Errors + # Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress. + # @return [Array] resource_list_accessor :pending_mutations, PendingMutations + # Warnings associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). + # @return [Array] resource_list_accessor :warnings, Warnings # ID of the access method. + # @return [String] attr_accessor :access_method_id # The actual PIN code for code access methods. + # @return [String, nil] attr_accessor :code # Display name of the access method. + # @return [String] attr_accessor :display_name # Indicates whether an existing card credential must be assigned to this access method before it can be issued. Only applies to card-mode access methods on systems that support credential assignment. + # @return [Boolean, nil] attr_accessor :is_assignment_required # Indicates whether encoding with an card encoder is required to issue or reissue the plastic card associated with the access method. + # @return [Boolean, nil] attr_accessor :is_encoding_required # Indicates whether the access method has been issued. + # @return [Boolean] attr_accessor :is_issued # Indicates whether the access method is ready for card assignment. This is true when the access method is in card mode, has not yet been issued, and the system supports credential assignment. + # @return [Boolean, nil] attr_accessor :is_ready_for_assignment # Indicates whether the access method is ready to be encoded. This is true when the credential has been created and the card has not yet been issued. + # @return [Boolean, nil] attr_accessor :is_ready_for_encoding # Access method mode. Supported values: `code`, `card`, `mobile_key`, `cloud_key`. + # @return [String] attr_accessor :mode # ID of the Seam workspace associated with the access method. + # @return [String] attr_accessor :workspace_id # Date and time at which the access method was created. + # @return [Time] date_accessor :created_at # Date and time at which the access method was issued. + # @return [Time, nil] date_accessor :issued_at end end diff --git a/lib/seam/resources/unmanaged_device.rb b/lib/seam/resources/unmanaged_device.rb index c36bef2..b05f1e8 100644 --- a/lib/seam/resources/unmanaged_device.rb +++ b/lib/seam/resources/unmanaged_device.rb @@ -6,25 +6,35 @@ module Resources class UnmanagedDevice < BaseResource class Errors < BaseResource # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge). + # @return [Boolean, nil] attr_accessor :is_bridge_error + # @return [Boolean, nil] attr_accessor :is_connected_account_error + # @return [Boolean] attr_accessor :is_device_error # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class Location < BaseResource # Name of the device location. + # @return [String, nil] attr_accessor :location_name # Name of the room within the device location, when the provider reports one. + # @return [String, nil] attr_accessor :room_name # Time zone of the device location. + # @return [String, nil] attr_accessor :time_zone # Time zone of the device location. + # @return [String, nil] # @deprecated Use `time_zone` instead. attr_accessor :timezone end @@ -32,135 +42,203 @@ class Location < BaseResource class Properties < BaseResource class AccessoryKeypad < BaseResource class Battery < BaseResource + # @return [Float] attr_accessor :level end + # Keypad battery properties. + # @return [Battery, nil] resource_accessor :battery, Battery # Indicates if an accessory keypad is connected to the device. + # @return [Boolean] attr_accessor :is_connected end class Battery < BaseResource # Battery charge level as a value between 0 and 1, inclusive. + # @return [Float] attr_accessor :level # Represents the current status of the battery charge level. Values are `critical`, which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; `low`, which signifies that the battery is under the preferred threshold and should be charged soon; `good`, which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and `full`, which represents a battery that is fully charged, providing the maximum duration of usage. + # @return [String] attr_accessor :status end class Model < BaseResource + # @return [Boolean, nil] # @deprecated use device.properties.model.can_connect_accessory_keypad attr_accessor :accessory_keypad_supported # Indicates whether the device can connect a accessory keypad. + # @return [Boolean, nil] attr_accessor :can_connect_accessory_keypad # Display name of the device model. + # @return [String] attr_accessor :display_name # Indicates whether the device has a built in accessory keypad. + # @return [Boolean, nil] attr_accessor :has_built_in_keypad # Display name that corresponds to the manufacturer-specific terminology for the device. + # @return [String] attr_accessor :manufacturer_display_name + # @return [Boolean, nil] # @deprecated use device.can_program_offline_access_codes. attr_accessor :offline_access_codes_supported + # @return [Boolean, nil] # @deprecated use device.can_program_online_access_codes. attr_accessor :online_access_codes_supported end + # Accessory keypad properties and state. + # @return [AccessoryKeypad, nil] resource_accessor :accessory_keypad, AccessoryKeypad + # Represents the current status of the battery charge level. + # @return [Battery, nil] resource_accessor :battery, Battery + # Device model-related properties. + # @return [Model] resource_accessor :model, Model # Indicates the battery level of the device as a decimal value between 0 and 1, inclusive. + # @return [Float, nil] attr_accessor :battery_level # Alt text for the device image. + # @return [String, nil] attr_accessor :image_alt_text # Image URL for the device. + # @return [String, nil] attr_accessor :image_url # Manufacturer of the device. When a device, such as a smart lock, is connected through a smart hub, the manufacturer of the device might be different from that of the smart hub. + # @return [String, nil] attr_accessor :manufacturer # Name of the device. + # @return [String] # @deprecated use device.display_name instead attr_accessor :name # Indicates whether it is currently possible to use offline access codes for the device. + # @return [Boolean, nil] # @deprecated use device.can_program_offline_access_codes attr_accessor :offline_access_codes_enabled # Indicates whether the device is online. + # @return [Boolean] attr_accessor :online # Indicates whether it is currently possible to use online access codes for the device. + # @return [Boolean, nil] # @deprecated use device.can_program_online_access_codes attr_accessor :online_access_codes_enabled end class Warnings < BaseResource # Number of active access codes on the device when the warning was set. + # @return [Integer] attr_accessor :active_access_code_count # Maximum number of active access codes supported by the device. + # @return [Integer] attr_accessor :max_active_access_code_count # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Location information for the device. + # @return [Location, nil] resource_accessor :location, Location + # properties of the device. + # @return [Properties] resource_accessor :properties, Properties + # Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. + # @return [Array] resource_list_accessor :errors, Errors + # Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. + # @return [Array] resource_list_accessor :warnings, Warnings # Indicates whether the lock supports configuring automatic locking. + # @return [Boolean, nil] attr_accessor :can_configure_auto_lock # Indicates whether the thermostat supports cooling. + # @return [Boolean, nil] attr_accessor :can_hvac_cool # Indicates whether the thermostat supports heating. + # @return [Boolean, nil] attr_accessor :can_hvac_heat # Indicates whether the thermostat supports simultaneous heating and cooling. + # @return [Boolean, nil] attr_accessor :can_hvac_heat_cool # Indicates whether the device supports programming offline access codes. + # @return [Boolean, nil] attr_accessor :can_program_offline_access_codes # Indicates whether the device supports programming online access codes. + # @return [Boolean, nil] attr_accessor :can_program_online_access_codes # Indicates whether the thermostat supports different climate programs for each day of the week. + # @return [Boolean, nil] attr_accessor :can_program_thermostat_programs_as_different_each_day # Indicates whether the thermostat supports a single climate program applied to every day. + # @return [Boolean, nil] attr_accessor :can_program_thermostat_programs_as_same_each_day # Indicates whether the thermostat supports weekday/weekend climate programs. + # @return [Boolean, nil] attr_accessor :can_program_thermostat_programs_as_weekday_weekend # Indicates whether the device supports remote locking. + # @return [Boolean, nil] attr_accessor :can_remotely_lock # Indicates whether the device supports remote unlocking. + # @return [Boolean, nil] attr_accessor :can_remotely_unlock # Indicates whether the thermostat supports running climate programs. + # @return [Boolean, nil] attr_accessor :can_run_thermostat_programs # Indicates whether the device supports simulating connection in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_connection # Indicates whether the device supports simulating disconnection in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_disconnection # Indicates whether the hub supports simulating connection in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_hub_connection # Indicates whether the hub supports simulating disconnection in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_hub_disconnection # Indicates whether the device supports simulating a paid subscription in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_paid_subscription # Indicates whether the device supports simulating removal in a sandbox. + # @return [Boolean, nil] attr_accessor :can_simulate_removal # Indicates whether the thermostat can be turned off. + # @return [Boolean, nil] attr_accessor :can_turn_off_hvac # Indicates whether the lock supports unlocking with an access code. + # @return [Boolean, nil] attr_accessor :can_unlock_with_code # Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags). + # @return [Array] attr_accessor :capabilities_supported # Unique identifier for the account associated with the device. + # @return [String] attr_accessor :connected_account_id # Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application. + # @return [Hash] attr_accessor :custom_metadata # ID of the device. + # @return [String] attr_accessor :device_id # Type of the device. + # @return [String] attr_accessor :device_type # Indicates that Seam does not manage the device. + # @return [Boolean] attr_accessor :is_managed # Unique identifier for the Seam workspace associated with the device. + # @return [String] attr_accessor :workspace_id # Date and time at which the device object was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/unmanaged_user_identity.rb b/lib/seam/resources/unmanaged_user_identity.rb index c1685f9..206b336 100644 --- a/lib/seam/resources/unmanaged_user_identity.rb +++ b/lib/seam/resources/unmanaged_user_identity.rb @@ -6,44 +6,64 @@ module Resources class UnmanagedUserIdentity < BaseResource class Errors < BaseResource # ID of the access system that the user identity is associated with. + # @return [String] attr_accessor :acs_system_id # ID of the access system user that has an issue. + # @return [String] attr_accessor :acs_user_id # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Array of errors associated with the user identity. Each error object within the array contains fields like "error_code" and "message." "error_code" is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. + # @return [Array] resource_list_accessor :errors, Errors + # Array of warnings associated with the user identity. Each warning object within the array contains two fields: "warning_code" and "message." "warning_code" is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. + # @return [Array] resource_list_accessor :warnings, Warnings # Array of access system user IDs associated with the user identity. + # @return [Array] attr_accessor :acs_user_ids # Display name for the user identity. + # @return [String] attr_accessor :display_name # Unique email address for the user identity. + # @return [String, nil] attr_accessor :email_address # Full name of the user associated with the user identity. + # @return [String, nil] attr_accessor :full_name # Unique phone number for the user identity in [E.164 format](https://www.itu.int/rec/T-REC-E.164/en) (for example, +15555550100). + # @return [String, nil] attr_accessor :phone_number # ID of the user identity. + # @return [String] attr_accessor :user_identity_id # ID of the workspace that contains the user identity. + # @return [String] attr_accessor :workspace_id # Date and time at which the user identity was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/user_identity.rb b/lib/seam/resources/user_identity.rb index 91b2723..a5ef578 100644 --- a/lib/seam/resources/user_identity.rb +++ b/lib/seam/resources/user_identity.rb @@ -6,46 +6,67 @@ module Resources class UserIdentity < BaseResource class Errors < BaseResource # ID of the access system that the user identity is associated with. + # @return [String] attr_accessor :acs_system_id # ID of the access system user that has an issue. + # @return [String] attr_accessor :acs_user_id # Unique identifier of the type of error. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :error_code # Detailed description of the error. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Date and time at which Seam created the error. + # @return [Time] date_accessor :created_at end class Warnings < BaseResource # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it. + # @return [String] attr_accessor :message # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue. + # @return [String] attr_accessor :warning_code # Date and time at which Seam created the warning. + # @return [Time] date_accessor :created_at end + # Array of errors associated with the user identity. Each error object within the array contains fields like "error_code" and "message." "error_code" is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it. + # @return [Array] resource_list_accessor :errors, Errors + # Array of warnings associated with the user identity. Each warning object within the array contains two fields: "warning_code" and "message." "warning_code" is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it. + # @return [Array] resource_list_accessor :warnings, Warnings # Array of access system user IDs associated with the user identity. + # @return [Array] attr_accessor :acs_user_ids # Display name for the user identity. + # @return [String] attr_accessor :display_name # Unique email address for the user identity. + # @return [String, nil] attr_accessor :email_address # Full name of the user associated with the user identity. + # @return [String, nil] attr_accessor :full_name # Unique phone number for the user identity in [E.164 format](https://www.itu.int/rec/T-REC-E.164/en) (for example, +15555550100). + # @return [String, nil] attr_accessor :phone_number # ID of the user identity. + # @return [String] attr_accessor :user_identity_id # Unique key for the user identity. + # @return [String, nil] attr_accessor :user_identity_key # ID of the workspace that contains the user identity. + # @return [String] attr_accessor :workspace_id # Date and time at which the user identity was created. + # @return [Time] date_accessor :created_at end end diff --git a/lib/seam/resources/webhook.rb b/lib/seam/resources/webhook.rb index 2811c49..3ff1278 100644 --- a/lib/seam/resources/webhook.rb +++ b/lib/seam/resources/webhook.rb @@ -5,12 +5,16 @@ module Resources # Represents a [webhook](https://docs.seam.co/developer-tools/webhooks) that enables you to receive notifications of events. When you create a webhook, specify the endpoint URL at which you want to receive events and the set of event types that you want to receive. class Webhook < BaseResource # Types of events that the [webhook](https://docs.seam.co/developer-tools/webhooks) should receive. + # @return [Array] attr_accessor :event_types # Secret associated with the [webhook](https://docs.seam.co/developer-tools/webhooks). + # @return [String, nil] attr_accessor :secret # URL for the [webhook](https://docs.seam.co/developer-tools/webhooks). + # @return [String] attr_accessor :url # ID of the webhook. + # @return [String] attr_accessor :webhook_id end end diff --git a/lib/seam/resources/workspace.rb b/lib/seam/resources/workspace.rb index 64a390a..1485978 100644 --- a/lib/seam/resources/workspace.rb +++ b/lib/seam/resources/workspace.rb @@ -6,35 +6,50 @@ module Resources class Workspace < BaseResource class ConnectWebviewCustomization < BaseResource # URL of the inviter logo for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + # @return [String, nil] attr_accessor :inviter_logo_url # Logo shape for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + # @return [String, nil] attr_accessor :logo_shape # Primary button color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + # @return [String, nil] attr_accessor :primary_button_color # Primary button text color for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + # @return [String, nil] attr_accessor :primary_button_text_color # Success message for [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) in the workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews). + # @return [String, nil] attr_accessor :success_message end + # @return [ConnectWebviewCustomization] resource_accessor :connect_webview_customization, ConnectWebviewCustomization # Company name associated with the [workspace](https://docs.seam.co/core-concepts/workspaces). + # @return [String] attr_accessor :company_name + # @return [String, nil] # @deprecated Use `company_name` instead. attr_accessor :connect_partner_name # Indicates whether publishable key authentication is enabled for this workspace. + # @return [Boolean] attr_accessor :is_publishable_key_auth_enabled # Indicates whether the workspace is a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). + # @return [Boolean] attr_accessor :is_sandbox # Indicates whether the [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) is suspended. Seam suspends sandbox workspaces that have not been accessed in 14 days. + # @return [Boolean] attr_accessor :is_suspended # Name of the [workspace](https://docs.seam.co/core-concepts/workspaces). + # @return [String] attr_accessor :name # ID of the organization to which the workspace belongs, or `null` if the workspace is not assigned to an organization. + # @return [String, nil] attr_accessor :organization_id # Publishable key for the [workspace](https://docs.seam.co/core-concepts/workspaces). This key is used to identify the workspace in client-side applications. + # @return [String, nil] attr_accessor :publishable_key # ID of the workspace. + # @return [String] attr_accessor :workspace_id end end diff --git a/lib/seam/routes/access_codes.rb b/lib/seam/routes/access_codes.rb index 6072e0f..c8bddf8 100644 --- a/lib/seam/routes/access_codes.rb +++ b/lib/seam/routes/access_codes.rb @@ -17,28 +17,28 @@ def unmanaged end # Creates a new [access code](https://docs.seam.co/low-level-apis/access-codes). For granting access, we recommend [Access Grants](https://docs.seam.co/use-cases/granting-access) instead: they work across both standalone smart locks and access control systems and manage the underlying codes for you. Use this low-level endpoint only when you need direct control over a code on a single device, such as setting a custom PIN value. - # @param device_id ID of the device for which you want to create the new access code. - # @param allow_external_modification Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. - # @param attempt_for_offline_device - # @param code Code to be used for access. - # @param common_code_key Key to identify access codes that should have the same code. Any two access codes with the same `common_code_key` are guaranteed to have the same `code`. See also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes). - # @param ends_at Date and time at which the validity of the new access code ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. - # @param is_external_modification_allowed Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. - # @param is_offline_access_code Indicates whether the access code is an [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes). - # @param is_one_time_use Indicates whether the [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code. - # @param max_time_rounding Maximum rounding adjustment. To create a daily-bound [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`. - # @param name Name of the new access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. + # @param device_id [String] ID of the device for which you want to create the new access code. + # @param allow_external_modification [Boolean, nil] Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. + # @param attempt_for_offline_device [Boolean, nil] + # @param code [String, nil] Code to be used for access. + # @param common_code_key [String, nil] Key to identify access codes that should have the same code. Any two access codes with the same `common_code_key` are guaranteed to have the same `code`. See also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes). + # @param ends_at [String, nil] Date and time at which the validity of the new access code ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. + # @param is_external_modification_allowed [Boolean, nil] Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. + # @param is_offline_access_code [Boolean, nil] Indicates whether the access code is an [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes). + # @param is_one_time_use [Boolean, nil] Indicates whether the [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) is a single-use access code. + # @param max_time_rounding [String, nil] Maximum rounding adjustment. To create a daily-bound [offline access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/offline-access-codes) for devices that support this feature, set this parameter to `1d`. + # @param name [String, nil] Name of the new access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. # # Note that the name provided on Seam is used to identify the code on Seam and is not necessarily the name that will appear in the lock provider's app or on the device. This is because lock providers may have constraints on names, such as length, uniqueness, or characters that can be used. In addition, some lock providers may break down names into components such as `first_name` and `last_name`. # # To provide a consistent experience, Seam identifies the code on Seam by its name but may modify the name that appears on the lock provider's app or on the device. For example, Seam may add additional characters or truncate the name to meet provider constraints. # # To help your users identify codes set by Seam, Seam provides the name exactly as it appears on the lock provider's app or on the device as a separate property called `appearance`. This is an object with a `name` property and, optionally, `first_name` and `last_name` properties (for providers that break down a name into components). - # @param prefer_native_scheduling Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`. - # @param preferred_code_length Preferred code length. Only applicable if you do not specify a `code`. If the affected device does not support the preferred code length, Seam reverts to using the shortest supported code length. - # @param starts_at Date and time at which the validity of the new access code starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - # @param use_backup_access_code_pool Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code). - # @param use_offline_access_code + # @param prefer_native_scheduling [Boolean, nil] Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`. + # @param preferred_code_length [Float, nil] Preferred code length. Only applicable if you do not specify a `code`. If the affected device does not support the preferred code length, Seam reverts to using the shortest supported code length. + # @param starts_at [String, nil] Date and time at which the validity of the new access code starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @param use_backup_access_code_pool [Boolean, nil] Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code). + # @param use_offline_access_code [Boolean, nil] # @deprecated use_offline_access_code: Use `is_offline_access_code` instead. # @return [Seam::Resources::AccessCode] OK def create(device_id:, allow_external_modification: nil, attempt_for_offline_device: nil, code: nil, common_code_key: nil, ends_at: nil, is_external_modification_allowed: nil, is_offline_access_code: nil, is_one_time_use: nil, max_time_rounding: nil, name: nil, prefer_native_scheduling: nil, preferred_code_length: nil, starts_at: nil, use_backup_access_code_pool: nil, use_offline_access_code: nil) @@ -58,24 +58,24 @@ def create(device_id:, allow_external_modification: nil, attempt_for_offline_dev # See also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes). # # For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes. - # @param device_ids IDs of the devices for which you want to create the new access codes. - # @param allow_external_modification Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. - # @param attempt_for_offline_device - # @param behavior_when_code_cannot_be_shared Desired behavior if any device cannot share a code. If `throw` (default), no access codes will be created if any device cannot share a code. If `create_random_code`, a random code will be created on devices that cannot share a code. - # @param code Code to be used for access. - # @param ends_at Date and time at which the validity of the new access code ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. - # @param is_external_modification_allowed Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. - # @param name Name of the new access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. + # @param device_ids [Array] IDs of the devices for which you want to create the new access codes. + # @param allow_external_modification [Boolean, nil] Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. + # @param attempt_for_offline_device [Boolean, nil] + # @param behavior_when_code_cannot_be_shared [String, nil] Desired behavior if any device cannot share a code. If `throw` (default), no access codes will be created if any device cannot share a code. If `create_random_code`, a random code will be created on devices that cannot share a code. + # @param code [String, nil] Code to be used for access. + # @param ends_at [String, nil] Date and time at which the validity of the new access code ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. + # @param is_external_modification_allowed [Boolean, nil] Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. + # @param name [String, nil] Name of the new access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. # # Note that the name provided on Seam is used to identify the code on Seam and is not necessarily the name that will appear in the lock provider's app or on the device. This is because lock providers may have constraints on names, such as length, uniqueness, or characters that can be used. In addition, some lock providers may break down names into components such as `first_name` and `last_name`. # # To provide a consistent experience, Seam identifies the code on Seam by its name but may modify the name that appears on the lock provider's app or on the device. For example, Seam may add additional characters or truncate the name to meet provider constraints. # # To help your users identify codes set by Seam, Seam provides the name exactly as it appears on the lock provider's app or on the device as a separate property called `appearance`. This is an object with a `name` property and, optionally, `first_name` and `last_name` properties (for providers that break down a name into components). - # @param prefer_native_scheduling Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`. - # @param preferred_code_length Preferred code length. If the affected devices do not support the preferred code length, Seam reverts to using the shortest supported code length. - # @param starts_at Date and time at which the validity of the new access code starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - # @param use_backup_access_code_pool Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code). + # @param prefer_native_scheduling [Boolean, nil] Indicates whether [native scheduling](https://docs.seam.co/low-level-apis/smart-locks/access-codes#native-scheduling) should be used for time-bound codes when supported by the provider. Default: `true`. + # @param preferred_code_length [Float, nil] Preferred code length. If the affected devices do not support the preferred code length, Seam reverts to using the shortest supported code length. + # @param starts_at [String, nil] Date and time at which the validity of the new access code starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @param use_backup_access_code_pool [Boolean, nil] Indicates whether to use a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) provided by Seam. If `true`, you can use [`/access_codes/pull_backup_access_code`](https://docs.seam.co/api/access_codes/pull_backup_access_code). # @return [Seam::Resources::AccessCode] OK def create_multiple(device_ids:, allow_external_modification: nil, attempt_for_offline_device: nil, behavior_when_code_cannot_be_shared: nil, code: nil, ends_at: nil, is_external_modification_allowed: nil, name: nil, prefer_native_scheduling: nil, preferred_code_length: nil, starts_at: nil, use_backup_access_code_pool: nil) res = @client.post("/access_codes/create_multiple", {device_ids: device_ids, allow_external_modification: allow_external_modification, attempt_for_offline_device: attempt_for_offline_device, behavior_when_code_cannot_be_shared: behavior_when_code_cannot_be_shared, code: code, ends_at: ends_at, is_external_modification_allowed: is_external_modification_allowed, name: name, prefer_native_scheduling: prefer_native_scheduling, preferred_code_length: preferred_code_length, starts_at: starts_at, use_backup_access_code_pool: use_backup_access_code_pool}.compact) @@ -84,8 +84,8 @@ def create_multiple(device_ids:, allow_external_modification: nil, attempt_for_o end # Deletes an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). - # @param access_code_id ID of the access code that you want to delete. - # @param device_id ID of the device for which you want to delete the access code. + # @param access_code_id [String] ID of the access code that you want to delete. + # @param device_id [String, nil] ID of the device for which you want to delete the access code. # @return [nil] OK def delete(access_code_id:, device_id: nil) @client.post("/access_codes/delete", {access_code_id: access_code_id, device_id: device_id}.compact) @@ -94,7 +94,7 @@ def delete(access_code_id:, device_id: nil) end # Generates a code for an [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes), given a device ID. - # @param device_id ID of the device for which you want to generate a code. + # @param device_id [String] ID of the device for which you want to generate a code. # @return [Seam::Resources::AccessCode] OK def generate_code(device_id:) res = @client.post("/access_codes/generate_code", {device_id: device_id}.compact) @@ -105,9 +105,9 @@ def generate_code(device_id:) # Returns a specified [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). # # You must specify either `access_code_id` or both `device_id` and `code`. - # @param access_code_id ID of the access code that you want to get. You must specify either `access_code_id` or both `device_id` and `code`. - # @param code Code of the access code that you want to get. You must specify either `access_code_id` or both `device_id` and `code`. - # @param device_id ID of the device containing the access code that you want to get. You must specify either `access_code_id` or both `device_id` and `code`. + # @param access_code_id [String, nil] ID of the access code that you want to get. You must specify either `access_code_id` or both `device_id` and `code`. + # @param code [String, nil] Code of the access code that you want to get. You must specify either `access_code_id` or both `device_id` and `code`. + # @param device_id [String, nil] ID of the device containing the access code that you want to get. You must specify either `access_code_id` or both `device_id` and `code`. # @return [Seam::Resources::AccessCode] OK def get(access_code_id: nil, code: nil, device_id: nil) res = @client.post("/access_codes/get", {access_code_id: access_code_id, code: code, device_id: device_id}.compact) @@ -118,16 +118,16 @@ def get(access_code_id: nil, code: nil, device_id: nil) # Returns a list of all [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes). # # Specify `device_id`, `access_code_ids`, `access_method_id`, `access_grant_id`, or `access_grant_key`. - # @param access_code_ids IDs of the access codes that you want to retrieve. Specify `device_id`, `access_code_ids`, `access_method_id`, `access_grant_id`, or `access_grant_key`. - # @param access_grant_id ID of the access grant for which you want to list access codes. Specify `device_id`, `access_code_ids`, `access_method_id`, `access_grant_id`, or `access_grant_key`. - # @param access_grant_key Key of the access grant for which you want to list access codes. Specify `device_id`, `access_code_ids`, `access_method_id`, `access_grant_id`, or `access_grant_key`. - # @param access_method_id ID of the access method for which you want to list access codes. Specify `device_id`, `access_code_ids`, `access_method_id`, `access_grant_id`, or `access_grant_key`. - # @param customer_key Customer key for which you want to list access codes. - # @param device_id ID of the device for which you want to list access codes. Specify `device_id`, `access_code_ids`, `access_method_id`, `access_grant_id`, or `access_grant_key`. - # @param limit Numerical limit on the number of access codes to return. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param search String for which to search. Filters returned access codes to include all records that satisfy a partial match using `name`, `code` or `access_code_id`. - # @param user_identifier_key Your user ID for the user by which to filter access codes. + # @param access_code_ids [Array, nil] IDs of the access codes that you want to retrieve. Specify `device_id`, `access_code_ids`, `access_method_id`, `access_grant_id`, or `access_grant_key`. + # @param access_grant_id [String, nil] ID of the access grant for which you want to list access codes. Specify `device_id`, `access_code_ids`, `access_method_id`, `access_grant_id`, or `access_grant_key`. + # @param access_grant_key [String, nil] Key of the access grant for which you want to list access codes. Specify `device_id`, `access_code_ids`, `access_method_id`, `access_grant_id`, or `access_grant_key`. + # @param access_method_id [String, nil] ID of the access method for which you want to list access codes. Specify `device_id`, `access_code_ids`, `access_method_id`, `access_grant_id`, or `access_grant_key`. + # @param customer_key [String, nil] Customer key for which you want to list access codes. + # @param device_id [String, nil] ID of the device for which you want to list access codes. Specify `device_id`, `access_code_ids`, `access_method_id`, `access_grant_id`, or `access_grant_key`. + # @param limit [Float, nil] Numerical limit on the number of access codes to return. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param search [String, nil] String for which to search. Filters returned access codes to include all records that satisfy a partial match using `name`, `code` or `access_code_id`. + # @param user_identifier_key [String, nil] Your user ID for the user by which to filter access codes. # @return [Seam::Resources::AccessCode] OK def list(access_code_ids: nil, access_grant_id: nil, access_grant_key: nil, access_method_id: nil, customer_key: nil, device_id: nil, limit: nil, page_cursor: nil, search: nil, user_identifier_key: nil) res = @client.post("/access_codes/list", {access_code_ids: access_code_ids, access_grant_id: access_grant_id, access_grant_key: access_grant_key, access_method_id: access_method_id, customer_key: customer_key, device_id: device_id, limit: limit, page_cursor: page_cursor, search: search, user_identifier_key: user_identifier_key}.compact) @@ -144,7 +144,7 @@ def list(access_code_ids: nil, access_grant_id: nil, access_grant_key: nil, acce # You can only pull backup access codes for time-bound access codes. # # Before pulling a backup access code, make sure that the device's `properties.supports_backup_access_code_pool` is `true`. Then, to activate the backup pool, set `use_backup_access_code_pool` to `true` when creating an access code. - # @param access_code_id ID of the access code for which you want to pull a backup access code. + # @param access_code_id [String] ID of the access code for which you want to pull a backup access code. # @return [Seam::Resources::AccessCode] OK def pull_backup_access_code(access_code_id:) res = @client.post("/access_codes/pull_backup_access_code", {access_code_id: access_code_id}.compact) @@ -155,10 +155,10 @@ def pull_backup_access_code(access_code_id:) # Enables you to report access code-related constraints for a device. Currently, supports reporting supported code length constraints for SmartThings devices. # # Specify either `supported_code_lengths` or `min_code_length`/`max_code_length`. - # @param device_id ID of the device for which you want to report constraints. - # @param max_code_length Maximum supported code length as an integer between 4 and 20, inclusive. You can specify either `min_code_length`/`max_code_length` or `supported_code_lengths`. - # @param min_code_length Minimum supported code length as an integer between 4 and 20, inclusive. You can specify either `min_code_length`/`max_code_length` or `supported_code_lengths`. - # @param supported_code_lengths Array of supported code lengths as integers between 4 and 20, inclusive. You can specify either `supported_code_lengths` or `min_code_length`/`max_code_length`. + # @param device_id [String] ID of the device for which you want to report constraints. + # @param max_code_length [Integer, nil] Maximum supported code length as an integer between 4 and 20, inclusive. You can specify either `min_code_length`/`max_code_length` or `supported_code_lengths`. + # @param min_code_length [Integer, nil] Minimum supported code length as an integer between 4 and 20, inclusive. You can specify either `min_code_length`/`max_code_length` or `supported_code_lengths`. + # @param supported_code_lengths [Array, nil] Array of supported code lengths as integers between 4 and 20, inclusive. You can specify either `supported_code_lengths` or `min_code_length`/`max_code_length`. # @return [nil] OK def report_device_constraints(device_id:, max_code_length: nil, min_code_length: nil, supported_code_lengths: nil) @client.post("/access_codes/report_device_constraints", {device_id: device_id, max_code_length: max_code_length, min_code_length: min_code_length, supported_code_lengths: supported_code_lengths}.compact) @@ -169,23 +169,23 @@ def report_device_constraints(device_id:, max_code_length: nil, min_code_length: # Updates a specified active or upcoming [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes). # # See also [Modifying Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes). - # @param access_code_id ID of the access code that you want to update. - # @param allow_external_modification Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. - # @param attempt_for_offline_device - # @param code Code to be used for access. - # @param device_id ID of the device containing the access code that you want to update. - # @param ends_at Date and time at which the validity of the new access code ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. - # @param is_external_modification_allowed Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. - # @param is_managed Indicates whether the access code is managed through Seam. Note that to convert an unmanaged access code into a managed access code, use `/access_codes/unmanaged/convert_to_managed`. - # @param name Name of the new access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. + # @param access_code_id [String] ID of the access code that you want to update. + # @param allow_external_modification [Boolean, nil] Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. + # @param attempt_for_offline_device [Boolean, nil] + # @param code [String, nil] Code to be used for access. + # @param device_id [String, nil] ID of the device containing the access code that you want to update. + # @param ends_at [String, nil] Date and time at which the validity of the new access code ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. + # @param is_external_modification_allowed [Boolean, nil] Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. Default: `false`. + # @param is_managed [Boolean, nil] Indicates whether the access code is managed through Seam. Note that to convert an unmanaged access code into a managed access code, use `/access_codes/unmanaged/convert_to_managed`. + # @param name [String, nil] Name of the new access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. # # Note that the name provided on Seam is used to identify the code on Seam and is not necessarily the name that will appear in the lock provider's app or on the device. This is because lock providers may have constraints on names, such as length, uniqueness, or characters that can be used. In addition, some lock providers may break down names into components such as `first_name` and `last_name`. # # To provide a consistent experience, Seam identifies the code on Seam by its name but may modify the name that appears on the lock provider's app or on the device. For example, Seam may add additional characters or truncate the name to meet provider constraints. # # To help your users identify codes set by Seam, Seam provides the name exactly as it appears on the lock provider's app or on the device as a separate property called `appearance`. This is an object with a `name` property and, optionally, `first_name` and `last_name` properties (for providers that break down a name into components). - # @param starts_at Date and time at which the validity of the new access code starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - # @param type Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access). + # @param starts_at [String, nil] Date and time at which the validity of the new access code starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @param type [String, nil] Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access). # @return [nil] OK def update(access_code_id:, allow_external_modification: nil, attempt_for_offline_device: nil, code: nil, device_id: nil, ends_at: nil, is_external_modification_allowed: nil, is_managed: nil, name: nil, starts_at: nil, type: nil) @client.post("/access_codes/update", {access_code_id: access_code_id, allow_external_modification: allow_external_modification, attempt_for_offline_device: attempt_for_offline_device, code: code, device_id: device_id, ends_at: ends_at, is_external_modification_allowed: is_external_modification_allowed, is_managed: is_managed, name: name, starts_at: starts_at, type: type}.compact) @@ -198,16 +198,16 @@ def update(access_code_id:, allow_external_modification: nil, attempt_for_offlin # Specify the `common_code_key` to identify the set of access codes that you want to update. # # See also [Update Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes#update-linked-access-codes). - # @param common_code_key Key that links the group of access codes, assigned on creation by `/access_codes/create_multiple`. - # @param ends_at Date and time at which the validity of the new access code ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. - # @param name Name of the new access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. + # @param common_code_key [String] Key that links the group of access codes, assigned on creation by `/access_codes/create_multiple`. + # @param ends_at [String, nil] Date and time at which the validity of the new access code ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. + # @param name [String, nil] Name of the new access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. # # Note that the name provided on Seam is used to identify the code on Seam and is not necessarily the name that will appear in the lock provider's app or on the device. This is because lock providers may have constraints on names, such as length, uniqueness, or characters that can be used. In addition, some lock providers may break down names into components such as `first_name` and `last_name`. # # To provide a consistent experience, Seam identifies the code on Seam by its name but may modify the name that appears on the lock provider's app or on the device. For example, Seam may add additional characters or truncate the name to meet provider constraints. # # To help your users identify codes set by Seam, Seam provides the name exactly as it appears on the lock provider's app or on the device as a separate property called `appearance`. This is an object with a `name` property and, optionally, `first_name` and `last_name` properties (for providers that break down a name into components). - # @param starts_at Date and time at which the validity of the new access code starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @param starts_at [String, nil] Date and time at which the validity of the new access code starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. # @return [nil] OK def update_multiple(common_code_key:, ends_at: nil, name: nil, starts_at: nil) @client.post("/access_codes/update_multiple", {common_code_key: common_code_key, ends_at: ends_at, name: name, starts_at: starts_at}.compact) diff --git a/lib/seam/routes/access_codes_simulate.rb b/lib/seam/routes/access_codes_simulate.rb index 43d7343..8ea4c20 100644 --- a/lib/seam/routes/access_codes_simulate.rb +++ b/lib/seam/routes/access_codes_simulate.rb @@ -9,9 +9,9 @@ def initialize(client:, defaults:) end # Simulates the creation of an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) in a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). - # @param code Code of the simulated unmanaged access code. - # @param device_id ID of the device for which you want to simulate the creation of an unmanaged access code. - # @param name Name of the simulated unmanaged access code. + # @param code [String] Code of the simulated unmanaged access code. + # @param device_id [String] ID of the device for which you want to simulate the creation of an unmanaged access code. + # @param name [String] Name of the simulated unmanaged access code. # @return [Seam::Resources::UnmanagedAccessCode] OK def create_unmanaged_access_code(code:, device_id:, name:) res = @client.post("/access_codes/simulate/create_unmanaged_access_code", {code: code, device_id: device_id, name: name}.compact) diff --git a/lib/seam/routes/access_codes_unmanaged.rb b/lib/seam/routes/access_codes_unmanaged.rb index 6a66484..ffd25ea 100644 --- a/lib/seam/routes/access_codes_unmanaged.rb +++ b/lib/seam/routes/access_codes_unmanaged.rb @@ -13,10 +13,10 @@ def initialize(client:, defaults:) # An unmanaged access code has a limited set of operations that you can perform on it. Once you convert an unmanaged access code to a managed access code, the full set of access code operations and lifecycle events becomes available for it. # # Note that not all device providers support converting an unmanaged access code to a managed access code. - # @param access_code_id ID of the unmanaged access code that you want to convert to a managed access code. - # @param allow_external_modification Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed. - # @param force Indicates whether to force the access code conversion. To switch management of an access code from one Seam workspace to another, set `force` to `true`. - # @param is_external_modification_allowed Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed. + # @param access_code_id [String] ID of the unmanaged access code that you want to convert to a managed access code. + # @param allow_external_modification [Boolean, nil] Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed. + # @param force [Boolean, nil] Indicates whether to force the access code conversion. To switch management of an access code from one Seam workspace to another, set `force` to `true`. + # @param is_external_modification_allowed [Boolean, nil] Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the access code is allowed. # @return [nil] OK def convert_to_managed(access_code_id:, allow_external_modification: nil, force: nil, is_external_modification_allowed: nil) @client.post("/access_codes/unmanaged/convert_to_managed", {access_code_id: access_code_id, allow_external_modification: allow_external_modification, force: force, is_external_modification_allowed: is_external_modification_allowed}.compact) @@ -25,7 +25,7 @@ def convert_to_managed(access_code_id:, allow_external_modification: nil, force: end # Deletes an [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes). - # @param access_code_id ID of the unmanaged access code that you want to delete. + # @param access_code_id [String] ID of the unmanaged access code that you want to delete. # @return [nil] OK def delete(access_code_id:) @client.post("/access_codes/unmanaged/delete", {access_code_id: access_code_id}.compact) @@ -36,9 +36,9 @@ def delete(access_code_id:) # Returns a specified [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes). # # You must specify either `access_code_id` or both `device_id` and `code`. - # @param access_code_id ID of the unmanaged access code that you want to get. You must specify either `access_code_id` or both `device_id` and `code`. - # @param code Code of the unmanaged access code that you want to get. You must specify either `access_code_id` or both `device_id` and `code`. - # @param device_id ID of the device containing the unmanaged access code that you want to get. You must specify either `access_code_id` or both `device_id` and `code`. + # @param access_code_id [String, nil] ID of the unmanaged access code that you want to get. You must specify either `access_code_id` or both `device_id` and `code`. + # @param code [String, nil] Code of the unmanaged access code that you want to get. You must specify either `access_code_id` or both `device_id` and `code`. + # @param device_id [String, nil] ID of the device containing the unmanaged access code that you want to get. You must specify either `access_code_id` or both `device_id` and `code`. # @return [Seam::Resources::UnmanagedAccessCode] OK def get(access_code_id: nil, code: nil, device_id: nil) res = @client.post("/access_codes/unmanaged/get", {access_code_id: access_code_id, code: code, device_id: device_id}.compact) @@ -47,11 +47,11 @@ def get(access_code_id: nil, code: nil, device_id: nil) end # Returns a list of all [unmanaged access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes). - # @param device_id ID of the device for which you want to list unmanaged access codes. - # @param limit Numerical limit on the number of unmanaged access codes to return. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param search String for which to search. Filters returned access codes to include all records that satisfy a partial match using `name`, `code` or `access_code_id`. - # @param user_identifier_key Your user ID for the user by which to filter unmanaged access codes. + # @param device_id [String] ID of the device for which you want to list unmanaged access codes. + # @param limit [Float, nil] Numerical limit on the number of unmanaged access codes to return. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param search [String, nil] String for which to search. Filters returned access codes to include all records that satisfy a partial match using `name`, `code` or `access_code_id`. + # @param user_identifier_key [String, nil] Your user ID for the user by which to filter unmanaged access codes. # @return [Seam::Resources::UnmanagedAccessCode] OK def list(device_id:, limit: nil, page_cursor: nil, search: nil, user_identifier_key: nil) res = @client.post("/access_codes/unmanaged/list", {device_id: device_id, limit: limit, page_cursor: page_cursor, search: search, user_identifier_key: user_identifier_key}.compact) @@ -60,11 +60,11 @@ def list(device_id:, limit: nil, page_cursor: nil, search: nil, user_identifier_ end # Updates a specified [unmanaged access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes). - # @param access_code_id ID of the unmanaged access code that you want to update. - # @param is_managed - # @param allow_external_modification Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. - # @param force Indicates whether to force the unmanaged access code update. - # @param is_external_modification_allowed Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. + # @param access_code_id [String] ID of the unmanaged access code that you want to update. + # @param is_managed [Boolean] + # @param allow_external_modification [Boolean, nil] Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. + # @param force [Boolean, nil] Indicates whether to force the unmanaged access code update. + # @param is_external_modification_allowed [Boolean, nil] Indicates whether [external modification](https://docs.seam.co/low-level-apis/smart-locks/access-codes#external-modification) of the code is allowed. # @return [nil] OK def update(access_code_id:, is_managed:, allow_external_modification: nil, force: nil, is_external_modification_allowed: nil) @client.post("/access_codes/unmanaged/update", {access_code_id: access_code_id, is_managed: is_managed, allow_external_modification: allow_external_modification, force: force, is_external_modification_allowed: is_external_modification_allowed}.compact) diff --git a/lib/seam/routes/access_grants.rb b/lib/seam/routes/access_grants.rb index 75e7b02..2b02927 100644 --- a/lib/seam/routes/access_grants.rb +++ b/lib/seam/routes/access_grants.rb @@ -13,23 +13,23 @@ def unmanaged end # Creates a new [Access Grant](https://docs.seam.co/use-cases/granting-access/access-grants). Access Grants are the default and recommended way to grant a user access to any physical space, irrespective of the locking hardware. They work with both standalone smart locks (using `device_ids`) and access control systems (using `acs_entrance_ids` or `space_ids`), and can issue PIN codes, key cards, and mobile keys through a single request. - # @param requested_access_methods - # @param user_identity_id ID of user identity for whom access is being granted. - # @param user_identity When used, creates a new user identity with the given details, and grants them access. - # @param access_grant_key Unique key for the access grant within the workspace. - # @param acs_entrance_ids Set of IDs of the [entrances](https://docs.seam.co/api/acs/systems/list) to which access is being granted. - # @param customization_profile_id ID of the customization profile to apply to the Access Grant and its access methods. - # @param device_ids Set of IDs of the [devices](https://docs.seam.co/api/devices/list) to which access is being granted. - # @param ends_at Date and time at which the validity of the new grant ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. - # @param location + # @param requested_access_methods [Array] + # @param user_identity_id [String, nil] ID of user identity for whom access is being granted. + # @param user_identity [Hash, nil] When used, creates a new user identity with the given details, and grants them access. + # @param access_grant_key [String, nil] Unique key for the access grant within the workspace. + # @param acs_entrance_ids [Array, nil] Set of IDs of the [entrances](https://docs.seam.co/api/acs/systems/list) to which access is being granted. + # @param customization_profile_id [String, nil] ID of the customization profile to apply to the Access Grant and its access methods. + # @param device_ids [Array, nil] Set of IDs of the [devices](https://docs.seam.co/api/devices/list) to which access is being granted. + # @param ends_at [String, nil] Date and time at which the validity of the new grant ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. + # @param location [Hash, nil] # @deprecated location: Create a space first, then reference it using `space_ids`. - # @param location_ids + # @param location_ids [Array, nil] # @deprecated location_ids: Use `space_ids`. - # @param name Name for the access grant. - # @param reservation_key Reservation key for the access grant. - # @param space_ids Set of IDs of existing spaces to which access is being granted. - # @param space_keys Set of keys of existing spaces to which access is being granted. - # @param starts_at Date and time at which the validity of the new grant starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @param name [String, nil] Name for the access grant. + # @param reservation_key [String, nil] Reservation key for the access grant. + # @param space_ids [Array, nil] Set of IDs of existing spaces to which access is being granted. + # @param space_keys [Array, nil] Set of keys of existing spaces to which access is being granted. + # @param starts_at [String, nil] Date and time at which the validity of the new grant starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. # @return [Seam::Resources::AccessGrant] OK def create(requested_access_methods:, user_identity_id: nil, user_identity: nil, access_grant_key: nil, acs_entrance_ids: nil, customization_profile_id: nil, device_ids: nil, ends_at: nil, location: nil, location_ids: nil, name: nil, reservation_key: nil, space_ids: nil, space_keys: nil, starts_at: nil) res = @client.post("/access_grants/create", {requested_access_methods: requested_access_methods, user_identity_id: user_identity_id, user_identity: user_identity, access_grant_key: access_grant_key, acs_entrance_ids: acs_entrance_ids, customization_profile_id: customization_profile_id, device_ids: device_ids, ends_at: ends_at, location: location, location_ids: location_ids, name: name, reservation_key: reservation_key, space_ids: space_ids, space_keys: space_keys, starts_at: starts_at}.compact) @@ -38,7 +38,7 @@ def create(requested_access_methods:, user_identity_id: nil, user_identity: nil, end # Delete an Access Grant. - # @param access_grant_id ID of Access Grant to delete. + # @param access_grant_id [String] ID of Access Grant to delete. # @return [nil] OK def delete(access_grant_id:) @client.post("/access_grants/delete", {access_grant_id: access_grant_id}.compact) @@ -47,8 +47,8 @@ def delete(access_grant_id:) end # Get an Access Grant. - # @param access_grant_id ID of Access Grant to get. - # @param access_grant_key Unique key of Access Grant to get. + # @param access_grant_id [String, nil] ID of Access Grant to get. + # @param access_grant_key [String, nil] Unique key of Access Grant to get. # @return [Seam::Resources::AccessGrant] OK def get(access_grant_id: nil, access_grant_key: nil) res = @client.post("/access_grants/get", {access_grant_id: access_grant_id, access_grant_key: access_grant_key}.compact) @@ -57,10 +57,10 @@ def get(access_grant_id: nil, access_grant_key: nil) end # Gets all related resources for one or more Access Grants. - # @param access_grant_ids IDs of the access grants that you want to get along with their related resources. - # @param access_grant_keys Keys of the access grants that you want to get along with their related resources. - # @param exclude - # @param include + # @param access_grant_ids [Array, nil] IDs of the access grants that you want to get along with their related resources. + # @param access_grant_keys [Array, nil] Keys of the access grants that you want to get along with their related resources. + # @param exclude [Array, nil] + # @param include [Array, nil] # @return [Seam::Resources::Batch] OK def get_related(access_grant_ids: nil, access_grant_keys: nil, exclude: nil, include: nil) res = @client.post("/access_grants/get_related", {access_grant_ids: access_grant_ids, access_grant_keys: access_grant_keys, exclude: exclude, include: include}.compact) @@ -69,20 +69,20 @@ def get_related(access_grant_ids: nil, access_grant_keys: nil, exclude: nil, inc end # Gets an Access Grant. - # @param access_code_id ID of the access code by which you want to filter the list of Access Grants. - # @param access_grant_ids IDs of the access grants to retrieve. - # @param access_grant_key Filter Access Grants by access_grant_key. Use null to filter for Access Grants without an access_grant_key. - # @param acs_entrance_id ID of the entrance by which you want to filter the list of Access Grants. - # @param acs_system_id ID of the access system by which you want to filter the list of Access Grants. - # @param customer_key Customer key for which you want to list access grants. - # @param device_id ID of the device by which you want to filter the list of Access Grants. - # @param limit Numerical limit on the number of access grants to return. - # @param location_id + # @param access_code_id [String, nil] ID of the access code by which you want to filter the list of Access Grants. + # @param access_grant_ids [Array, nil] IDs of the access grants to retrieve. + # @param access_grant_key [String, nil] Filter Access Grants by access_grant_key. Use null to filter for Access Grants without an access_grant_key. + # @param acs_entrance_id [String, nil] ID of the entrance by which you want to filter the list of Access Grants. + # @param acs_system_id [String, nil] ID of the access system by which you want to filter the list of Access Grants. + # @param customer_key [String, nil] Customer key for which you want to list access grants. + # @param device_id [String, nil] ID of the device by which you want to filter the list of Access Grants. + # @param limit [Float, nil] Numerical limit on the number of access grants to return. + # @param location_id [String, nil] # @deprecated location_id: Use `space_id`. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param reservation_key Filter Access Grants by reservation_key. - # @param space_id ID of the space by which you want to filter the list of Access Grants. - # @param user_identity_id ID of user identity by which you want to filter the list of Access Grants. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param reservation_key [String, nil] Filter Access Grants by reservation_key. + # @param space_id [String, nil] ID of the space by which you want to filter the list of Access Grants. + # @param user_identity_id [String, nil] ID of user identity by which you want to filter the list of Access Grants. # @return [Seam::Resources::AccessGrant] OK def list(access_code_id: nil, access_grant_ids: nil, access_grant_key: nil, acs_entrance_id: nil, acs_system_id: nil, customer_key: nil, device_id: nil, limit: nil, location_id: nil, page_cursor: nil, reservation_key: nil, space_id: nil, user_identity_id: nil) res = @client.post("/access_grants/list", {access_code_id: access_code_id, access_grant_ids: access_grant_ids, access_grant_key: access_grant_key, acs_entrance_id: acs_entrance_id, acs_system_id: acs_system_id, customer_key: customer_key, device_id: device_id, limit: limit, location_id: location_id, page_cursor: page_cursor, reservation_key: reservation_key, space_id: space_id, user_identity_id: user_identity_id}.compact) @@ -91,8 +91,8 @@ def list(access_code_id: nil, access_grant_ids: nil, access_grant_key: nil, acs_ end # Adds additional requested access methods to an existing Access Grant. - # @param access_grant_id ID of the Access Grant to add access methods to. - # @param requested_access_methods Array of requested access methods to add to the access grant. + # @param access_grant_id [String] ID of the Access Grant to add access methods to. + # @param requested_access_methods [Array] Array of requested access methods to add to the access grant. # @return [Seam::Resources::AccessGrant] OK def request_access_methods(access_grant_id:, requested_access_methods:) res = @client.post("/access_grants/request_access_methods", {access_grant_id: access_grant_id, requested_access_methods: requested_access_methods}.compact) @@ -101,11 +101,11 @@ def request_access_methods(access_grant_id:, requested_access_methods:) end # Updates an existing Access Grant's time window. - # @param access_grant_id ID of the Access Grant to update. Provide either `access_grant_id` or `access_grant_key`. - # @param access_grant_key Key of the Access Grant to update. Provide either `access_grant_id` or `access_grant_key`. - # @param ends_at Date and time at which the validity of the grant ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. - # @param name Display name for the access grant. - # @param starts_at Date and time at which the validity of the grant starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @param access_grant_id [String, nil] ID of the Access Grant to update. Provide either `access_grant_id` or `access_grant_key`. + # @param access_grant_key [String, nil] Key of the Access Grant to update. Provide either `access_grant_id` or `access_grant_key`. + # @param ends_at [Time, nil] Date and time at which the validity of the grant ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. + # @param name [String, nil] Display name for the access grant. + # @param starts_at [Time, nil] Date and time at which the validity of the grant starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. # @return [nil] OK def update(access_grant_id: nil, access_grant_key: nil, ends_at: nil, name: nil, starts_at: nil) @client.post("/access_grants/update", {access_grant_id: access_grant_id, access_grant_key: access_grant_key, ends_at: ends_at, name: name, starts_at: starts_at}.compact) diff --git a/lib/seam/routes/access_grants_unmanaged.rb b/lib/seam/routes/access_grants_unmanaged.rb index 33a06b5..906d03c 100644 --- a/lib/seam/routes/access_grants_unmanaged.rb +++ b/lib/seam/routes/access_grants_unmanaged.rb @@ -9,7 +9,7 @@ def initialize(client:, defaults:) end # Get an unmanaged Access Grant (where is_managed = false). - # @param access_grant_id ID of unmanaged Access Grant to get. + # @param access_grant_id [String] ID of unmanaged Access Grant to get. # @return [Seam::Resources::UnmanagedAccessGrant] OK def get(access_grant_id:) res = @client.post("/access_grants/unmanaged/get", {access_grant_id: access_grant_id}.compact) @@ -18,12 +18,12 @@ def get(access_grant_id:) end # Gets unmanaged Access Grants (where is_managed = false). - # @param acs_entrance_id ID of the entrance by which you want to filter the list of unmanaged Access Grants. - # @param acs_system_id ID of the access system by which you want to filter the list of unmanaged Access Grants. - # @param limit Numerical limit on the number of unmanaged access grants to return. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param reservation_key Filter unmanaged Access Grants by reservation_key. - # @param user_identity_id ID of user identity by which you want to filter the list of unmanaged Access Grants. + # @param acs_entrance_id [String, nil] ID of the entrance by which you want to filter the list of unmanaged Access Grants. + # @param acs_system_id [String, nil] ID of the access system by which you want to filter the list of unmanaged Access Grants. + # @param limit [Float, nil] Numerical limit on the number of unmanaged access grants to return. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param reservation_key [String, nil] Filter unmanaged Access Grants by reservation_key. + # @param user_identity_id [String, nil] ID of user identity by which you want to filter the list of unmanaged Access Grants. # @return [Seam::Resources::UnmanagedAccessGrant] OK def list(acs_entrance_id: nil, acs_system_id: nil, limit: nil, page_cursor: nil, reservation_key: nil, user_identity_id: nil) res = @client.post("/access_grants/unmanaged/list", {acs_entrance_id: acs_entrance_id, acs_system_id: acs_system_id, limit: limit, page_cursor: page_cursor, reservation_key: reservation_key, user_identity_id: user_identity_id}.compact) @@ -36,9 +36,9 @@ def list(acs_entrance_id: nil, acs_system_id: nil, limit: nil, page_cursor: nil, # This endpoint can only be used to convert unmanaged access grants to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed access grants back to unmanaged. # # When converting an unmanaged access grant to managed, all associated access methods will also be converted to managed. - # @param access_grant_id ID of the unmanaged Access Grant to update. - # @param is_managed Must be set to true to convert the unmanaged access grant to managed. - # @param access_grant_key Unique key for the access grant. If not provided, the existing key will be preserved. + # @param access_grant_id [String] ID of the unmanaged Access Grant to update. + # @param is_managed [Boolean] Must be set to true to convert the unmanaged access grant to managed. + # @param access_grant_key [String, nil] Unique key for the access grant. If not provided, the existing key will be preserved. # @return [nil] OK def update(access_grant_id:, is_managed:, access_grant_key: nil) @client.post("/access_grants/unmanaged/update", {access_grant_id: access_grant_id, is_managed: is_managed, access_grant_key: access_grant_key}.compact) diff --git a/lib/seam/routes/access_methods.rb b/lib/seam/routes/access_methods.rb index 554b05f..02a589b 100644 --- a/lib/seam/routes/access_methods.rb +++ b/lib/seam/routes/access_methods.rb @@ -15,8 +15,8 @@ def unmanaged end # Assigns a pre-registered card credential, identified by `card_number`, to a card-mode access method. Use this endpoint for access systems that use pre-registered cards, where a physical card must be associated with an access method before it can be used for access. Assigning a card credential also triggers issuance of the access method. - # @param access_method_id ID of the `access_method` to assign the credential to. - # @param card_number Card number of the credential to assign. + # @param access_method_id [String] ID of the `access_method` to assign the credential to. + # @param card_number [String] Card number of the credential to assign. # @return [Seam::Resources::ActionAttempt] OK def assign_card(access_method_id:, card_number:, wait_for_action_attempt: nil) res = @client.post("/access_methods/assign_card", {access_method_id: access_method_id, card_number: card_number}.compact) @@ -27,9 +27,9 @@ def assign_card(access_method_id:, card_number:, wait_for_action_attempt: nil) end # Deletes an access method. - # @param access_method_id ID of access method to delete. - # @param access_grant_id ID of access grant whose access methods should be deleted. - # @param reservation_key Reservation key of the access grant whose access methods should be deleted. + # @param access_method_id [String, nil] ID of access method to delete. + # @param access_grant_id [String, nil] ID of access grant whose access methods should be deleted. + # @param reservation_key [String, nil] Reservation key of the access grant whose access methods should be deleted. # @return [nil] OK def delete(access_method_id: nil, access_grant_id: nil, reservation_key: nil) @client.post("/access_methods/delete", {access_method_id: access_method_id, access_grant_id: access_grant_id, reservation_key: reservation_key}.compact) @@ -38,8 +38,8 @@ def delete(access_method_id: nil, access_grant_id: nil, reservation_key: nil) end # Encodes an existing access method onto a plastic card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - # @param access_method_id ID of the `access_method` to encode onto a card. - # @param acs_encoder_id ID of the `acs_encoder` to use to encode the `access_method`. + # @param access_method_id [String] ID of the `access_method` to encode onto a card. + # @param acs_encoder_id [String] ID of the `acs_encoder` to use to encode the `access_method`. # @return [Seam::Resources::ActionAttempt] OK def encode(access_method_id:, acs_encoder_id:, wait_for_action_attempt: nil) res = @client.post("/access_methods/encode", {access_method_id: access_method_id, acs_encoder_id: acs_encoder_id}.compact) @@ -50,7 +50,7 @@ def encode(access_method_id:, acs_encoder_id:, wait_for_action_attempt: nil) end # Gets an access method. - # @param access_method_id ID of access method to get. + # @param access_method_id [String] ID of access method to get. # @return [Seam::Resources::AccessMethod] OK def get(access_method_id:) res = @client.post("/access_methods/get", {access_method_id: access_method_id}.compact) @@ -59,9 +59,9 @@ def get(access_method_id:) end # Gets all related resources for one or more Access Methods. - # @param access_method_ids IDs of the access methods that you want to get along with their related resources. - # @param exclude - # @param include + # @param access_method_ids [Array] IDs of the access methods that you want to get along with their related resources. + # @param exclude [Array, nil] + # @param include [Array, nil] # @return [Seam::Resources::Batch] OK def get_related(access_method_ids:, exclude: nil, include: nil) res = @client.post("/access_methods/get_related", {access_method_ids: access_method_ids, exclude: exclude, include: include}.compact) @@ -70,14 +70,14 @@ def get_related(access_method_ids:, exclude: nil, include: nil) end # Lists all access methods, usually filtered by Access Grant. - # @param access_code_id ID of the access code by which to filter the returned access methods. Must be combined with `access_grant_id`, `access_grant_key`, or `acs_entrance_id`. - # @param access_grant_id ID of Access Grant to list access methods for. - # @param access_grant_key Key of Access Grant to list access methods for. - # @param acs_entrance_id ID of the entrance for which you want to retrieve all access methods that grant access to it. - # @param device_id ID of the device by which to filter the returned access methods. Must be combined with `access_grant_id`, `access_grant_key`, or `acs_entrance_id`. - # @param limit Maximum number of records to return per page. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param space_id ID of the space by which to filter the returned access methods. Must be combined with `access_grant_id`, `access_grant_key`, or `acs_entrance_id`. + # @param access_code_id [String, nil] ID of the access code by which to filter the returned access methods. Must be combined with `access_grant_id`, `access_grant_key`, or `acs_entrance_id`. + # @param access_grant_id [String, nil] ID of Access Grant to list access methods for. + # @param access_grant_key [String, nil] Key of Access Grant to list access methods for. + # @param acs_entrance_id [String, nil] ID of the entrance for which you want to retrieve all access methods that grant access to it. + # @param device_id [String, nil] ID of the device by which to filter the returned access methods. Must be combined with `access_grant_id`, `access_grant_key`, or `acs_entrance_id`. + # @param limit [Integer, nil] Maximum number of records to return per page. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param space_id [String, nil] ID of the space by which to filter the returned access methods. Must be combined with `access_grant_id`, `access_grant_key`, or `acs_entrance_id`. # @return [Seam::Resources::AccessMethod] OK def list(access_code_id: nil, access_grant_id: nil, access_grant_key: nil, acs_entrance_id: nil, device_id: nil, limit: nil, page_cursor: nil, space_id: nil) res = @client.post("/access_methods/list", {access_code_id: access_code_id, access_grant_id: access_grant_id, access_grant_key: access_grant_key, acs_entrance_id: acs_entrance_id, device_id: device_id, limit: limit, page_cursor: page_cursor, space_id: space_id}.compact) @@ -86,8 +86,8 @@ def list(access_code_id: nil, access_grant_id: nil, access_grant_key: nil, acs_e end # Remotely unlocks a specified [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) using the cloud key credential associated with an access method. Returns an action attempt that tracks the progress of the unlock operation. - # @param access_method_id ID of the cloud_key `access_method` to use for the unlock operation. - # @param acs_entrance_id ID of the entrance to unlock. + # @param access_method_id [String] ID of the cloud_key `access_method` to use for the unlock operation. + # @param acs_entrance_id [String] ID of the entrance to unlock. # @return [Seam::Resources::ActionAttempt] OK def unlock_door(access_method_id:, acs_entrance_id:, wait_for_action_attempt: nil) res = @client.post("/access_methods/unlock_door", {access_method_id: access_method_id, acs_entrance_id: acs_entrance_id}.compact) diff --git a/lib/seam/routes/access_methods_unmanaged.rb b/lib/seam/routes/access_methods_unmanaged.rb index 7ed74ab..f556cee 100644 --- a/lib/seam/routes/access_methods_unmanaged.rb +++ b/lib/seam/routes/access_methods_unmanaged.rb @@ -9,7 +9,7 @@ def initialize(client:, defaults:) end # Gets an unmanaged access method (where is_managed = false). - # @param access_method_id ID of unmanaged access method to get. + # @param access_method_id [String] ID of unmanaged access method to get. # @return [Seam::Resources::UnmanagedAccessMethod] OK def get(access_method_id:) res = @client.post("/access_methods/unmanaged/get", {access_method_id: access_method_id}.compact) @@ -18,10 +18,10 @@ def get(access_method_id:) end # Lists all unmanaged access methods (where is_managed = false), usually filtered by Access Grant. - # @param access_grant_id ID of Access Grant to list unmanaged access methods for. - # @param acs_entrance_id ID of the entrance for which you want to retrieve all unmanaged access methods. - # @param device_id ID of the device for which you want to retrieve all unmanaged access methods. - # @param space_id ID of the space for which you want to retrieve all unmanaged access methods. + # @param access_grant_id [String] ID of Access Grant to list unmanaged access methods for. + # @param acs_entrance_id [String, nil] ID of the entrance for which you want to retrieve all unmanaged access methods. + # @param device_id [String, nil] ID of the device for which you want to retrieve all unmanaged access methods. + # @param space_id [String, nil] ID of the space for which you want to retrieve all unmanaged access methods. # @return [Seam::Resources::UnmanagedAccessMethod] OK def list(access_grant_id:, acs_entrance_id: nil, device_id: nil, space_id: nil) res = @client.post("/access_methods/unmanaged/list", {access_grant_id: access_grant_id, acs_entrance_id: acs_entrance_id, device_id: device_id, space_id: space_id}.compact) diff --git a/lib/seam/routes/acs_access_groups.rb b/lib/seam/routes/acs_access_groups.rb index e4c175e..e8bd64d 100644 --- a/lib/seam/routes/acs_access_groups.rb +++ b/lib/seam/routes/acs_access_groups.rb @@ -9,9 +9,9 @@ def initialize(client:, defaults:) end # Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups). - # @param acs_access_group_id ID of the access group to which you want to add an access system user. - # @param acs_user_id ID of the access system user that you want to add to an access group. You can only provide one of acs_user_id or user_identity_id. - # @param user_identity_id ID of the desired user identity that you want to add to an access group. You can only provide one of acs_user_id or user_identity_id. If the ACS system contains an ACS user with the same `email_address` or `phone_number` as the user identity that you specify, they are linked, and the access group membership belongs to the ACS user. If the ACS system does not have a corresponding ACS user, one is created. + # @param acs_access_group_id [String] ID of the access group to which you want to add an access system user. + # @param acs_user_id [String, nil] ID of the access system user that you want to add to an access group. You can only provide one of acs_user_id or user_identity_id. + # @param user_identity_id [String, nil] ID of the desired user identity that you want to add to an access group. You can only provide one of acs_user_id or user_identity_id. If the ACS system contains an ACS user with the same `email_address` or `phone_number` as the user identity that you specify, they are linked, and the access group membership belongs to the ACS user. If the ACS system does not have a corresponding ACS user, one is created. # @return [nil] OK def add_user(acs_access_group_id:, acs_user_id: nil, user_identity_id: nil) @client.post("/acs/access_groups/add_user", {acs_access_group_id: acs_access_group_id, acs_user_id: acs_user_id, user_identity_id: user_identity_id}.compact) @@ -20,7 +20,7 @@ def add_user(acs_access_group_id:, acs_user_id: nil, user_identity_id: nil) end # Deletes a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups). - # @param acs_access_group_id ID of the access group that you want to delete. + # @param acs_access_group_id [String] ID of the access group that you want to delete. # @return [nil] OK def delete(acs_access_group_id:) @client.post("/acs/access_groups/delete", {acs_access_group_id: acs_access_group_id}.compact) @@ -29,7 +29,7 @@ def delete(acs_access_group_id:) end # Returns a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups). - # @param acs_access_group_id ID of the access group that you want to get. + # @param acs_access_group_id [String] ID of the access group that you want to get. # @return [Seam::Resources::AcsAccessGroup] OK def get(acs_access_group_id:) res = @client.post("/acs/access_groups/get", {acs_access_group_id: acs_access_group_id}.compact) @@ -38,10 +38,10 @@ def get(acs_access_group_id:) end # Returns a list of all [access groups](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups). - # @param acs_system_id ID of the access system for which you want to retrieve all access groups. - # @param acs_user_id ID of the access system user for which you want to retrieve all access groups. - # @param search String for which to search. Filters returned access groups to include all records that satisfy a partial match using `name` or `acs_access_group_id`. - # @param user_identity_id ID of the user identity for which you want to retrieve all access groups. + # @param acs_system_id [String, nil] ID of the access system for which you want to retrieve all access groups. + # @param acs_user_id [String, nil] ID of the access system user for which you want to retrieve all access groups. + # @param search [String, nil] String for which to search. Filters returned access groups to include all records that satisfy a partial match using `name` or `acs_access_group_id`. + # @param user_identity_id [String, nil] ID of the user identity for which you want to retrieve all access groups. # @return [Seam::Resources::AcsAccessGroup] OK def list(acs_system_id: nil, acs_user_id: nil, search: nil, user_identity_id: nil) res = @client.post("/acs/access_groups/list", {acs_system_id: acs_system_id, acs_user_id: acs_user_id, search: search, user_identity_id: user_identity_id}.compact) @@ -50,7 +50,7 @@ def list(acs_system_id: nil, acs_user_id: nil, search: nil, user_identity_id: ni end # Returns a list of all accessible entrances for a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups). - # @param acs_access_group_id ID of the access group for which you want to retrieve all accessible entrances. + # @param acs_access_group_id [String] ID of the access group for which you want to retrieve all accessible entrances. # @return [Seam::Resources::AcsEntrance] OK def list_accessible_entrances(acs_access_group_id:) res = @client.post("/acs/access_groups/list_accessible_entrances", {acs_access_group_id: acs_access_group_id}.compact) @@ -59,7 +59,7 @@ def list_accessible_entrances(acs_access_group_id:) end # Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management) in an [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups). - # @param acs_access_group_id ID of the access group for which you want to retrieve all access system users. + # @param acs_access_group_id [String] ID of the access group for which you want to retrieve all access system users. # @return [Seam::Resources::AcsUser] OK def list_users(acs_access_group_id:) res = @client.post("/acs/access_groups/list_users", {acs_access_group_id: acs_access_group_id}.compact) @@ -68,9 +68,9 @@ def list_users(acs_access_group_id:) end # Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups). - # @param acs_access_group_id ID of the access group from which you want to remove an access system user. - # @param acs_user_id ID of the access system user that you want to remove from an access group. - # @param user_identity_id ID of the user identity associated with the user that you want to remove from an access group. + # @param acs_access_group_id [String] ID of the access group from which you want to remove an access system user. + # @param acs_user_id [String, nil] ID of the access system user that you want to remove from an access group. + # @param user_identity_id [String, nil] ID of the user identity associated with the user that you want to remove from an access group. # @return [nil] OK def remove_user(acs_access_group_id:, acs_user_id: nil, user_identity_id: nil) @client.post("/acs/access_groups/remove_user", {acs_access_group_id: acs_access_group_id, acs_user_id: acs_user_id, user_identity_id: user_identity_id}.compact) diff --git a/lib/seam/routes/acs_credentials.rb b/lib/seam/routes/acs_credentials.rb index fea1a5a..0ad1dee 100644 --- a/lib/seam/routes/acs_credentials.rb +++ b/lib/seam/routes/acs_credentials.rb @@ -9,9 +9,9 @@ def initialize(client:, defaults:) end # Assigns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) to a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - # @param acs_credential_id ID of the credential that you want to assign to an access system user. - # @param acs_user_id ID of the access system user to whom you want to assign a credential. You can only provide one of acs_user_id or user_identity_id. - # @param user_identity_id ID of the user identity to whom you want to assign a credential. You can only provide one of acs_user_id or user_identity_id. If the ACS system contains an ACS user with the same `email_address` or `phone_number` as the user identity that you specify, they are linked, and the credential belongs to the ACS user. If the ACS system does not have a corresponding ACS user, one is created. + # @param acs_credential_id [String] ID of the credential that you want to assign to an access system user. + # @param acs_user_id [String, nil] ID of the access system user to whom you want to assign a credential. You can only provide one of acs_user_id or user_identity_id. + # @param user_identity_id [String, nil] ID of the user identity to whom you want to assign a credential. You can only provide one of acs_user_id or user_identity_id. If the ACS system contains an ACS user with the same `email_address` or `phone_number` as the user identity that you specify, they are linked, and the credential belongs to the ACS user. If the ACS system does not have a corresponding ACS user, one is created. # @return [nil] OK def assign(acs_credential_id:, acs_user_id: nil, user_identity_id: nil) @client.post("/acs/credentials/assign", {acs_credential_id: acs_credential_id, acs_user_id: acs_user_id, user_identity_id: user_identity_id}.compact) @@ -20,19 +20,19 @@ def assign(acs_credential_id:, acs_user_id: nil, user_identity_id: nil) end # Creates a new [credential](https://docs.seam.co/low-level-apis/managing-credentials) for a specified [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management). For granting access, we recommend [Access Grants](https://docs.seam.co/use-cases/granting-access) instead: they create and manage the underlying credentials for you, across access systems and standalone smart locks alike. Use this low-level endpoint only when you need direct control over an individual ACS credential. - # @param access_method Access method for the new credential. Supported values: `code`, `card`, `mobile_key`, `cloud_key`. - # @param acs_system_id ID of the access system to which the new credential belongs. You must provide either `acs_user_id` or the combination of `user_identity_id` and `acs_system_id`. - # @param acs_user_id ID of the access system user to whom the new credential belongs. You must provide either `acs_user_id` or the combination of `user_identity_id` and `acs_system_id`. - # @param allowed_acs_entrance_ids Set of IDs of the [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) for which the new credential grants access. - # @param assa_abloy_vostio_metadata Vostio-specific metadata for the new credential. - # @param code Access (PIN) code for the new credential. There may be manufacturer-specific code restrictions. For details, see the applicable [device or system integration guide](https://docs.seam.co/device-and-system-integration-guides). - # @param credential_manager_acs_system_id ACS system ID of the credential manager for the new credential. - # @param ends_at Date and time at which the validity of the new credential ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. - # @param is_multi_phone_sync_credential Indicates whether the new credential is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). - # @param salto_space_metadata Salto Space-specific metadata for the new credential. - # @param starts_at Date and time at which the validity of the new credential starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - # @param user_identity_id ID of the user identity to whom the new credential belongs. You must provide either `acs_user_id` or the combination of `user_identity_id` and `acs_system_id`. If the access system contains a user with the same `email_address` or `phone_number` as the user identity that you specify, they are linked, and the credential belongs to the access system user. If the access system does not have a corresponding user, one is created. - # @param visionline_metadata Visionline-specific metadata for the new credential. + # @param access_method [String] Access method for the new credential. Supported values: `code`, `card`, `mobile_key`, `cloud_key`. + # @param acs_system_id [String, nil] ID of the access system to which the new credential belongs. You must provide either `acs_user_id` or the combination of `user_identity_id` and `acs_system_id`. + # @param acs_user_id [String, nil] ID of the access system user to whom the new credential belongs. You must provide either `acs_user_id` or the combination of `user_identity_id` and `acs_system_id`. + # @param allowed_acs_entrance_ids [Array, nil] Set of IDs of the [entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) for which the new credential grants access. + # @param assa_abloy_vostio_metadata [Hash, nil] Vostio-specific metadata for the new credential. + # @param code [String, nil] Access (PIN) code for the new credential. There may be manufacturer-specific code restrictions. For details, see the applicable [device or system integration guide](https://docs.seam.co/device-and-system-integration-guides). + # @param credential_manager_acs_system_id [String, nil] ACS system ID of the credential manager for the new credential. + # @param ends_at [Time, nil] Date and time at which the validity of the new credential ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`. + # @param is_multi_phone_sync_credential [Boolean, nil] Indicates whether the new credential is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials). + # @param salto_space_metadata [Hash, nil] Salto Space-specific metadata for the new credential. + # @param starts_at [Time, nil] Date and time at which the validity of the new credential starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @param user_identity_id [String, nil] ID of the user identity to whom the new credential belongs. You must provide either `acs_user_id` or the combination of `user_identity_id` and `acs_system_id`. If the access system contains a user with the same `email_address` or `phone_number` as the user identity that you specify, they are linked, and the credential belongs to the access system user. If the access system does not have a corresponding user, one is created. + # @param visionline_metadata [Hash, nil] Visionline-specific metadata for the new credential. # @return [Seam::Resources::AcsCredential] OK def create(access_method:, acs_system_id: nil, acs_user_id: nil, allowed_acs_entrance_ids: nil, assa_abloy_vostio_metadata: nil, code: nil, credential_manager_acs_system_id: nil, ends_at: nil, is_multi_phone_sync_credential: nil, salto_space_metadata: nil, starts_at: nil, user_identity_id: nil, visionline_metadata: nil) res = @client.post("/acs/credentials/create", {access_method: access_method, acs_system_id: acs_system_id, acs_user_id: acs_user_id, allowed_acs_entrance_ids: allowed_acs_entrance_ids, assa_abloy_vostio_metadata: assa_abloy_vostio_metadata, code: code, credential_manager_acs_system_id: credential_manager_acs_system_id, ends_at: ends_at, is_multi_phone_sync_credential: is_multi_phone_sync_credential, salto_space_metadata: salto_space_metadata, starts_at: starts_at, user_identity_id: user_identity_id, visionline_metadata: visionline_metadata}.compact) @@ -41,7 +41,7 @@ def create(access_method:, acs_system_id: nil, acs_user_id: nil, allowed_acs_ent end # Deletes a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). - # @param acs_credential_id ID of the credential that you want to delete. + # @param acs_credential_id [String] ID of the credential that you want to delete. # @return [nil] OK def delete(acs_credential_id:) @client.post("/acs/credentials/delete", {acs_credential_id: acs_credential_id}.compact) @@ -50,7 +50,7 @@ def delete(acs_credential_id:) end # Returns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). - # @param acs_credential_id ID of the credential that you want to get. + # @param acs_credential_id [String] ID of the credential that you want to get. # @return [Seam::Resources::AcsCredential] OK def get(acs_credential_id:) res = @client.post("/acs/credentials/get", {acs_credential_id: acs_credential_id}.compact) @@ -59,14 +59,14 @@ def get(acs_credential_id:) end # Returns a list of all [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). - # @param acs_user_id ID of the access system user for which you want to retrieve all credentials. - # @param acs_system_id ID of the access system for which you want to retrieve all credentials. - # @param user_identity_id ID of the user identity for which you want to retrieve all credentials. - # @param created_before Date and time, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, before which events to return were created. - # @param is_multi_phone_sync_credential Indicates whether you want to retrieve only multi-phone sync credentials or non-multi-phone sync credentials. - # @param limit Number of credentials to return. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param search String for which to search. Filters returned credentials to include all records that satisfy a partial match using `display_name`, `code`, `card_number`, `acs_user_id` or `acs_credential_id`. + # @param acs_user_id [String, nil] ID of the access system user for which you want to retrieve all credentials. + # @param acs_system_id [String, nil] ID of the access system for which you want to retrieve all credentials. + # @param user_identity_id [String, nil] ID of the user identity for which you want to retrieve all credentials. + # @param created_before [Time, nil] Date and time, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, before which events to return were created. + # @param is_multi_phone_sync_credential [Boolean, nil] Indicates whether you want to retrieve only multi-phone sync credentials or non-multi-phone sync credentials. + # @param limit [Float, nil] Number of credentials to return. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param search [String, nil] String for which to search. Filters returned credentials to include all records that satisfy a partial match using `display_name`, `code`, `card_number`, `acs_user_id` or `acs_credential_id`. # @return [Seam::Resources::AcsCredential] OK def list(acs_user_id: nil, acs_system_id: nil, user_identity_id: nil, created_before: nil, is_multi_phone_sync_credential: nil, limit: nil, page_cursor: nil, search: nil) res = @client.post("/acs/credentials/list", {acs_user_id: acs_user_id, acs_system_id: acs_system_id, user_identity_id: user_identity_id, created_before: created_before, is_multi_phone_sync_credential: is_multi_phone_sync_credential, limit: limit, page_cursor: page_cursor, search: search}.compact) @@ -75,7 +75,7 @@ def list(acs_user_id: nil, acs_system_id: nil, user_identity_id: nil, created_be end # Returns a list of all [entrances](https://docs.seam.co/api/acs/entrances) to which a [credential](https://docs.seam.co/api/acs/credentials) grants access. - # @param acs_credential_id ID of the credential for which you want to retrieve all entrances to which the credential grants access. + # @param acs_credential_id [String] ID of the credential for which you want to retrieve all entrances to which the credential grants access. # @return [Seam::Resources::AcsEntrance] OK def list_accessible_entrances(acs_credential_id:) res = @client.post("/acs/credentials/list_accessible_entrances", {acs_credential_id: acs_credential_id}.compact) @@ -84,9 +84,9 @@ def list_accessible_entrances(acs_credential_id:) end # Unassigns a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) from a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - # @param acs_credential_id ID of the credential that you want to unassign from an access system user. - # @param acs_user_id ID of the access system user from which you want to unassign a credential. You can only provide one of acs_user_id or user_identity_id. - # @param user_identity_id ID of the user identity from which you want to unassign a credential. You can only provide one of acs_user_id or user_identity_id. + # @param acs_credential_id [String] ID of the credential that you want to unassign from an access system user. + # @param acs_user_id [String, nil] ID of the access system user from which you want to unassign a credential. You can only provide one of acs_user_id or user_identity_id. + # @param user_identity_id [String, nil] ID of the user identity from which you want to unassign a credential. You can only provide one of acs_user_id or user_identity_id. # @return [nil] OK def unassign(acs_credential_id:, acs_user_id: nil, user_identity_id: nil) @client.post("/acs/credentials/unassign", {acs_credential_id: acs_credential_id, acs_user_id: acs_user_id, user_identity_id: user_identity_id}.compact) @@ -95,9 +95,9 @@ def unassign(acs_credential_id:, acs_user_id: nil, user_identity_id: nil) end # Updates the code and ends at date and time for a specified [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). - # @param acs_credential_id ID of the credential that you want to update. - # @param code Replacement access (PIN) code for the credential that you want to update. - # @param ends_at Replacement date and time at which the validity of the credential ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after the `starts_at` value that you set when creating the credential. + # @param acs_credential_id [String] ID of the credential that you want to update. + # @param code [String, nil] Replacement access (PIN) code for the credential that you want to update. + # @param ends_at [Time, nil] Replacement date and time at which the validity of the credential ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after the `starts_at` value that you set when creating the credential. # @return [nil] OK def update(acs_credential_id:, code: nil, ends_at: nil) @client.post("/acs/credentials/update", {acs_credential_id: acs_credential_id, code: code, ends_at: ends_at}.compact) diff --git a/lib/seam/routes/acs_encoders.rb b/lib/seam/routes/acs_encoders.rb index 7c75f7f..ca907bc 100644 --- a/lib/seam/routes/acs_encoders.rb +++ b/lib/seam/routes/acs_encoders.rb @@ -15,9 +15,9 @@ def simulate end # Encodes an existing [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) onto a plastic card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). Either provide an `acs_credential_id` or an `access_method_id` - # @param acs_encoder_id ID of the `acs_encoder` to use to encode the `acs_credential`. - # @param access_method_id ID of the `access_method` to encode onto a card. - # @param acs_credential_id ID of the `acs_credential` to encode onto a card. + # @param acs_encoder_id [String] ID of the `acs_encoder` to use to encode the `acs_credential`. + # @param access_method_id [String, nil] ID of the `access_method` to encode onto a card. + # @param acs_credential_id [String, nil] ID of the `acs_credential` to encode onto a card. # @return [Seam::Resources::ActionAttempt] OK def encode_credential(acs_encoder_id:, access_method_id: nil, acs_credential_id: nil, wait_for_action_attempt: nil) res = @client.post("/acs/encoders/encode_credential", {acs_encoder_id: acs_encoder_id, access_method_id: access_method_id, acs_credential_id: acs_credential_id}.compact) @@ -28,7 +28,7 @@ def encode_credential(acs_encoder_id:, access_method_id: nil, acs_credential_id: end # Returns a specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - # @param acs_encoder_id ID of the encoder that you want to get. + # @param acs_encoder_id [String] ID of the encoder that you want to get. # @return [Seam::Resources::AcsEncoder] OK def get(acs_encoder_id:) res = @client.post("/acs/encoders/get", {acs_encoder_id: acs_encoder_id}.compact) @@ -37,11 +37,11 @@ def get(acs_encoder_id:) end # Returns a list of all [encoders](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - # @param acs_system_id ID of the access system for which you want to retrieve all encoders. - # @param acs_system_ids IDs of the access systems for which you want to retrieve all encoders. - # @param acs_encoder_ids IDs of the encoders that you want to retrieve. - # @param limit Number of encoders to return. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param acs_system_id [String, nil] ID of the access system for which you want to retrieve all encoders. + # @param acs_system_ids [Array, nil] IDs of the access systems for which you want to retrieve all encoders. + # @param acs_encoder_ids [Array, nil] IDs of the encoders that you want to retrieve. + # @param limit [Float, nil] Number of encoders to return. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. # @return [Seam::Resources::AcsEncoder] OK def list(acs_system_id: nil, acs_system_ids: nil, acs_encoder_ids: nil, limit: nil, page_cursor: nil) res = @client.post("/acs/encoders/list", {acs_system_id: acs_system_id, acs_system_ids: acs_system_ids, acs_encoder_ids: acs_encoder_ids, limit: limit, page_cursor: page_cursor}.compact) @@ -50,8 +50,8 @@ def list(acs_system_id: nil, acs_system_ids: nil, acs_encoder_ids: nil, limit: n end # Scans an encoded [acs_credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) from a plastic card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners). - # @param acs_encoder_id ID of the encoder to use for the scan. - # @param salto_ks_metadata Salto KS-specific metadata for the scan action. + # @param acs_encoder_id [String] ID of the encoder to use for the scan. + # @param salto_ks_metadata [Hash, nil] Salto KS-specific metadata for the scan action. # @return [Seam::Resources::ActionAttempt] OK def scan_credential(acs_encoder_id:, salto_ks_metadata: nil, wait_for_action_attempt: nil) res = @client.post("/acs/encoders/scan_credential", {acs_encoder_id: acs_encoder_id, salto_ks_metadata: salto_ks_metadata}.compact) @@ -62,10 +62,10 @@ def scan_credential(acs_encoder_id:, salto_ks_metadata: nil, wait_for_action_att end # Scans a physical card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) and assigns the scanned credential to an ACS user. Provide either an `acs_user_id` or a `user_identity_id`. - # @param acs_encoder_id ID of the `acs_encoder` to use to scan the credential. - # @param acs_user_id ID of the `acs_user` to assign the scanned credential to. - # @param salto_ks_metadata Salto KS-specific metadata for the scan action. - # @param user_identity_id ID of the `user_identity` to assign the scanned credential to. If the ACS system contains an ACS user linked to this user identity, it is used. Otherwise, one is created. + # @param acs_encoder_id [String] ID of the `acs_encoder` to use to scan the credential. + # @param acs_user_id [String, nil] ID of the `acs_user` to assign the scanned credential to. + # @param salto_ks_metadata [Hash, nil] Salto KS-specific metadata for the scan action. + # @param user_identity_id [String, nil] ID of the `user_identity` to assign the scanned credential to. If the ACS system contains an ACS user linked to this user identity, it is used. Otherwise, one is created. # @return [Seam::Resources::ActionAttempt] OK def scan_to_assign_credential(acs_encoder_id:, acs_user_id: nil, salto_ks_metadata: nil, user_identity_id: nil, wait_for_action_attempt: nil) res = @client.post("/acs/encoders/scan_to_assign_credential", {acs_encoder_id: acs_encoder_id, acs_user_id: acs_user_id, salto_ks_metadata: salto_ks_metadata, user_identity_id: user_identity_id}.compact) diff --git a/lib/seam/routes/acs_encoders_simulate.rb b/lib/seam/routes/acs_encoders_simulate.rb index c307f69..5fed42e 100644 --- a/lib/seam/routes/acs_encoders_simulate.rb +++ b/lib/seam/routes/acs_encoders_simulate.rb @@ -9,9 +9,9 @@ def initialize(client:, defaults:) end # Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). - # @param acs_encoder_id ID of the `acs_encoder` that will be used in the next request to encode the `acs_credential`. - # @param error_code Code of the error to simulate. - # @param acs_credential_id ID of the `acs_credential` that will fail to be encoded onto a card in the next request. + # @param acs_encoder_id [String] ID of the `acs_encoder` that will be used in the next request to encode the `acs_credential`. + # @param error_code [String, nil] Code of the error to simulate. + # @param acs_credential_id [String, nil] ID of the `acs_credential` that will fail to be encoded onto a card in the next request. # @return [nil] OK def next_credential_encode_will_fail(acs_encoder_id:, error_code: nil, acs_credential_id: nil) @client.post("/acs/encoders/simulate/next_credential_encode_will_fail", {acs_encoder_id: acs_encoder_id, error_code: error_code, acs_credential_id: acs_credential_id}.compact) @@ -20,8 +20,8 @@ def next_credential_encode_will_fail(acs_encoder_id:, error_code: nil, acs_crede end # Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). - # @param acs_encoder_id ID of the `acs_encoder` that will be used in the next request to encode the `acs_credential`. - # @param scenario Scenario to simulate. + # @param acs_encoder_id [String] ID of the `acs_encoder` that will be used in the next request to encode the `acs_credential`. + # @param scenario [String, nil] Scenario to simulate. # @return [nil] OK def next_credential_encode_will_succeed(acs_encoder_id:, scenario: nil) @client.post("/acs/encoders/simulate/next_credential_encode_will_succeed", {acs_encoder_id: acs_encoder_id, scenario: scenario}.compact) @@ -30,9 +30,9 @@ def next_credential_encode_will_succeed(acs_encoder_id:, scenario: nil) end # Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). - # @param acs_encoder_id ID of the `acs_encoder` that will fail to scan the `acs_credential` in the next request. - # @param error_code - # @param acs_credential_id_on_seam + # @param acs_encoder_id [String] ID of the `acs_encoder` that will fail to scan the `acs_credential` in the next request. + # @param error_code [String, nil] + # @param acs_credential_id_on_seam [String, nil] # @return [nil] OK def next_credential_scan_will_fail(acs_encoder_id:, error_code: nil, acs_credential_id_on_seam: nil) @client.post("/acs/encoders/simulate/next_credential_scan_will_fail", {acs_encoder_id: acs_encoder_id, error_code: error_code, acs_credential_id_on_seam: acs_credential_id_on_seam}.compact) @@ -41,9 +41,9 @@ def next_credential_scan_will_fail(acs_encoder_id:, error_code: nil, acs_credent end # Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will succeed. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). - # @param acs_encoder_id ID of the `acs_encoder` that will be used in the next request to scan the `acs_credential`. - # @param acs_credential_id_on_seam ID of the Seam `acs_credential` that matches the `acs_credential` on the encoder in this simulation. - # @param scenario Scenario to simulate. + # @param acs_encoder_id [String] ID of the `acs_encoder` that will be used in the next request to scan the `acs_credential`. + # @param acs_credential_id_on_seam [String, nil] ID of the Seam `acs_credential` that matches the `acs_credential` on the encoder in this simulation. + # @param scenario [String, nil] Scenario to simulate. # @return [nil] OK def next_credential_scan_will_succeed(acs_encoder_id:, acs_credential_id_on_seam: nil, scenario: nil) @client.post("/acs/encoders/simulate/next_credential_scan_will_succeed", {acs_encoder_id: acs_encoder_id, acs_credential_id_on_seam: acs_credential_id_on_seam, scenario: scenario}.compact) diff --git a/lib/seam/routes/acs_entrances.rb b/lib/seam/routes/acs_entrances.rb index c61e2aa..dd0c686 100644 --- a/lib/seam/routes/acs_entrances.rb +++ b/lib/seam/routes/acs_entrances.rb @@ -11,7 +11,7 @@ def initialize(client:, defaults:) end # Returns a specified [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). - # @param acs_entrance_id ID of the entrance that you want to get. + # @param acs_entrance_id [String] ID of the entrance that you want to get. # @return [Seam::Resources::AcsEntrance] OK def get(acs_entrance_id:) res = @client.post("/acs/entrances/get", {acs_entrance_id: acs_entrance_id}.compact) @@ -20,9 +20,9 @@ def get(acs_entrance_id:) end # Grants a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) access to a specified [access system entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). - # @param acs_entrance_id ID of the entrance to which you want to grant an access system user access. - # @param acs_user_id ID of the access system user to whom you want to grant access to an entrance. You can only provide one of acs_user_id or user_identity_id. - # @param user_identity_id ID of the user identity to whom you want to grant access to an entrance. You can only provide one of acs_user_id or user_identity_id. If the ACS system contains an ACS user with the same `email_address` or `phone_number` as the user identity that you specify, they are linked, and the access group membership belongs to the ACS user. If the ACS system does not have a corresponding ACS user, one is created. + # @param acs_entrance_id [String] ID of the entrance to which you want to grant an access system user access. + # @param acs_user_id [String, nil] ID of the access system user to whom you want to grant access to an entrance. You can only provide one of acs_user_id or user_identity_id. + # @param user_identity_id [String, nil] ID of the user identity to whom you want to grant access to an entrance. You can only provide one of acs_user_id or user_identity_id. If the ACS system contains an ACS user with the same `email_address` or `phone_number` as the user identity that you specify, they are linked, and the access group membership belongs to the ACS user. If the ACS system does not have a corresponding ACS user, one is created. # @return [nil] OK def grant_access(acs_entrance_id:, acs_user_id: nil, user_identity_id: nil) @client.post("/acs/entrances/grant_access", {acs_entrance_id: acs_entrance_id, acs_user_id: acs_user_id, user_identity_id: user_identity_id}.compact) @@ -31,18 +31,18 @@ def grant_access(acs_entrance_id:, acs_user_id: nil, user_identity_id: nil) end # Returns a list of all [access system entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). - # @param access_method_id ID of the access method for which you want to retrieve all entrances to which it grants access. - # @param acs_credential_id ID of the credential for which you want to retrieve all entrances. - # @param acs_entrance_ids IDs of the entrances for which you want to retrieve all entrances. - # @param acs_system_id ID of the access system for which you want to retrieve all entrances. - # @param connected_account_id ID of the connected account for which you want to retrieve all entrances. - # @param customer_key Customer key for which you want to list entrances. - # @param limit Maximum number of records to return per page. - # @param location_id + # @param access_method_id [String, nil] ID of the access method for which you want to retrieve all entrances to which it grants access. + # @param acs_credential_id [String, nil] ID of the credential for which you want to retrieve all entrances. + # @param acs_entrance_ids [Array, nil] IDs of the entrances for which you want to retrieve all entrances. + # @param acs_system_id [String, nil] ID of the access system for which you want to retrieve all entrances. + # @param connected_account_id [String, nil] ID of the connected account for which you want to retrieve all entrances. + # @param customer_key [String, nil] Customer key for which you want to list entrances. + # @param limit [Integer, nil] Maximum number of records to return per page. + # @param location_id [String, nil] # @deprecated location_id: Use `space_id`. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param search String for which to search. Filters returned entrances to include all records that satisfy a partial match using `display_name`. - # @param space_id ID of the space for which you want to list entrances. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param search [String, nil] String for which to search. Filters returned entrances to include all records that satisfy a partial match using `display_name`. + # @param space_id [String, nil] ID of the space for which you want to list entrances. # @return [Seam::Resources::AcsEntrance] OK def list(access_method_id: nil, acs_credential_id: nil, acs_entrance_ids: nil, acs_system_id: nil, connected_account_id: nil, customer_key: nil, limit: nil, location_id: nil, page_cursor: nil, search: nil, space_id: nil) res = @client.post("/acs/entrances/list", {access_method_id: access_method_id, acs_credential_id: acs_credential_id, acs_entrance_ids: acs_entrance_ids, acs_system_id: acs_system_id, connected_account_id: connected_account_id, customer_key: customer_key, limit: limit, location_id: location_id, page_cursor: page_cursor, search: search, space_id: space_id}.compact) @@ -51,8 +51,8 @@ def list(access_method_id: nil, acs_credential_id: nil, acs_entrance_ids: nil, a end # Returns a list of all [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) with access to a specified [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). - # @param acs_entrance_id ID of the entrance for which you want to list all credentials that grant access. - # @param include_if Conditions that credentials must meet to be included in the returned list. + # @param acs_entrance_id [String] ID of the entrance for which you want to list all credentials that grant access. + # @param include_if [Array, nil] Conditions that credentials must meet to be included in the returned list. # @return [Seam::Resources::AcsCredential] OK def list_credentials_with_access(acs_entrance_id:, include_if: nil) res = @client.post("/acs/entrances/list_credentials_with_access", {acs_entrance_id: acs_entrance_id, include_if: include_if}.compact) @@ -61,8 +61,8 @@ def list_credentials_with_access(acs_entrance_id:, include_if: nil) end # Remotely unlocks a specified [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details) using a cloud_key credential. Returns an action attempt that tracks the progress of the unlock operation. - # @param acs_credential_id ID of the cloud_key credential to use for the unlock operation. - # @param acs_entrance_id ID of the entrance to unlock. + # @param acs_credential_id [String] ID of the cloud_key credential to use for the unlock operation. + # @param acs_entrance_id [String] ID of the entrance to unlock. # @return [Seam::Resources::ActionAttempt] OK def unlock(acs_credential_id:, acs_entrance_id:, wait_for_action_attempt: nil) res = @client.post("/acs/entrances/unlock", {acs_credential_id: acs_credential_id, acs_entrance_id: acs_entrance_id}.compact) diff --git a/lib/seam/routes/acs_systems.rb b/lib/seam/routes/acs_systems.rb index ab99047..bfc4e7d 100644 --- a/lib/seam/routes/acs_systems.rb +++ b/lib/seam/routes/acs_systems.rb @@ -9,7 +9,7 @@ def initialize(client:, defaults:) end # Returns a specified [access system](https://docs.seam.co/low-level-apis/access-systems). - # @param acs_system_id ID of the access system that you want to get. + # @param acs_system_id [String] ID of the access system that you want to get. # @return [Seam::Resources::AcsSystem] OK def get(acs_system_id:) res = @client.post("/acs/systems/get", {acs_system_id: acs_system_id}.compact) @@ -20,9 +20,9 @@ def get(acs_system_id:) # Returns a list of all [access systems](https://docs.seam.co/low-level-apis/access-systems). # # To filter the list of returned access 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 systems connected to your workspace. - # @param connected_account_id ID of the connected account by which you want to filter the list of access systems. - # @param customer_key Customer key for which you want to list access systems. - # @param search String for which to search. Filters returned access systems to include all records that satisfy a partial match using `name` or `acs_system_id`. + # @param connected_account_id [String, nil] ID of the connected account by which you want to filter the list of access systems. + # @param customer_key [String, nil] Customer key for which you want to list access systems. + # @param search [String, nil] String for which to search. Filters returned access systems to include all records that satisfy a partial match using `name` or `acs_system_id`. # @return [Seam::Resources::AcsSystem] OK def list(connected_account_id: nil, customer_key: nil, search: nil) res = @client.post("/acs/systems/list", {connected_account_id: connected_account_id, customer_key: customer_key, search: search}.compact) @@ -33,7 +33,7 @@ def list(connected_account_id: nil, customer_key: nil, search: nil) # Returns a list of all credential manager systems that are compatible with a specified [access system](https://docs.seam.co/low-level-apis/access-systems). # # Specify the access system for which you want to retrieve all compatible credential manager systems by including the corresponding `acs_system_id` in the request body. - # @param acs_system_id ID of the access system for which you want to retrieve all compatible credential manager systems. + # @param acs_system_id [String] ID of the access system for which you want to retrieve all compatible credential manager systems. # @return [Seam::Resources::AcsSystem] OK def list_compatible_credential_manager_acs_systems(acs_system_id:) res = @client.post("/acs/systems/list_compatible_credential_manager_acs_systems", {acs_system_id: acs_system_id}.compact) @@ -42,9 +42,9 @@ def list_compatible_credential_manager_acs_systems(acs_system_id:) end # Reports ACS system device status including encoders and entrances. - # @param acs_system_id ID of the ACS system to report resources for - # @param acs_encoders Array of ACS encoders to report - # @param acs_entrances Array of ACS entrances to report + # @param acs_system_id [String] ID of the ACS system to report resources for + # @param acs_encoders [Array, nil] Array of ACS encoders to report + # @param acs_entrances [Array, nil] Array of ACS entrances to report # @return [nil] OK def report_devices(acs_system_id:, acs_encoders: nil, acs_entrances: nil) @client.post("/acs/systems/report_devices", {acs_system_id: acs_system_id, acs_encoders: acs_encoders, acs_entrances: acs_entrances}.compact) diff --git a/lib/seam/routes/acs_users.rb b/lib/seam/routes/acs_users.rb index f682325..777551a 100644 --- a/lib/seam/routes/acs_users.rb +++ b/lib/seam/routes/acs_users.rb @@ -9,8 +9,8 @@ def initialize(client:, defaults:) end # Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups). - # @param acs_access_group_id ID of the access group to which you want to add an access system user. - # @param acs_user_id ID of the access system user that you want to add to an access group. + # @param acs_access_group_id [String] ID of the access group to which you want to add an access system user. + # @param acs_user_id [String] ID of the access system user that you want to add to an access group. # @return [nil] OK def add_to_access_group(acs_access_group_id:, acs_user_id:) @client.post("/acs/users/add_to_access_group", {acs_access_group_id: acs_access_group_id, acs_user_id: acs_user_id}.compact) @@ -19,15 +19,15 @@ def add_to_access_group(acs_access_group_id:, acs_user_id:) end # Creates a new [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - # @param acs_system_id ID of the access system to which you want to add the new access system user. - # @param full_name Full name of the new access system user. - # @param access_schedule `starts_at` and `ends_at` timestamps for the new access system user's access. If you specify an `access_schedule`, you may include both `starts_at` and `ends_at`. If you omit `starts_at`, it defaults to the current time. `ends_at` is optional and must be a time in the future and after `starts_at`. - # @param acs_access_group_ids Array of access group IDs to indicate the access groups to which you want to add the new access system user. - # @param email + # @param acs_system_id [String] ID of the access system to which you want to add the new access system user. + # @param full_name [String] Full name of the new access system user. + # @param access_schedule [Hash, nil] `starts_at` and `ends_at` timestamps for the new access system user's access. If you specify an `access_schedule`, you may include both `starts_at` and `ends_at`. If you omit `starts_at`, it defaults to the current time. `ends_at` is optional and must be a time in the future and after `starts_at`. + # @param acs_access_group_ids [Array, nil] Array of access group IDs to indicate the access groups to which you want to add the new access system user. + # @param email [String, nil] # @deprecated email: use email_address. - # @param email_address Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - # @param phone_number Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). - # @param user_identity_id ID of the user identity with which you want to associate the new access system user. + # @param email_address [String, nil] Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @param phone_number [String, nil] Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). + # @param user_identity_id [String, nil] ID of the user identity with which you want to associate the new access system user. # @return [Seam::Resources::AcsUser] OK def create(acs_system_id:, full_name:, access_schedule: nil, acs_access_group_ids: nil, email: nil, email_address: nil, phone_number: nil, user_identity_id: nil) res = @client.post("/acs/users/create", {acs_system_id: acs_system_id, full_name: full_name, access_schedule: access_schedule, acs_access_group_ids: acs_access_group_ids, email: email, email_address: email_address, phone_number: phone_number, user_identity_id: user_identity_id}.compact) @@ -36,9 +36,9 @@ def create(acs_system_id:, full_name:, access_schedule: nil, acs_access_group_id end # Deletes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) and invalidates the access system user's [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). - # @param acs_system_id ID of the access system that you want to delete. You must provide acs_system_id with user_identity_id. - # @param acs_user_id ID of the access system user that you want to delete. You must provide either acs_user_id or user_identity_id - # @param user_identity_id ID of the user identity that you want to delete. You must provide either acs_user_id or user_identity_id. If you provide user_identity_id, you must also provide acs_system_id. + # @param acs_system_id [String, nil] ID of the access system that you want to delete. You must provide acs_system_id with user_identity_id. + # @param acs_user_id [String, nil] ID of the access system user that you want to delete. You must provide either acs_user_id or user_identity_id + # @param user_identity_id [String, nil] ID of the user identity that you want to delete. You must provide either acs_user_id or user_identity_id. If you provide user_identity_id, you must also provide acs_system_id. # @return [nil] OK def delete(acs_system_id: nil, acs_user_id: nil, user_identity_id: nil) @client.post("/acs/users/delete", {acs_system_id: acs_system_id, acs_user_id: acs_user_id, user_identity_id: user_identity_id}.compact) @@ -47,9 +47,9 @@ def delete(acs_system_id: nil, acs_user_id: nil, user_identity_id: nil) end # Returns a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - # @param acs_user_id ID of the access system user that you want to get. You can only provide acs_user_id or user_identity_id. - # @param acs_system_id ID of the access system that you want to get. You can only provide acs_user_id or user_identity_id. - # @param user_identity_id ID of the user identity that you want to get. You can only provide acs_user_id or user_identity_id. + # @param acs_user_id [String, nil] ID of the access system user that you want to get. You can only provide acs_user_id or user_identity_id. + # @param acs_system_id [String, nil] ID of the access system that you want to get. You can only provide acs_user_id or user_identity_id. + # @param user_identity_id [String, nil] ID of the user identity that you want to get. You can only provide acs_user_id or user_identity_id. # @return [Seam::Resources::AcsUser] OK def get(acs_user_id: nil, acs_system_id: nil, user_identity_id: nil) res = @client.post("/acs/users/get", {acs_user_id: acs_user_id, acs_system_id: acs_system_id, user_identity_id: user_identity_id}.compact) @@ -58,14 +58,14 @@ def get(acs_user_id: nil, acs_system_id: nil, user_identity_id: nil) end # Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management). - # @param acs_system_id ID of the `acs_system` for which you want to retrieve all access system users. - # @param created_before Timestamp by which to limit returned access system users. Returns users created before this timestamp. - # @param limit Maximum number of records to return per page. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param search String for which to search. Filters returned access system users to include all records that satisfy a partial match using `full_name`, `phone_number`, `email_address`, `acs_user_id`, `user_identity_id`, `user_identity_full_name` or `user_identity_phone_number`. - # @param user_identity_email_address Email address of the user identity for which you want to retrieve all access system users. - # @param user_identity_id ID of the user identity for which you want to retrieve all access system users. - # @param user_identity_phone_number Phone number of the user identity for which you want to retrieve all access system users, in [E.164 format](https://www.itu.int/rec/T-REC-E.164/en) (for example, `+15555550100`). + # @param acs_system_id [String, nil] ID of the `acs_system` for which you want to retrieve all access system users. + # @param created_before [Time, nil] Timestamp by which to limit returned access system users. Returns users created before this timestamp. + # @param limit [Integer, nil] Maximum number of records to return per page. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param search [String, nil] String for which to search. Filters returned access system users to include all records that satisfy a partial match using `full_name`, `phone_number`, `email_address`, `acs_user_id`, `user_identity_id`, `user_identity_full_name` or `user_identity_phone_number`. + # @param user_identity_email_address [String, nil] Email address of the user identity for which you want to retrieve all access system users. + # @param user_identity_id [String, nil] ID of the user identity for which you want to retrieve all access system users. + # @param user_identity_phone_number [String, nil] Phone number of the user identity for which you want to retrieve all access system users, in [E.164 format](https://www.itu.int/rec/T-REC-E.164/en) (for example, `+15555550100`). # @return [Seam::Resources::AcsUser] OK def list(acs_system_id: nil, created_before: nil, limit: nil, page_cursor: nil, search: nil, user_identity_email_address: nil, user_identity_id: nil, user_identity_phone_number: nil) res = @client.post("/acs/users/list", {acs_system_id: acs_system_id, created_before: created_before, limit: limit, page_cursor: page_cursor, search: search, user_identity_email_address: user_identity_email_address, user_identity_id: user_identity_id, user_identity_phone_number: user_identity_phone_number}.compact) @@ -74,9 +74,9 @@ def list(acs_system_id: nil, created_before: nil, limit: nil, page_cursor: nil, end # Lists the [entrances](https://docs.seam.co/api/acs/entrances) to which a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) has access. - # @param acs_system_id ID of the access system for which you want to list accessible entrances. You can only provide acs_system_id with user_identity_id. - # @param acs_user_id ID of the access system user for whom you want to list accessible entrances. You can only provide acs_user_id or user_identity_id. - # @param user_identity_id ID of the user identity for whom you want to list accessible entrances. You can only provide acs_user_id or user_identity_id. + # @param acs_system_id [String, nil] ID of the access system for which you want to list accessible entrances. You can only provide acs_system_id with user_identity_id. + # @param acs_user_id [String, nil] ID of the access system user for whom you want to list accessible entrances. You can only provide acs_user_id or user_identity_id. + # @param user_identity_id [String, nil] ID of the user identity for whom you want to list accessible entrances. You can only provide acs_user_id or user_identity_id. # @return [Seam::Resources::AcsEntrance] OK def list_accessible_entrances(acs_system_id: nil, acs_user_id: nil, user_identity_id: nil) res = @client.post("/acs/users/list_accessible_entrances", {acs_system_id: acs_system_id, acs_user_id: acs_user_id, user_identity_id: user_identity_id}.compact) @@ -85,9 +85,9 @@ def list_accessible_entrances(acs_system_id: nil, acs_user_id: nil, user_identit end # Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [access group](https://docs.seam.co/low-level-apis/access-systems/user-management/assigning-users-to-access-groups). - # @param acs_access_group_id ID of the access group from which you want to remove an access system user. - # @param acs_user_id ID of the access system user that you want to remove from an access group. You can only provide acs_user_id or user_identity_id. - # @param user_identity_id ID of the user identity that you want to remove from an access group. You can only provide acs_user_id or user_identity_id. + # @param acs_access_group_id [String] ID of the access group from which you want to remove an access system user. + # @param acs_user_id [String, nil] ID of the access system user that you want to remove from an access group. You can only provide acs_user_id or user_identity_id. + # @param user_identity_id [String, nil] ID of the user identity that you want to remove from an access group. You can only provide acs_user_id or user_identity_id. # @return [nil] OK def remove_from_access_group(acs_access_group_id:, acs_user_id: nil, user_identity_id: nil) @client.post("/acs/users/remove_from_access_group", {acs_access_group_id: acs_access_group_id, acs_user_id: acs_user_id, user_identity_id: user_identity_id}.compact) @@ -96,9 +96,9 @@ def remove_from_access_group(acs_access_group_id:, acs_user_id: nil, user_identi end # Revokes access to all [entrances](https://docs.seam.co/api/acs/entrances) for a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - # @param acs_system_id ID of the access system for which you want to revoke access. You can only provide acs_system_id with user_identity_id. - # @param acs_user_id ID of the access system user for whom you want to revoke access. You can only provide acs_user_id or user_identity_id. - # @param user_identity_id ID of the user identity for whom you want to revoke access. You can only provide acs_user_id or user_identity_id. + # @param acs_system_id [String, nil] ID of the access system for which you want to revoke access. You can only provide acs_system_id with user_identity_id. + # @param acs_user_id [String, nil] ID of the access system user for whom you want to revoke access. You can only provide acs_user_id or user_identity_id. + # @param user_identity_id [String, nil] ID of the user identity for whom you want to revoke access. You can only provide acs_user_id or user_identity_id. # @return [nil] OK def revoke_access_to_all_entrances(acs_system_id: nil, acs_user_id: nil, user_identity_id: nil) @client.post("/acs/users/revoke_access_to_all_entrances", {acs_system_id: acs_system_id, acs_user_id: acs_user_id, user_identity_id: user_identity_id}.compact) @@ -107,9 +107,9 @@ def revoke_access_to_all_entrances(acs_system_id: nil, acs_user_id: nil, user_id end # [Suspends](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users#suspend-an-acs-user) a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). Suspending an access system user revokes their access temporarily. To restore an access system user's access, you can [unsuspend](https://docs.seam.co/api/acs/users/unsuspend) them. - # @param acs_system_id ID of the access system that you want to suspend. You can only provide acs_user_id or the combination of acs_system_id and user_identity_id. - # @param acs_user_id ID of the access system user that you want to suspend. You can only provide acs_user_id or the combination of acs_system_id and user_identity_id. - # @param user_identity_id ID of the user identity that you want to suspend. You can only provide acs_user_id or the combination of acs_system_id and user_identity_id. + # @param acs_system_id [String, nil] ID of the access system that you want to suspend. You can only provide acs_user_id or the combination of acs_system_id and user_identity_id. + # @param acs_user_id [String, nil] ID of the access system user that you want to suspend. You can only provide acs_user_id or the combination of acs_system_id and user_identity_id. + # @param user_identity_id [String, nil] ID of the user identity that you want to suspend. You can only provide acs_user_id or the combination of acs_system_id and user_identity_id. # @return [nil] OK def suspend(acs_system_id: nil, acs_user_id: nil, user_identity_id: nil) @client.post("/acs/users/suspend", {acs_system_id: acs_system_id, acs_user_id: acs_user_id, user_identity_id: user_identity_id}.compact) @@ -118,9 +118,9 @@ def suspend(acs_system_id: nil, acs_user_id: nil, user_identity_id: nil) end # [Unsuspends](https://docs.seam.co/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users#unsuspend-an-acs-user) a specified suspended [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). While [suspending an access system user](https://docs.seam.co/api/acs/users/suspend) revokes their access temporarily, unsuspending the access system user restores their access. - # @param acs_system_id ID of the access system of the user that you want to unsuspend. You can only provide acs_system_id with user_identity_id. - # @param acs_user_id ID of the access system user that you want to unsuspend. You can only provide acs_user_id or the combination of acs_system_id and user_identity_id. - # @param user_identity_id ID of the user identity that you want to unsuspend. You can only provide acs_user_id or the combination of acs_system_id and user_identity_id. + # @param acs_system_id [String, nil] ID of the access system of the user that you want to unsuspend. You can only provide acs_system_id with user_identity_id. + # @param acs_user_id [String, nil] ID of the access system user that you want to unsuspend. You can only provide acs_user_id or the combination of acs_system_id and user_identity_id. + # @param user_identity_id [String, nil] ID of the user identity that you want to unsuspend. You can only provide acs_user_id or the combination of acs_system_id and user_identity_id. # @return [nil] OK def unsuspend(acs_system_id: nil, acs_user_id: nil, user_identity_id: nil) @client.post("/acs/users/unsuspend", {acs_system_id: acs_system_id, acs_user_id: acs_user_id, user_identity_id: user_identity_id}.compact) @@ -129,16 +129,16 @@ def unsuspend(acs_system_id: nil, acs_user_id: nil, user_identity_id: nil) end # Updates the properties of a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - # @param access_schedule `starts_at` and `ends_at` timestamps for the access system user's access. If you specify an `access_schedule`, you may include both `starts_at` and `ends_at`. If you omit `starts_at`, it defaults to the current time. `ends_at` is optional and must be a time in the future and after `starts_at`. - # @param acs_system_id ID of the access system that you want to update. You can only provide acs_system_id with user_identity_id. - # @param acs_user_id ID of the access system user that you want to update. You can only provide acs_user_id or user_identity_id. - # @param email + # @param access_schedule [Hash, nil] `starts_at` and `ends_at` timestamps for the access system user's access. If you specify an `access_schedule`, you may include both `starts_at` and `ends_at`. If you omit `starts_at`, it defaults to the current time. `ends_at` is optional and must be a time in the future and after `starts_at`. + # @param acs_system_id [String, nil] ID of the access system that you want to update. You can only provide acs_system_id with user_identity_id. + # @param acs_user_id [String, nil] ID of the access system user that you want to update. You can only provide acs_user_id or user_identity_id. + # @param email [String, nil] # @deprecated email: use email_address. - # @param email_address Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - # @param full_name Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). - # @param hid_acs_system_id ID of the HID access control system associated with the user. - # @param phone_number Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). - # @param user_identity_id ID of the user identity that you want to update. You can only provide acs_user_id or user_identity_id. If you provide user_identity_id, you must also provide acs_system_id. + # @param email_address [String, nil] Email address of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @param full_name [String, nil] Full name of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management). + # @param hid_acs_system_id [String, nil] ID of the HID access control system associated with the user. + # @param phone_number [String, nil] Phone number of the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`). + # @param user_identity_id [String, nil] ID of the user identity that you want to update. You can only provide acs_user_id or user_identity_id. If you provide user_identity_id, you must also provide acs_system_id. # @return [nil] OK def update(access_schedule: nil, acs_system_id: nil, acs_user_id: nil, email: nil, email_address: nil, full_name: nil, hid_acs_system_id: nil, phone_number: nil, user_identity_id: nil) @client.post("/acs/users/update", {access_schedule: access_schedule, acs_system_id: acs_system_id, acs_user_id: acs_user_id, email: email, email_address: email_address, full_name: full_name, hid_acs_system_id: hid_acs_system_id, phone_number: phone_number, user_identity_id: user_identity_id}.compact) diff --git a/lib/seam/routes/action_attempts.rb b/lib/seam/routes/action_attempts.rb index 737e9f8..881d594 100644 --- a/lib/seam/routes/action_attempts.rb +++ b/lib/seam/routes/action_attempts.rb @@ -11,7 +11,7 @@ def initialize(client:, defaults:) end # Returns a specified [action attempt](https://docs.seam.co/core-concepts/action-attempts). - # @param action_attempt_id ID of the action attempt that you want to get. + # @param action_attempt_id [String] ID of the action attempt that you want to get. # @return [Seam::Resources::ActionAttempt] OK def get(action_attempt_id:, wait_for_action_attempt: nil) res = @client.post("/action_attempts/get", {action_attempt_id: action_attempt_id}.compact) @@ -22,10 +22,10 @@ def get(action_attempt_id:, wait_for_action_attempt: nil) end # Returns a list of the [action attempts](https://docs.seam.co/core-concepts/action-attempts) that you specify as an array of `action_attempt_id`s. - # @param action_attempt_ids IDs of the action attempts that you want to retrieve. - # @param device_id ID of the device to filter action attempts by. - # @param limit Maximum number of records to return per page. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param action_attempt_ids [Array, nil] IDs of the action attempts that you want to retrieve. + # @param device_id [String, nil] ID of the device to filter action attempts by. + # @param limit [Integer, nil] Maximum number of records to return per page. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. # @return [Seam::Resources::ActionAttempt] OK def list(action_attempt_ids: nil, device_id: nil, limit: nil, page_cursor: nil) res = @client.post("/action_attempts/list", {action_attempt_ids: action_attempt_ids, device_id: device_id, limit: limit, page_cursor: page_cursor}.compact) diff --git a/lib/seam/routes/client_sessions.rb b/lib/seam/routes/client_sessions.rb index 8d6505e..8201821 100644 --- a/lib/seam/routes/client_sessions.rb +++ b/lib/seam/routes/client_sessions.rb @@ -9,14 +9,14 @@ def initialize(client:, defaults:) end # Creates a new [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). - # @param connect_webview_ids IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) for which you want to create a client session. - # @param connected_account_ids IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) for which you want to create a client session. - # @param customer_id Customer ID that you want to associate with the new client session. - # @param customer_key Customer key that you want to associate with the new client session. - # @param expires_at Date and time at which the client session should expire, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. - # @param user_identifier_key Your user ID for the user for whom you want to create a client session. - # @param user_identity_id ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to create a client session. - # @param user_identity_ids IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session. + # @param connect_webview_ids [Array, nil] IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) for which you want to create a client session. + # @param connected_account_ids [Array, nil] IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) for which you want to create a client session. + # @param customer_id [String, nil] Customer ID that you want to associate with the new client session. + # @param customer_key [String, nil] Customer key that you want to associate with the new client session. + # @param expires_at [Time, nil] Date and time at which the client session should expire, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. + # @param user_identifier_key [String, nil] Your user ID for the user for whom you want to create a client session. + # @param user_identity_id [String, nil] ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to create a client session. + # @param user_identity_ids [Array, nil] IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session. # @deprecated user_identity_ids: Use `user_identity_id` instead. # @return [Seam::Resources::ClientSession] OK def create(connect_webview_ids: nil, connected_account_ids: nil, customer_id: nil, customer_key: nil, expires_at: nil, user_identifier_key: nil, user_identity_id: nil, user_identity_ids: nil) @@ -26,7 +26,7 @@ def create(connect_webview_ids: nil, connected_account_ids: nil, customer_id: ni end # Deletes a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). - # @param client_session_id ID of the client session that you want to delete. + # @param client_session_id [String] ID of the client session that you want to delete. # @return [nil] OK def delete(client_session_id:) @client.post("/client_sessions/delete", {client_session_id: client_session_id}.compact) @@ -35,8 +35,8 @@ def delete(client_session_id:) end # Returns a specified [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). - # @param client_session_id ID of the client session that you want to get. - # @param user_identifier_key User identifier key associated with the client session that you want to get. + # @param client_session_id [String, nil] ID of the client session that you want to get. + # @param user_identifier_key [String, nil] User identifier key associated with the client session that you want to get. # @return [Seam::Resources::ClientSession] OK def get(client_session_id: nil, user_identifier_key: nil) res = @client.post("/client_sessions/get", {client_session_id: client_session_id, user_identifier_key: user_identifier_key}.compact) @@ -45,12 +45,12 @@ def get(client_session_id: nil, user_identifier_key: nil) end # Returns a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) with specific characteristics or creates a new client session with these characteristics if it does not yet exist. - # @param connect_webview_ids IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) that you want to associate with the client session (or that are already associated with the existing client session). - # @param connected_account_ids IDs of the [connected accounts](https://docs.seam.co/api/connected_accounts) that you want to associate with the client session (or that are already associated with the existing client session). - # @param expires_at Date and time at which the client session should expire in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. If the client session already exists, this will update the expiration before returning it. - # @param user_identifier_key Your user ID for the user that you want to associate with the client session (or that is already associated with the existing client session). - # @param user_identity_id ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session (or that are already associated with the existing client session). - # @param user_identity_ids IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session. + # @param connect_webview_ids [Array, nil] IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) that you want to associate with the client session (or that are already associated with the existing client session). + # @param connected_account_ids [Array, nil] IDs of the [connected accounts](https://docs.seam.co/api/connected_accounts) that you want to associate with the client session (or that are already associated with the existing client session). + # @param expires_at [Time, nil] Date and time at which the client session should expire in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. If the client session already exists, this will update the expiration before returning it. + # @param user_identifier_key [String, nil] Your user ID for the user that you want to associate with the client session (or that is already associated with the existing client session). + # @param user_identity_id [String, nil] ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session (or that are already associated with the existing client session). + # @param user_identity_ids [Array, nil] IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session. # @deprecated user_identity_ids: Use `user_identity_id`. # @return [Seam::Resources::ClientSession] OK def get_or_create(connect_webview_ids: nil, connected_account_ids: nil, expires_at: nil, user_identifier_key: nil, user_identity_id: nil, user_identity_ids: nil) @@ -60,12 +60,12 @@ def get_or_create(connect_webview_ids: nil, connected_account_ids: nil, expires_ end # Grants a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens) access to one or more resources, such as [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews), [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity), and so on. - # @param client_session_id ID of the client session to which you want to grant access to resources. - # @param connect_webview_ids IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) that you want to associate with the client session. - # @param connected_account_ids IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) that you want to associate with the client session. - # @param user_identifier_key Your user ID for the user that you want to associate with the client session. - # @param user_identity_id ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session. - # @param user_identity_ids IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session. + # @param client_session_id [String, nil] ID of the client session to which you want to grant access to resources. + # @param connect_webview_ids [Array, nil] IDs of the [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews) that you want to associate with the client session. + # @param connected_account_ids [Array, nil] IDs of the [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) that you want to associate with the client session. + # @param user_identifier_key [String, nil] Your user ID for the user that you want to associate with the client session. + # @param user_identity_id [String, nil] ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session. + # @param user_identity_ids [Array, nil] IDs of the [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) that you want to associate with the client session. # @deprecated user_identity_ids: Use `user_identity_id`. # @return [nil] OK def grant_access(client_session_id: nil, connect_webview_ids: nil, connected_account_ids: nil, user_identifier_key: nil, user_identity_id: nil, user_identity_ids: nil) @@ -75,11 +75,11 @@ def grant_access(client_session_id: nil, connect_webview_ids: nil, connected_acc end # Returns a list of all [client sessions](https://docs.seam.co/core-concepts/authentication/client-session-tokens). - # @param client_session_id ID of the client session that you want to retrieve. - # @param connect_webview_id ID of the [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) for which you want to retrieve client sessions. - # @param user_identifier_key Your user ID for the user by which you want to filter client sessions. - # @param user_identity_id ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to retrieve client sessions. - # @param without_user_identifier_key Indicates whether to retrieve only client sessions without associated user identifier keys. + # @param client_session_id [String, nil] ID of the client session that you want to retrieve. + # @param connect_webview_id [String, nil] ID of the [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) for which you want to retrieve client sessions. + # @param user_identifier_key [String, nil] Your user ID for the user by which you want to filter client sessions. + # @param user_identity_id [String, nil] ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to retrieve client sessions. + # @param without_user_identifier_key [Boolean, nil] Indicates whether to retrieve only client sessions without associated user identifier keys. # @return [Seam::Resources::ClientSession] OK def list(client_session_id: nil, connect_webview_id: nil, user_identifier_key: nil, user_identity_id: nil, without_user_identifier_key: nil) res = @client.post("/client_sessions/list", {client_session_id: client_session_id, connect_webview_id: connect_webview_id, user_identifier_key: user_identifier_key, user_identity_id: user_identity_id, without_user_identifier_key: without_user_identifier_key}.compact) @@ -90,7 +90,7 @@ def list(client_session_id: nil, connect_webview_id: nil, user_identifier_key: n # Revokes a [client session](https://docs.seam.co/core-concepts/authentication/client-session-tokens). # # Note that [deleting a client session](https://docs.seam.co/api/client_sessions/delete) is a separate action. - # @param client_session_id ID of the client session that you want to revoke. + # @param client_session_id [String] ID of the client session that you want to revoke. # @return [nil] OK def revoke(client_session_id:) @client.post("/client_sessions/revoke", {client_session_id: client_session_id}.compact) diff --git a/lib/seam/routes/connect_webviews.rb b/lib/seam/routes/connect_webviews.rb index f56b27f..5e079b5 100644 --- a/lib/seam/routes/connect_webviews.rb +++ b/lib/seam/routes/connect_webviews.rb @@ -15,16 +15,16 @@ def initialize(client:, defaults:) # You should make a new `connect_webview` for each unique login request. Each `connect_webview` tracks the user that signed in with it. You receive an error if you reuse a Connect Webview for the same user twice or if you use the same Connect Webview for multiple users. # # See also: [Connect Webview Process](https://docs.seam.co/core-concepts/connect-webviews/connect-webview-process). - # @param accepted_capabilities List of accepted device capabilities that restrict the types of devices that can be connected through the Connect Webview. If not provided, defaults will be determined based on the accepted providers. - # @param accepted_providers Accepted device provider keys as an alternative to `provider_category`. Use this parameter to specify accepted providers explicitly. See [Customize the Brands to Display in Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). To list all provider keys, use [`/devices/list_device_providers`](https://docs.seam.co/api/devices/list_device_providers) with no filters. - # @param automatically_manage_new_devices Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). See also: [Customize the Behavior Settings of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews). - # @param custom_metadata Custom metadata that you want to associate with the Connect Webview. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview) enables you to store custom information, like customer details or internal IDs from your application. The custom metadata is then transferred to any [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) that were connected using the Connect Webview, making it easy to find and filter these resources in your [workspace](https://docs.seam.co/core-concepts/workspaces). You can also [filter Connect Webviews by custom metadata](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). - # @param custom_redirect_failure_url Alternative URL that you want to redirect the user to on an error. If you do not set this parameter, the Connect Webview falls back to the `custom_redirect_url`. - # @param custom_redirect_url URL that you want to redirect the user to after the provider login is complete. - # @param customer_key Associate the Connect Webview, the connected account, and all resources under the connected account with a customer. If the connected account already exists, it will be associated with the customer. If the connected account already exists, but is already associated with a customer, the Connect Webview will show an error. - # @param excluded_providers List of provider keys to exclude from the Connect Webview. These providers will not be shown when the user tries to connect an account. - # @param provider_category Specifies the category of providers that you want to include. To list all providers within a category, use [`/devices/list_device_providers`](https://docs.seam.co/api/devices/list_device_providers) with the desired `provider_category` filter. - # @param wait_for_device_creation Indicates whether Seam should finish syncing all devices in a newly-connected account before completing the associated Connect Webview. See also: [Customize the Behavior Settings of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews). + # @param accepted_capabilities [Array, nil] List of accepted device capabilities that restrict the types of devices that can be connected through the Connect Webview. If not provided, defaults will be determined based on the accepted providers. + # @param accepted_providers [Array, nil] Accepted device provider keys as an alternative to `provider_category`. Use this parameter to specify accepted providers explicitly. See [Customize the Brands to Display in Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). To list all provider keys, use [`/devices/list_device_providers`](https://docs.seam.co/api/devices/list_device_providers) with no filters. + # @param automatically_manage_new_devices [Boolean, nil] Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). See also: [Customize the Behavior Settings of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews). + # @param custom_metadata [Hash, nil] Custom metadata that you want to associate with the Connect Webview. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview) enables you to store custom information, like customer details or internal IDs from your application. The custom metadata is then transferred to any [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) that were connected using the Connect Webview, making it easy to find and filter these resources in your [workspace](https://docs.seam.co/core-concepts/workspaces). You can also [filter Connect Webviews by custom metadata](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). + # @param custom_redirect_failure_url [String, nil] Alternative URL that you want to redirect the user to on an error. If you do not set this parameter, the Connect Webview falls back to the `custom_redirect_url`. + # @param custom_redirect_url [String, nil] URL that you want to redirect the user to after the provider login is complete. + # @param customer_key [String, nil] Associate the Connect Webview, the connected account, and all resources under the connected account with a customer. If the connected account already exists, it will be associated with the customer. If the connected account already exists, but is already associated with a customer, the Connect Webview will show an error. + # @param excluded_providers [Array, nil] List of provider keys to exclude from the Connect Webview. These providers will not be shown when the user tries to connect an account. + # @param provider_category [String, nil] Specifies the category of providers that you want to include. To list all providers within a category, use [`/devices/list_device_providers`](https://docs.seam.co/api/devices/list_device_providers) with the desired `provider_category` filter. + # @param wait_for_device_creation [Boolean, nil] Indicates whether Seam should finish syncing all devices in a newly-connected account before completing the associated Connect Webview. See also: [Customize the Behavior Settings of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews). # @return [Seam::Resources::ConnectWebview] OK def create(accepted_capabilities: nil, accepted_providers: nil, automatically_manage_new_devices: nil, custom_metadata: nil, custom_redirect_failure_url: nil, custom_redirect_url: nil, customer_key: nil, excluded_providers: nil, provider_category: nil, wait_for_device_creation: nil) res = @client.post("/connect_webviews/create", {accepted_capabilities: accepted_capabilities, accepted_providers: accepted_providers, automatically_manage_new_devices: automatically_manage_new_devices, custom_metadata: custom_metadata, custom_redirect_failure_url: custom_redirect_failure_url, custom_redirect_url: custom_redirect_url, customer_key: customer_key, excluded_providers: excluded_providers, provider_category: provider_category, wait_for_device_creation: wait_for_device_creation}.compact) @@ -35,7 +35,7 @@ def create(accepted_capabilities: nil, accepted_providers: nil, automatically_ma # Deletes a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews). # # You do not need to delete a Connect Webview once a user completes it. Instead, you can simply ignore completed Connect Webviews. - # @param connect_webview_id ID of the Connect Webview that you want to delete. + # @param connect_webview_id [String] ID of the Connect Webview that you want to delete. # @return [nil] OK def delete(connect_webview_id:) @client.post("/connect_webviews/delete", {connect_webview_id: connect_webview_id}.compact) @@ -46,7 +46,7 @@ def delete(connect_webview_id:) # Returns a specified [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews). # # Unless you're using a `custom_redirect_url`, you should poll a newly-created `connect_webview` to find out if the user has signed in or to get details about what devices they've connected. - # @param connect_webview_id ID of the Connect Webview that you want to get. + # @param connect_webview_id [String] ID of the Connect Webview that you want to get. # @return [Seam::Resources::ConnectWebview] OK def get(connect_webview_id:) res = @client.post("/connect_webviews/get", {connect_webview_id: connect_webview_id}.compact) @@ -55,12 +55,12 @@ def get(connect_webview_id:) end # Returns a list of all [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews). - # @param custom_metadata_has Custom metadata pairs by which you want to [filter Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Returns Connect Webviews with `custom_metadata` that contains all of the provided key:value pairs. - # @param customer_key Customer key for which you want to list connect webviews. - # @param limit Maximum number of records to return per page. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param search String for which to search. Filters returned Connect Webviews to include all records that satisfy a partial match using `connect_webview_id`, `accepted_providers`, `custom_metadata`, or `customer_key`. - # @param user_identifier_key Your user ID for the user by which you want to filter Connect Webviews. + # @param custom_metadata_has [Hash, nil] Custom metadata pairs by which you want to [filter Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Returns Connect Webviews with `custom_metadata` that contains all of the provided key:value pairs. + # @param customer_key [String, nil] Customer key for which you want to list connect webviews. + # @param limit [Float, nil] Maximum number of records to return per page. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param search [String, nil] String for which to search. Filters returned Connect Webviews to include all records that satisfy a partial match using `connect_webview_id`, `accepted_providers`, `custom_metadata`, or `customer_key`. + # @param user_identifier_key [String, nil] Your user ID for the user by which you want to filter Connect Webviews. # @return [Seam::Resources::ConnectWebview] OK def list(custom_metadata_has: nil, customer_key: nil, limit: nil, page_cursor: nil, search: nil, user_identifier_key: nil) res = @client.post("/connect_webviews/list", {custom_metadata_has: custom_metadata_has, customer_key: customer_key, limit: limit, page_cursor: page_cursor, search: search, user_identifier_key: user_identifier_key}.compact) diff --git a/lib/seam/routes/connected_accounts.rb b/lib/seam/routes/connected_accounts.rb index 16a2a45..fdeb191 100644 --- a/lib/seam/routes/connected_accounts.rb +++ b/lib/seam/routes/connected_accounts.rb @@ -17,7 +17,7 @@ def simulate # Deleting a connected account triggers a `connected_account.deleted` event and removes the connected account and all data associated with the connected account from Seam, including devices, events, access codes, and so on. For every deleted resource, Seam sends a corresponding deleted event, but the resource is not deleted from the provider. # # For example, if you delete a connected account with a device that has an access code, Seam sends a `connected_account.deleted` event, a `device.deleted` event, and an `access_code.deleted` event, but Seam does not remove the access code from the device. - # @param connected_account_id ID of the connected account that you want to delete. + # @param connected_account_id [String] ID of the connected account that you want to delete. # @return [nil] OK def delete(connected_account_id:) @client.post("/connected_accounts/delete", {connected_account_id: connected_account_id}.compact) @@ -26,8 +26,8 @@ def delete(connected_account_id:) end # Returns a specified [connected account](https://docs.seam.co/core-concepts/connected-accounts). - # @param connected_account_id ID of the connected account that you want to get. - # @param email Email address associated with the connected account that you want to get. + # @param connected_account_id [String, nil] ID of the connected account that you want to get. + # @param email [String, nil] Email address associated with the connected account that you want to get. # @return [Seam::Resources::ConnectedAccount] OK def get(connected_account_id: nil, email: nil) res = @client.post("/connected_accounts/get", {connected_account_id: connected_account_id, email: email}.compact) @@ -36,13 +36,13 @@ def get(connected_account_id: nil, email: nil) end # Returns a list of all [connected accounts](https://docs.seam.co/core-concepts/connected-accounts). - # @param custom_metadata_has Custom metadata pairs by which you want to filter connected accounts. Returns connected accounts with `custom_metadata` that contains all of the provided key:value pairs. - # @param customer_key Customer key by which you want to filter connected accounts. - # @param limit Maximum number of records to return per page. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param search String for which to search. Filters returned connected accounts to include all records that satisfy a partial match using `connected_account_id`, `account_type`, `customer_key`, `custom_metadata`, `user_identifier.username`, `user_identifier.email` or `user_identifier.phone`. - # @param space_id ID of the space by which you want to filter connected accounts. - # @param user_identifier_key Your user ID for the user by which you want to filter connected accounts. + # @param custom_metadata_has [Hash, nil] Custom metadata pairs by which you want to filter connected accounts. Returns connected accounts with `custom_metadata` that contains all of the provided key:value pairs. + # @param customer_key [String, nil] Customer key by which you want to filter connected accounts. + # @param limit [Integer, nil] Maximum number of records to return per page. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param search [String, nil] String for which to search. Filters returned connected accounts to include all records that satisfy a partial match using `connected_account_id`, `account_type`, `customer_key`, `custom_metadata`, `user_identifier.username`, `user_identifier.email` or `user_identifier.phone`. + # @param space_id [String, nil] ID of the space by which you want to filter connected accounts. + # @param user_identifier_key [String, nil] Your user ID for the user by which you want to filter connected accounts. # @return [Seam::Resources::ConnectedAccount] OK def list(custom_metadata_has: nil, customer_key: nil, limit: nil, page_cursor: nil, search: nil, space_id: nil, user_identifier_key: nil) res = @client.post("/connected_accounts/list", {custom_metadata_has: custom_metadata_has, customer_key: customer_key, limit: limit, page_cursor: page_cursor, search: search, space_id: space_id, user_identifier_key: user_identifier_key}.compact) @@ -51,7 +51,7 @@ def list(custom_metadata_has: nil, customer_key: nil, limit: nil, page_cursor: n end # Request a [connected account](https://docs.seam.co/core-concepts/connected-accounts) sync attempt for the specified `connected_account_id`. - # @param connected_account_id ID of the connected account that you want to sync. + # @param connected_account_id [String] ID of the connected account that you want to sync. # @return [nil] OK def sync(connected_account_id:) @client.post("/connected_accounts/sync", {connected_account_id: connected_account_id}.compact) @@ -60,12 +60,12 @@ def sync(connected_account_id:) end # Updates a [connected account](https://docs.seam.co/core-concepts/connected-accounts). - # @param connected_account_id ID of the connected account that you want to update. - # @param accepted_capabilities List of accepted device capabilities that restrict the types of devices that can be connected through this connected account. Valid values are `lock`, `thermostat`, `noise_sensor`, and `access_control`. - # @param automatically_manage_new_devices Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). - # @param custom_metadata Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](https://docs.seam.co/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata). - # @param customer_key The customer key to associate with this connected account. If provided, the connected account and all resources under the connected account will be moved to this customer. May only be provided if the connected account is not already associated with a customer. - # @param display_name Human-readable name for the connected account, shown in the dashboard. For example, `Booking from Airbnb House 1`. + # @param connected_account_id [String] ID of the connected account that you want to update. + # @param accepted_capabilities [Array, nil] List of accepted device capabilities that restrict the types of devices that can be connected through this connected account. Valid values are `lock`, `thermostat`, `noise_sensor`, and `access_control`. + # @param automatically_manage_new_devices [Boolean, nil] Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). + # @param custom_metadata [Hash, nil] Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](https://docs.seam.co/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata). + # @param customer_key [String, nil] The customer key to associate with this connected account. If provided, the connected account and all resources under the connected account will be moved to this customer. May only be provided if the connected account is not already associated with a customer. + # @param display_name [String, nil] Human-readable name for the connected account, shown in the dashboard. For example, `Booking from Airbnb House 1`. # @return [nil] OK def update(connected_account_id:, accepted_capabilities: nil, automatically_manage_new_devices: nil, custom_metadata: nil, customer_key: nil, display_name: nil) @client.post("/connected_accounts/update", {connected_account_id: connected_account_id, accepted_capabilities: accepted_capabilities, automatically_manage_new_devices: automatically_manage_new_devices, custom_metadata: custom_metadata, customer_key: customer_key, display_name: display_name}.compact) diff --git a/lib/seam/routes/connected_accounts_simulate.rb b/lib/seam/routes/connected_accounts_simulate.rb index 5d8ccd8..e8a5a74 100644 --- a/lib/seam/routes/connected_accounts_simulate.rb +++ b/lib/seam/routes/connected_accounts_simulate.rb @@ -9,7 +9,7 @@ def initialize(client:, defaults:) end # Simulates a connected account becoming disconnected from Seam. Only applicable for [sandbox workspaces](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). - # @param connected_account_id ID of the connected account you want to simulate as disconnected. + # @param connected_account_id [String] ID of the connected account you want to simulate as disconnected. # @return [nil] OK def disconnect(connected_account_id:) @client.post("/connected_accounts/simulate/disconnect", {connected_account_id: connected_account_id}.compact) diff --git a/lib/seam/routes/customers.rb b/lib/seam/routes/customers.rb index 7b84662..502533c 100644 --- a/lib/seam/routes/customers.rb +++ b/lib/seam/routes/customers.rb @@ -9,17 +9,17 @@ def initialize(client:, defaults:) end # Creates a new customer portal magic link with configurable features. - # @param customer_resources_filters Filter configuration for resources based on their custom_metadata. Each filter specifies a field, operation, and value to match against resource custom_metadata. - # @param customization_profile_id The ID of the customization profile to use for the portal. - # @param deep_link Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource. - # @param exclude_locale_picker Whether to exclude the option to select a locale within the portal UI. - # @param features - # @param is_embedded Whether the portal is embedded in another application. - # @param landing_page Configuration for the landing page when the portal loads. - # @param locale The locale to use for the portal. - # @param navigation_mode Navigation mode for the portal. 'restricted' tells frontend to hide navigation UI, typically used for embedded deep links. - # @param read_only Whether the portal is read-only. When true, the customer can browse the portal but cannot perform any mutating action; write requests made with the portal's client session are rejected. - # @param customer_data + # @param customer_resources_filters [Array, nil] Filter configuration for resources based on their custom_metadata. Each filter specifies a field, operation, and value to match against resource custom_metadata. + # @param customization_profile_id [String, nil] The ID of the customization profile to use for the portal. + # @param deep_link [Hash, nil] Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource. + # @param exclude_locale_picker [Boolean, nil] Whether to exclude the option to select a locale within the portal UI. + # @param features [Hash, nil] + # @param is_embedded [Boolean, nil] Whether the portal is embedded in another application. + # @param landing_page [Hash, nil] Configuration for the landing page when the portal loads. + # @param locale [String, nil] The locale to use for the portal. + # @param navigation_mode [String, nil] Navigation mode for the portal. 'restricted' tells frontend to hide navigation UI, typically used for embedded deep links. + # @param read_only [Boolean, nil] Whether the portal is read-only. When true, the customer can browse the portal but cannot perform any mutating action; write requests made with the portal's client session are rejected. + # @param customer_data [Hash, nil] # @return [Seam::Resources::CustomerPortal] OK def create_portal(customer_resources_filters: nil, customization_profile_id: nil, deep_link: nil, exclude_locale_picker: nil, features: nil, is_embedded: nil, landing_page: nil, locale: nil, navigation_mode: nil, read_only: nil, customer_data: nil) res = @client.post("/customers/create_portal", {customer_resources_filters: customer_resources_filters, customization_profile_id: customization_profile_id, deep_link: deep_link, exclude_locale_picker: exclude_locale_picker, features: features, is_embedded: is_embedded, landing_page: landing_page, locale: locale, navigation_mode: navigation_mode, read_only: read_only, customer_data: customer_data}.compact) @@ -29,25 +29,25 @@ def create_portal(customer_resources_filters: nil, customization_profile_id: nil # Deletes customer data including resources like spaces, properties, rooms, users, etc. # This will delete the partner resources and any related Seam resources (user identities, access grants, spaces). - # @param access_grant_keys List of access grant keys to delete. - # @param booking_keys List of booking keys to delete. - # @param building_keys List of building keys to delete. - # @param common_area_keys List of common area keys to delete. - # @param customer_keys List of customer keys to delete all data for. - # @param facility_keys List of facility keys to delete. - # @param guest_keys List of guest keys to delete. - # @param listing_keys List of listing keys to delete. - # @param property_keys List of property keys to delete. - # @param property_listing_keys List of property listing keys to delete. - # @param reservation_keys List of reservation keys to delete. - # @param resident_keys List of resident keys to delete. - # @param room_keys List of room keys to delete. - # @param space_keys List of space keys to delete. - # @param staff_member_keys List of staff member keys to delete. - # @param tenant_keys List of tenant keys to delete. - # @param unit_keys List of unit keys to delete. - # @param user_identity_keys List of user identity keys to delete. - # @param user_keys List of user keys to delete. + # @param access_grant_keys [Array, nil] List of access grant keys to delete. + # @param booking_keys [Array, nil] List of booking keys to delete. + # @param building_keys [Array, nil] List of building keys to delete. + # @param common_area_keys [Array, nil] List of common area keys to delete. + # @param customer_keys [Array, nil] List of customer keys to delete all data for. + # @param facility_keys [Array, nil] List of facility keys to delete. + # @param guest_keys [Array, nil] List of guest keys to delete. + # @param listing_keys [Array, nil] List of listing keys to delete. + # @param property_keys [Array, nil] List of property keys to delete. + # @param property_listing_keys [Array, nil] List of property listing keys to delete. + # @param reservation_keys [Array, nil] List of reservation keys to delete. + # @param resident_keys [Array, nil] List of resident keys to delete. + # @param room_keys [Array, nil] List of room keys to delete. + # @param space_keys [Array, nil] List of space keys to delete. + # @param staff_member_keys [Array, nil] List of staff member keys to delete. + # @param tenant_keys [Array, nil] List of tenant keys to delete. + # @param unit_keys [Array, nil] List of unit keys to delete. + # @param user_identity_keys [Array, nil] List of user identity keys to delete. + # @param user_keys [Array, nil] List of user keys to delete. # @return [nil] OK def delete_data(access_grant_keys: nil, booking_keys: nil, building_keys: nil, common_area_keys: nil, customer_keys: nil, facility_keys: nil, guest_keys: nil, listing_keys: nil, property_keys: nil, property_listing_keys: nil, reservation_keys: nil, resident_keys: nil, room_keys: nil, space_keys: nil, staff_member_keys: nil, tenant_keys: nil, unit_keys: nil, user_identity_keys: nil, user_keys: nil) @client.post("/customers/delete_data", {access_grant_keys: access_grant_keys, booking_keys: booking_keys, building_keys: building_keys, common_area_keys: common_area_keys, customer_keys: customer_keys, facility_keys: facility_keys, guest_keys: guest_keys, listing_keys: listing_keys, property_keys: property_keys, property_listing_keys: property_listing_keys, reservation_keys: reservation_keys, resident_keys: resident_keys, room_keys: room_keys, space_keys: space_keys, staff_member_keys: staff_member_keys, tenant_keys: tenant_keys, unit_keys: unit_keys, user_identity_keys: user_identity_keys, user_keys: user_keys}.compact) @@ -56,26 +56,26 @@ def delete_data(access_grant_keys: nil, booking_keys: nil, building_keys: nil, c end # Pushes customer data including resources like spaces, properties, rooms, users, etc. - # @param customer_key Your unique identifier for the customer. - # @param access_grants List of access grants. - # @param bookings List of bookings. - # @param buildings List of buildings. - # @param common_areas List of shared common areas. - # @param facilities List of gym or fitness facilities. - # @param guests List of guests. - # @param listings List of property listings. - # @param properties List of short-term rental properties. - # @param property_listings List of property listings. - # @param reservations List of reservations. - # @param residents List of residents. - # @param rooms List of hotel or hospitality rooms. - # @param sites List of general sites or areas. - # @param spaces List of general spaces or areas. - # @param staff_members List of staff members. - # @param tenants List of tenants. - # @param units List of multi-family residential units. - # @param user_identities List of user identities. - # @param users List of users. + # @param customer_key [String] Your unique identifier for the customer. + # @param access_grants [Array, nil] List of access grants. + # @param bookings [Array, nil] List of bookings. + # @param buildings [Array, nil] List of buildings. + # @param common_areas [Array, nil] List of shared common areas. + # @param facilities [Array, nil] List of gym or fitness facilities. + # @param guests [Array, nil] List of guests. + # @param listings [Array, nil] List of property listings. + # @param properties [Array, nil] List of short-term rental properties. + # @param property_listings [Array, nil] List of property listings. + # @param reservations [Array, nil] List of reservations. + # @param residents [Array, nil] List of residents. + # @param rooms [Array, nil] List of hotel or hospitality rooms. + # @param sites [Array, nil] List of general sites or areas. + # @param spaces [Array, nil] List of general spaces or areas. + # @param staff_members [Array, nil] List of staff members. + # @param tenants [Array, nil] List of tenants. + # @param units [Array, nil] List of multi-family residential units. + # @param user_identities [Array, nil] List of user identities. + # @param users [Array, nil] List of users. # @return [nil] OK def push_data(customer_key:, access_grants: nil, bookings: nil, buildings: nil, common_areas: nil, facilities: nil, guests: nil, listings: nil, properties: nil, property_listings: nil, reservations: nil, residents: nil, rooms: nil, sites: nil, spaces: nil, staff_members: nil, tenants: nil, units: nil, user_identities: nil, users: nil) @client.post("/customers/push_data", {customer_key: customer_key, access_grants: access_grants, bookings: bookings, buildings: buildings, common_areas: common_areas, facilities: facilities, guests: guests, listings: listings, properties: properties, property_listings: property_listings, reservations: reservations, residents: residents, rooms: rooms, sites: sites, spaces: spaces, staff_members: staff_members, tenants: tenants, units: units, user_identities: user_identities, users: users}.compact) diff --git a/lib/seam/routes/devices.rb b/lib/seam/routes/devices.rb index e2ca842..dbebaa2 100644 --- a/lib/seam/routes/devices.rb +++ b/lib/seam/routes/devices.rb @@ -19,8 +19,8 @@ def unmanaged # Returns a specified [device](https://docs.seam.co/core-concepts/devices). # # You must specify either `device_id` or `name`. - # @param device_id ID of the device that you want to get. - # @param name Name of the device that you want to get. + # @param device_id [String, nil] ID of the device that you want to get. + # @param name [String, nil] Name of the device that you want to get. # @return [Seam::Resources::Device] OK def get(device_id: nil, name: nil) res = @client.post("/devices/get", {device_id: device_id, name: name}.compact) @@ -29,23 +29,23 @@ def get(device_id: nil, name: nil) end # Returns a list of all [devices](https://docs.seam.co/core-concepts/devices). - # @param connect_webview_id ID of the Connect Webview for which you want to list devices. - # @param connected_account_id ID of the connected account for which you want to list devices. - # @param connected_account_ids Array of IDs of the connected accounts for which you want to list devices. - # @param created_before Timestamp by which to limit returned devices. Returns devices created before this timestamp. - # @param custom_metadata_has Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices. - # @param customer_key Customer key for which you want to list devices. - # @param device_ids Array of device IDs for which you want to list devices. - # @param device_type Device type for which you want to list devices. - # @param device_types Array of device types for which you want to list devices. - # @param limit Numerical limit on the number of devices to return. - # @param manufacturer Manufacturer for which you want to list devices. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param search String for which to search. Filters returned devices to include all records that satisfy a partial match using `device_id` (full or partial UUID prefix, minimum 4 characters), `connected_account_id`, `display_name`, `custom_metadata` or `location.location_name`. - # @param space_id ID of the space for which you want to list devices. - # @param unstable_location_id + # @param connect_webview_id [String, nil] ID of the Connect Webview for which you want to list devices. + # @param connected_account_id [String, nil] ID of the connected account for which you want to list devices. + # @param connected_account_ids [Array, nil] Array of IDs of the connected accounts for which you want to list devices. + # @param created_before [Time, nil] Timestamp by which to limit returned devices. Returns devices created before this timestamp. + # @param custom_metadata_has [Hash, nil] Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices. + # @param customer_key [String, nil] Customer key for which you want to list devices. + # @param device_ids [Array, nil] Array of device IDs for which you want to list devices. + # @param device_type [String, nil] Device type for which you want to list devices. + # @param device_types [Array, nil] Array of device types for which you want to list devices. + # @param limit [Float, nil] Numerical limit on the number of devices to return. + # @param manufacturer [String, nil] Manufacturer for which you want to list devices. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param search [String, nil] String for which to search. Filters returned devices to include all records that satisfy a partial match using `device_id` (full or partial UUID prefix, minimum 4 characters), `connected_account_id`, `display_name`, `custom_metadata` or `location.location_name`. + # @param space_id [String, nil] ID of the space for which you want to list devices. + # @param unstable_location_id [String, nil] # @deprecated unstable_location_id: Use `space_id`. - # @param user_identifier_key Your own internal user ID for the user for which you want to list devices. + # @param user_identifier_key [String, nil] Your own internal user ID for the user for which you want to list devices. # @return [Seam::Resources::Device] OK def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_key: nil, device_ids: nil, device_type: nil, device_types: nil, limit: nil, manufacturer: nil, page_cursor: nil, search: nil, space_id: nil, unstable_location_id: nil, user_identifier_key: nil) res = @client.post("/devices/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_key: customer_key, device_ids: device_ids, device_type: device_type, device_types: device_types, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, search: search, space_id: space_id, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact) @@ -58,7 +58,7 @@ def list(connect_webview_id: nil, connected_account_id: nil, connected_account_i # The information that this endpoint returns for each provider includes a set of [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags), such as `device_provider.can_remotely_unlock`. If at least one supported device from a provider has a specific capability, the corresponding capability flag is `true`. # # When you create a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews), you can customize the providers—that is, the brands—that it displays. In the `/connect_webviews/create` request, include the desired set of device provider keys in the `accepted_providers` parameter. See also [Customize the Brands to Display in Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). - # @param provider_category Category for which you want to list providers. + # @param provider_category [String, nil] Category for which you want to list providers. # @return [Seam::Resources::DeviceProvider] OK def list_device_providers(provider_category: nil) res = @client.post("/devices/list_device_providers", {provider_category: provider_category}.compact) @@ -67,7 +67,7 @@ def list_device_providers(provider_category: nil) end # Updates provider-specific metadata for devices. - # @param devices Array of devices with provider metadata to update + # @param devices [Array] Array of devices with provider metadata to update # @return [nil] OK def report_provider_metadata(devices:) @client.post("/devices/report_provider_metadata", {devices: devices}.compact) @@ -78,12 +78,12 @@ def report_provider_metadata(devices:) # Updates a specified [device](https://docs.seam.co/core-concepts/devices). # # You can add or change [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) for a device, change the device's name, or [convert a managed device to unmanaged](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). - # @param device_id ID of the device that you want to update. - # @param backup_access_code_pool_enabled Indicates whether the device's [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is enabled. Set to `false` to disable the pool: Seam stops refilling it and removes any backup codes that have not yet been pulled into active use. - # @param custom_metadata Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter devices by the desired metadata](https://docs.seam.co/core-concepts/devices/filtering-devices-by-custom-metadata). - # @param is_managed Indicates whether the device is managed. To unmanage a device, set `is_managed` to `false`. - # @param name Name for the device. - # @param properties + # @param device_id [String] ID of the device that you want to update. + # @param backup_access_code_pool_enabled [Boolean, nil] Indicates whether the device's [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is enabled. Set to `false` to disable the pool: Seam stops refilling it and removes any backup codes that have not yet been pulled into active use. + # @param custom_metadata [Hash, nil] Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter devices by the desired metadata](https://docs.seam.co/core-concepts/devices/filtering-devices-by-custom-metadata). + # @param is_managed [Boolean, nil] Indicates whether the device is managed. To unmanage a device, set `is_managed` to `false`. + # @param name [String, nil] Name for the device. + # @param properties [Hash, nil] # @return [nil] OK def update(device_id:, backup_access_code_pool_enabled: nil, custom_metadata: nil, is_managed: nil, name: nil, properties: nil) @client.post("/devices/update", {device_id: device_id, backup_access_code_pool_enabled: backup_access_code_pool_enabled, custom_metadata: custom_metadata, is_managed: is_managed, name: name, properties: properties}.compact) diff --git a/lib/seam/routes/devices_simulate.rb b/lib/seam/routes/devices_simulate.rb index 92e575a..d527e75 100644 --- a/lib/seam/routes/devices_simulate.rb +++ b/lib/seam/routes/devices_simulate.rb @@ -9,7 +9,7 @@ def initialize(client:, defaults:) end # Simulates connecting a device to Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). - # @param device_id ID of the device that you want to simulate connecting to Seam. + # @param device_id [String] ID of the device that you want to simulate connecting to Seam. # @return [nil] OK def connect(device_id:) @client.post("/devices/simulate/connect", {device_id: device_id}.compact) @@ -21,7 +21,7 @@ def connect(device_id:) # Only applicable for sandbox workspaces and currently # implemented for August and TTLock locks. # This will clear the `hub_disconnected` error on the device. - # @param device_id ID of the device whose hub you want to reconnect. + # @param device_id [String] ID of the device whose hub you want to reconnect. # @return [nil] OK def connect_to_hub(device_id:) @client.post("/devices/simulate/connect_to_hub", {device_id: device_id}.compact) @@ -30,7 +30,7 @@ def connect_to_hub(device_id:) end # Simulates disconnecting a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). - # @param device_id ID of the device that you want to simulate disconnecting from Seam. + # @param device_id [String] ID of the device that you want to simulate disconnecting from Seam. # @return [nil] OK def disconnect(device_id:) @client.post("/devices/simulate/disconnect", {device_id: device_id}.compact) @@ -43,7 +43,7 @@ def disconnect(device_id:) # implemented for August, TTLock, and IglooHome devices. # This will set the `hub_disconnected` error on the device, or mark the # IglooHome bridge offline in sandbox. - # @param device_id ID of the device whose hub you want to disconnect. + # @param device_id [String] ID of the device whose hub you want to disconnect. # @return [nil] OK def disconnect_from_hub(device_id:) @client.post("/devices/simulate/disconnect_from_hub", {device_id: device_id}.compact) @@ -54,8 +54,8 @@ def disconnect_from_hub(device_id:) # Toggle the simulated Nuki Smart Hosting subscription for a device (sandbox only). # Send `is_expired: true` to simulate an expired subscription, or `false` to simulate an active subscription. # The actual device error is created/cleared by the poller after this state change. - # @param device_id - # @param is_expired + # @param device_id [String] + # @param is_expired [Boolean] # @return [nil] OK def paid_subscription(device_id:, is_expired:) @client.post("/devices/simulate/paid_subscription", {device_id: device_id, is_expired: is_expired}.compact) @@ -64,7 +64,7 @@ def paid_subscription(device_id:, is_expired:) end # Simulates removing a device from Seam. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your App Against Device Disconnection and Removal](https://docs.seam.co/core-concepts/devices/testing-your-app-against-device-disconnection-and-removal). - # @param device_id ID of the device that you want to simulate removing from Seam. + # @param device_id [String] ID of the device that you want to simulate removing from Seam. # @return [nil] OK def remove(device_id:) @client.post("/devices/simulate/remove", {device_id: device_id}.compact) diff --git a/lib/seam/routes/devices_unmanaged.rb b/lib/seam/routes/devices_unmanaged.rb index 66b7a2a..ac45147 100644 --- a/lib/seam/routes/devices_unmanaged.rb +++ b/lib/seam/routes/devices_unmanaged.rb @@ -13,8 +13,8 @@ def initialize(client:, defaults:) # An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed). # # You must specify either `device_id` or `name`. - # @param device_id ID of the unmanaged device that you want to get. - # @param name Name of the unmanaged device that you want to get. + # @param device_id [String, nil] ID of the unmanaged device that you want to get. + # @param name [String, nil] Name of the unmanaged device that you want to get. # @return [Seam::Resources::UnmanagedDevice] OK def get(device_id: nil, name: nil) res = @client.post("/devices/unmanaged/get", {device_id: device_id, name: name}.compact) @@ -25,18 +25,18 @@ def get(device_id: nil, name: nil) # Returns a list of all [unmanaged devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). # # An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed). - # @param connect_webview_id ID of the Connect Webview for which you want to list devices. - # @param connected_account_id ID of the connected account for which you want to list devices. - # @param connected_account_ids Array of IDs of the connected accounts for which you want to list devices. - # @param created_before Timestamp by which to limit returned devices. Returns devices created before this timestamp. - # @param customer_key Customer key for which you want to list devices. - # @param device_ids Array of device IDs for which you want to list devices. - # @param device_type Device type for which you want to list devices. - # @param device_types Array of device types for which you want to list devices. - # @param limit Numerical limit on the number of devices to return. - # @param manufacturer Manufacturer for which you want to list devices. - # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. - # @param search String for which to search. Filters returned devices to include all records that satisfy a partial match using `device_id` (full or partial UUID prefix, minimum 4 characters), `connected_account_id`, `display_name`, `custom_metadata` or `location.location_name`. + # @param connect_webview_id [String, nil] ID of the Connect Webview for which you want to list devices. + # @param connected_account_id [String, nil] ID of the connected account for which you want to list devices. + # @param connected_account_ids [Array, nil] Array of IDs of the connected accounts for which you want to list devices. + # @param created_before [Time, nil] Timestamp by which to limit returned devices. Returns devices created before this timestamp. + # @param customer_key [String, nil] Customer key for which you want to list devices. + # @param device_ids [Array, nil] Array of device IDs for which you want to list devices. + # @param device_type [String, nil] Device type for which you want to list devices. + # @param device_types [Array, nil] Array of device types for which you want to list devices. + # @param limit [Float, nil] Numerical limit on the number of devices to return. + # @param manufacturer [String, nil] Manufacturer for which you want to list devices. + # @param page_cursor [String, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. + # @param search [String, nil] String for which to search. Filters returned devices to include all records that satisfy a partial match using `device_id` (full or partial UUID prefix, minimum 4 characters), `connected_account_id`, `display_name`, `custom_metadata` or `location.location_name`. # @return [Seam::Resources::UnmanagedDevice] OK def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, customer_key: nil, device_ids: nil, device_type: nil, device_types: nil, limit: nil, manufacturer: nil, page_cursor: nil, search: nil) res = @client.post("/devices/unmanaged/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, customer_key: customer_key, device_ids: device_ids, device_type: device_type, device_types: device_types, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, search: search}.compact) @@ -47,9 +47,9 @@ def list(connect_webview_id: nil, connected_account_id: nil, connected_account_i # Updates a specified [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). To convert an unmanaged device to managed, set `is_managed` to `true`. # # An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed). - # @param device_id ID of the unmanaged device that you want to update. - # @param custom_metadata Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. - # @param is_managed Indicates whether the device is managed. Set this parameter to `true` to convert an unmanaged device to managed. + # @param device_id [String] ID of the unmanaged device that you want to update. + # @param custom_metadata [Hash, nil] Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. + # @param is_managed [Boolean, nil] Indicates whether the device is managed. Set this parameter to `true` to convert an unmanaged device to managed. # @return [nil] OK def update(device_id:, custom_metadata: nil, is_managed: nil) @client.post("/devices/unmanaged/update", {device_id: device_id, custom_metadata: custom_metadata, is_managed: is_managed}.compact) diff --git a/lib/seam/routes/events.rb b/lib/seam/routes/events.rb index 1b06634..96c3932 100644 --- a/lib/seam/routes/events.rb +++ b/lib/seam/routes/events.rb @@ -9,9 +9,9 @@ def initialize(client:, defaults:) end # Returns a specified event. This endpoint returns the same event that would be sent to a [webhook](https://docs.seam.co/developer-tools/webhooks), but it enables you to retrieve an event that already took place. - # @param event_id Unique identifier for the event that you want to get. - # @param device_id Unique identifier for the device that triggered the event that you want to get. - # @param event_type Type of the event that you want to get. + # @param event_id [String, nil] Unique identifier for the event that you want to get. + # @param device_id [String, nil] Unique identifier for the device that triggered the event that you want to get. + # @param event_type [String, nil] Type of the event that you want to get. # @return [Seam::Resources::SeamEvent] OK def get(event_id: nil, device_id: nil, event_type: nil) res = @client.post("/events/get", {event_id: event_id, device_id: device_id, event_type: event_type}.compact) @@ -20,34 +20,34 @@ def get(event_id: nil, device_id: nil, event_type: nil) end # Returns a list of all events. This endpoint returns the same events that would be sent to a [webhook](https://docs.seam.co/developer-tools/webhooks), but it enables you to filter or see events that already took place. - # @param access_code_id ID of the access code for which you want to list events. - # @param access_code_ids IDs of the access codes for which you want to list events. - # @param access_grant_id ID of the access grant for which you want to list events. - # @param access_grant_ids IDs of the access grants for which you want to list events. - # @param access_method_id ID of the access method for which you want to list events. - # @param access_method_ids IDs of the access methods for which you want to list events. - # @param acs_access_group_id ID of the ACS access group for which you want to list events. - # @param acs_credential_id ID of the ACS credential for which you want to list events. - # @param acs_encoder_id ID of the ACS encoder for which you want to list events. - # @param acs_entrance_id ID of the ACS entrance for which you want to list events. - # @param acs_system_id ID of the access system for which you want to list events. - # @param acs_system_ids IDs of the access systems for which you want to list events. - # @param acs_user_id ID of the ACS user for which you want to list events. - # @param between Lower and upper timestamps to define an exclusive interval containing the events that you want to list. You must include `since` or `between`. - # @param connect_webview_id ID of the Connect Webview for which you want to list events. - # @param connected_account_id ID of the connected account for which you want to list events. - # @param customer_key Customer key for which you want to list events. - # @param device_id ID of the device for which you want to list events. - # @param device_ids IDs of the devices for which you want to list events. - # @param event_ids IDs of the events that you want to list. - # @param event_type Type of the events that you want to list. - # @param event_types Types of the events that you want to list. - # @param limit Numerical limit on the number of events to return. - # @param since Timestamp to indicate the beginning generation time for the events that you want to list. You must include `since` or `between`. - # @param space_id ID of the space for which you want to list events. - # @param space_ids IDs of the spaces for which you want to list events. - # @param unstable_offset Offset for the events that you want to list. - # @param user_identity_id ID of the user identity for which you want to list events. + # @param access_code_id [String, nil] ID of the access code for which you want to list events. + # @param access_code_ids [Array, nil] IDs of the access codes for which you want to list events. + # @param access_grant_id [String, nil] ID of the access grant for which you want to list events. + # @param access_grant_ids [Array, nil] IDs of the access grants for which you want to list events. + # @param access_method_id [String, nil] ID of the access method for which you want to list events. + # @param access_method_ids [Array, nil] IDs of the access methods for which you want to list events. + # @param acs_access_group_id [String, nil] ID of the ACS access group for which you want to list events. + # @param acs_credential_id [String, nil] ID of the ACS credential for which you want to list events. + # @param acs_encoder_id [String, nil] ID of the ACS encoder for which you want to list events. + # @param acs_entrance_id [String, nil] ID of the ACS entrance for which you want to list events. + # @param acs_system_id [String, nil] ID of the access system for which you want to list events. + # @param acs_system_ids [Array, nil] IDs of the access systems for which you want to list events. + # @param acs_user_id [String, nil] ID of the ACS user for which you want to list events. + # @param between [Array