From f2559c3fe3f1501c3c2263e3a4e8b6075f5790e5 Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Wed, 26 Aug 2026 16:16:29 -0700 Subject: [PATCH 1/2] chore: update blueprint and types --- package-lock.json | 16 ++++++++-------- package.json | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4b3379c2..b7f7e5b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,10 +14,10 @@ "axios-retry": "^4.4.2" }, "devDependencies": { - "@seamapi/blueprint": "^1.8.0", + "@seamapi/blueprint": "^1.9.1", "@seamapi/fake-seam-connect": "^2.0.4", "@seamapi/smith": "^1.1.0", - "@seamapi/types": "1.1037.0", + "@seamapi/types": "1.1047.0", "@types/jsonwebtoken": "^9.0.6", "@types/node": "^24.10.9", "ava": "^8.0.1", @@ -1067,9 +1067,9 @@ "license": "MIT" }, "node_modules/@seamapi/blueprint": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-1.8.0.tgz", - "integrity": "sha512-NUghBmYaKreBeBxwPIB2O9hjIFZtEjVj73tAsuKdJR8t4BxlKK1I0XDQXxo3ZsH2QezNlbdo9/0MoX/33VXuhQ==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@seamapi/blueprint/-/blueprint-1.9.1.tgz", + "integrity": "sha512-A9H3dZE9f+ZEEnOAlMl5jSlL5F/RIKkjOF8NDFbnuahAiu/trDz/RzHOGhbQd6sd0RErIyx3eG1p4HCOJDKDCA==", "dev": true, "license": "MIT", "dependencies": { @@ -1133,9 +1133,9 @@ } }, "node_modules/@seamapi/types": { - "version": "1.1037.0", - "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.1037.0.tgz", - "integrity": "sha512-3HbkUbACvkQsybIOdmDslMHRXPePrPgZ6WwX6pXO8MyO8o3hMsxy5qTr+HJZbG6tTSqMHQ8HP1uVLZIk+WrN5A==", + "version": "1.1047.0", + "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.1047.0.tgz", + "integrity": "sha512-S3A3FcQ4fWJ1IsxVjHaE14k7WlQt0iKJsb3oPF/YVUZHJAmHnFg6riAF6LghlMig7prLf6C2uxaTDairw5dCJQ==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index 0889e3e3..1875658e 100644 --- a/package.json +++ b/package.json @@ -85,10 +85,10 @@ "axios-retry": "^4.4.2" }, "devDependencies": { - "@seamapi/blueprint": "^1.8.0", + "@seamapi/blueprint": "^1.9.1", "@seamapi/fake-seam-connect": "^2.0.4", "@seamapi/smith": "^1.1.0", - "@seamapi/types": "1.1037.0", + "@seamapi/types": "1.1047.0", "@types/jsonwebtoken": "^9.0.6", "@types/node": "^24.10.9", "ava": "^8.0.1", From 0d30480c68be0e9bea06aa8f3f50ac3932afa2d9 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Wed, 26 Aug 2026 23:17:22 +0000 Subject: [PATCH 2/2] ci: Generate code --- src/lib/resources/access-grant.ts | 2 +- src/lib/resources/event.ts | 15 +- src/lib/routes/access-codes/access-codes.ts | 2 +- src/lib/routes/access-grants/access-grants.ts | 54 +- .../routes/access-methods/access-methods.ts | 12 +- .../routes/acs/encoders/simulate/simulate.ts | 11 +- src/lib/routes/customers/customers.ts | 471 +++++++++--------- .../noise-thresholds/noise-thresholds.ts | 2 +- .../routes/thermostats/simulate/simulate.ts | 19 +- src/lib/routes/thermostats/thermostats.ts | 14 +- .../routes/user-identities/user-identities.ts | 12 +- src/lib/routes/workspaces/workspaces.ts | 2 +- 12 files changed, 309 insertions(+), 307 deletions(-) diff --git a/src/lib/resources/access-grant.ts b/src/lib/resources/access-grant.ts index facd9e5e..06a19cec 100644 --- a/src/lib/resources/access-grant.ts +++ b/src/lib/resources/access-grant.ts @@ -40,7 +40,7 @@ export type AccessGrant = { display_name: string /** - * Human-readable sentence answering whether the user can currently get in, for example `Awaiting encoding` on an access method or `Upcoming` here. For display only. The wording is not stable and is not an enumeration — it may change at any time, so never compare against or branch on it. To make decisions, read `starts_at`, `ends_at`, `errors`, and the access methods' own fields. + * Human-readable sentence answering whether the user can currently get in, for example `Active`, `Awaiting issuance`, or `Upcoming`. For display only. The wording is not stable and is not an enumeration — it may change at any time, so never compare against or branch on it. To make decisions, read `starts_at`, `ends_at`, `errors`, and the access methods' own fields. */ display_status: string diff --git a/src/lib/resources/event.ts b/src/lib/resources/event.ts index 7b3db820..f5c5363a 100644 --- a/src/lib/resources/event.ts +++ b/src/lib/resources/event.ts @@ -4549,14 +4549,15 @@ export type SeamEvent = } | { /** - * Number in the range 0 to 1.0 indicating the amount of battery in the affected device, as reported by the device. + * Number in the range 0 to 1.0 indicating the battery level of the affected device's paired accessory keypad, when the device has one and its level is known. */ - battery_level: number - + accessory_keypad_battery_level?: number | undefined /** - * Battery that dropped below the low threshold. `lock`: the lock's own battery. `accessory_keypad`: a paired accessory keypad's battery. Omitted for events emitted before this field existed, which always refer to the lock's own battery. + * Number in the range 0 to 1.0 indicating the level of the battery whose drop triggered this event. + * @deprecated Use device_battery_level and accessory_keypad_battery_level, which distinguish the device's own battery from a paired accessory keypad's battery. */ - battery_source?: 'lock' | 'accessory_keypad' | undefined + battery_level: number + /** * Custom metadata of the connected account, present when connected_account_id is provided. */ @@ -4576,6 +4577,10 @@ export type SeamEvent = * The customer key associated with the device, if any. */ customer_key?: string | undefined + /** + * Number in the range 0 to 1.0 indicating the affected device's own battery level, when known. + */ + device_battery_level?: number | undefined /** * Custom metadata of the device, present when device_id is provided. */ diff --git a/src/lib/routes/access-codes/access-codes.ts b/src/lib/routes/access-codes/access-codes.ts index 593bcb7b..b7383c5a 100644 --- a/src/lib/routes/access-codes/access-codes.ts +++ b/src/lib/routes/access-codes/access-codes.ts @@ -378,7 +378,7 @@ export class SeamHttpAccessCodes { ): AccessCodesUpdateRequest { return new SeamHttpRequest(this, { pathname: '/access_codes/update', - method: 'PUT', + method: 'PATCH', body: parameters, parameters, hasRequiredParameters: true, diff --git a/src/lib/routes/access-grants/access-grants.ts b/src/lib/routes/access-grants/access-grants.ts index fd07387c..d017b795 100644 --- a/src/lib/routes/access-grants/access-grants.ts +++ b/src/lib/routes/access-grants/access-grants.ts @@ -323,33 +323,6 @@ export class SeamHttpAccessGrants { } export type AccessGrantsCreateParameters = { - /** - * ID of user identity for whom access is being granted. - */ - user_identity_id?: string | undefined - /** - * When used, creates a new user identity with the given details, and grants them access. - */ - user_identity?: - | { - /** - * Unique email address for the user identity. - */ - email_address?: string | null | undefined - /** - * Full name of the user associated with the user identity. - */ - full_name?: string | null | undefined - /** - * Unique phone number for the user identity in [E.164 format](https://www.itu.int/rec/T-REC-E.164/en) (for example, +15555550100). - */ - phone_number?: string | null | undefined - /** - * Unique key for the user identity. - */ - user_identity_key?: string | null | undefined - } - | undefined /** * Unique key for the access grant within the workspace. */ @@ -429,6 +402,33 @@ export type AccessGrantsCreateParameters = { * 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. */ starts_at?: string | undefined + /** + * When used, creates a new user identity with the given details, and grants them access. + */ + user_identity?: + | { + /** + * Unique email address for the user identity. + */ + email_address?: string | null | undefined + /** + * Full name of the user associated with the user identity. + */ + full_name?: string | null | undefined + /** + * Unique phone number for the user identity in [E.164 format](https://www.itu.int/rec/T-REC-E.164/en) (for example, +15555550100). + */ + phone_number?: string | null | undefined + /** + * Unique key for the user identity. + */ + user_identity_key?: string | null | undefined + } + | undefined + /** + * ID of user identity for whom access is being granted. + */ + user_identity_id?: string | undefined } /** diff --git a/src/lib/routes/access-methods/access-methods.ts b/src/lib/routes/access-methods/access-methods.ts index f7f6f437..5b2517f9 100644 --- a/src/lib/routes/access-methods/access-methods.ts +++ b/src/lib/routes/access-methods/access-methods.ts @@ -211,8 +211,8 @@ export class SeamHttpAccessMethods { hasRequiredParameters: true, requiredParameterNames: [], atLeastOneParameterNames: [ - 'access_method_id', 'access_grant_id', + 'access_method_id', 'reservation_key', ], responseKey: undefined, @@ -368,20 +368,20 @@ export type AccessMethodsAssignCardOptions = Pick< export type AccessMethodsDeleteParameters = RequireAtLeastOne< { - /** - * ID of access method to delete. - */ - access_method_id?: string | undefined /** * ID of access grant whose access methods should be deleted. */ access_grant_id?: string | undefined + /** + * ID of access method to delete. + */ + access_method_id?: string | undefined /** * Reservation key of the access grant whose access methods should be deleted. */ reservation_key?: string | undefined }, - 'access_method_id' | 'access_grant_id' | 'reservation_key' + 'access_grant_id' | 'access_method_id' | 'reservation_key' > /** diff --git a/src/lib/routes/acs/encoders/simulate/simulate.ts b/src/lib/routes/acs/encoders/simulate/simulate.ts index 36c93e7f..1ea81622 100644 --- a/src/lib/routes/acs/encoders/simulate/simulate.ts +++ b/src/lib/routes/acs/encoders/simulate/simulate.ts @@ -242,6 +242,10 @@ export class SeamHttpAcsEncodersSimulate { } export type AcsEncodersSimulateNextCredentialEncodeWillFailParameters = { + /** + * ID of the `acs_credential` that will fail to be encoded onto a card in the next request. + */ + acs_credential_id?: string | undefined /** * ID of the `acs_encoder` that will be used in the next request to encode the `acs_credential`. */ @@ -256,10 +260,6 @@ export type AcsEncodersSimulateNextCredentialEncodeWillFailParameters = { | 'uncategorized_error' | 'action_attempt_expired' | undefined - /** - * ID of the `acs_credential` that will fail to be encoded onto a card in the next request. - */ - acs_credential_id?: string | undefined } /** @@ -295,6 +295,7 @@ export type AcsEncodersSimulateNextCredentialEncodeWillSucceedRequest = export interface AcsEncodersSimulateNextCredentialEncodeWillSucceedOptions {} export type AcsEncodersSimulateNextCredentialScanWillFailParameters = { + acs_credential_id_on_seam?: string | undefined /** * ID of the `acs_encoder` that will fail to scan the `acs_credential` in the next request. */ @@ -305,8 +306,6 @@ export type AcsEncodersSimulateNextCredentialScanWillFailParameters = { | 'uncategorized_error' | 'action_attempt_expired' | undefined - - acs_credential_id_on_seam?: string | undefined } /** diff --git a/src/lib/routes/customers/customers.ts b/src/lib/routes/customers/customers.ts index 7237e5d5..9a6d357e 100644 --- a/src/lib/routes/customers/customers.ts +++ b/src/lib/routes/customers/customers.ts @@ -224,242 +224,6 @@ export class SeamHttpCustomers { } export type CustomersCreatePortalParameters = { - /** - * Filter configuration for resources based on their custom_metadata. Each filter specifies a field, operation, and value to match against resource custom_metadata. - */ - customer_resources_filters?: - | Array<{ - /** - * The custom_metadata field name to filter on. - */ - field?: string | undefined - /** - * The comparison operation. Currently only '=' is supported. - */ - operation?: '=' | undefined - /** - * The value to compare against. - */ - value?: string | undefined - }> - | undefined - /** - * The ID of the customization profile to use for the portal. - */ - customization_profile_id?: string | undefined - /** - * Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource. - */ - deep_link?: - | { - resource_key?: string | undefined - - resource_type?: 'reservation' | 'space' | 'device' | undefined - - resource_id?: string | undefined - } - | undefined - /** - * Whether to exclude the option to select a locale within the portal UI. - */ - exclude_locale_picker?: boolean | undefined - - features?: - | { - /** - * Configuration for the configure feature. - */ - configure?: - | { - /** - * Indicates whether the customer can customize the access automation rules for their properties. - */ - allow_access_automation_rule_customization?: boolean | undefined - /** - * Indicates whether the customer can customize the climate automation rules for their properties. - */ - allow_climate_automation_rule_customization?: boolean | undefined - /** - * Indicates whether the customer can customize the Instant Key profile for their properties. - */ - allow_instant_key_customization?: boolean | undefined - /** - * Whether to exclude this feature from the portal. - */ - exclude?: boolean | undefined - } - | undefined - /** - * Configuration for the connect accounts feature. - */ - connect?: - | { - /** - * List of provider keys to allow for the connect feature. These providers will be shown when the customer tries to connect an account. - */ - accepted_providers?: Array | undefined - /** - * Whether to exclude this feature from the portal. - */ - exclude?: boolean | undefined - /** - * List of provider keys to exclude from the connect feature. These providers will not be shown when the customer tries to connect an account. - */ - excluded_providers?: Array | undefined - } - | undefined - /** - * Configuration for the manage feature. - */ - manage?: - | { - /** - * Custom copy for the confirmation modal shown before unmanaged devices are added to a space and begin being managed (and billed). Only takes effect when the MANAGE_DEVICES_CONFIRMATION_MODAL feature flag is enabled for the workspace. Any omitted string falls back to a localized default. - */ - device_management_confirmation?: - | { - /** - * Custom body text for the confirmation modal. May include the {count} token, which is replaced with the number of devices that will begin being managed. - */ - body?: string | undefined - /** - * Custom label for the cancel button. - */ - cancel_button_label?: string | undefined - /** - * Custom label for the confirm button. - */ - confirm_button_label?: string | undefined - /** - * Custom title for the confirmation modal. - */ - title?: string | undefined - } - | undefined - /** - * Configuration for event type filtering in the manage feature. - */ - events?: - | { - /** - * List of event types to show in the events filter. When set, only these event types will be available. Leave empty to show all events. - */ - allowed_events?: Array | undefined - /** - * List of event types that are pre-selected in the events filter when the user first loads the events tab. - */ - default_events?: Array | undefined - } - | undefined - /** - * Whether to exclude this feature from the portal. - */ - exclude?: boolean | undefined - /** - * Indicates whether the customer can manage reservations for their properties. - */ - exclude_reservation_management?: boolean | undefined - /** - * Indicates whether to exclude technical details from reservation views. - */ - exclude_reservation_technical_details?: boolean | undefined - /** - * Indicates whether the customer can manage staff for their properties. - */ - exclude_staff_management?: boolean | undefined - } - | undefined - /** - * Configuration for the manage devices feature. - * --- - * deprecated: Use `manage` instead. - * --- - */ - manage_devices?: - | { - /** - * Whether to exclude this feature from the portal. - */ - exclude?: boolean | undefined - } - | undefined - /** - * Configuration for the organize feature. - */ - organize?: - | { - /** - * Whether to exclude this feature from the portal. - */ - exclude?: boolean | undefined - } - | undefined - } - | undefined - /** - * Whether the portal is embedded in another application. - */ - is_embedded?: boolean | undefined - /** - * Configuration for the landing page when the portal loads. - */ - landing_page?: - | { - manage?: - | { - space_key?: string | undefined - - property_key?: string | undefined - - room_key?: string | undefined - - common_area_key?: string | undefined - - unit_key?: string | undefined - - facility_key?: string | undefined - - building_key?: string | undefined - - listing_key?: string | undefined - - property_listing_key?: string | undefined - - site_key?: string | undefined - - reservation_key?: string | undefined - - booking_key?: string | undefined - - access_grant_key?: string | undefined - } - | undefined - } - | undefined - /** - * The locale to use for the portal. - */ - locale?: - | 'en-US' - | 'pt-PT' - | 'fr-FR' - | 'it-IT' - | 'es-ES' - | 'de-DE' - | 'nl-NL' - | 'el-GR' - | 'pl-PL' - | 'ru-RU' - | undefined - /** - * Navigation mode for the portal. 'restricted' tells frontend to hide navigation UI, typically used for embedded deep links. - */ - navigation_mode?: 'full' | 'restricted' | undefined - /** - * 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. - */ - read_only?: boolean | undefined - customer_data?: | { /** @@ -1099,6 +863,241 @@ export type CustomersCreatePortalParameters = { | undefined } | undefined + /** + * Filter configuration for resources based on their custom_metadata. Each filter specifies a field, operation, and value to match against resource custom_metadata. + */ + customer_resources_filters?: + | Array<{ + /** + * The custom_metadata field name to filter on. + */ + field?: string | undefined + /** + * The comparison operation. Currently only '=' is supported. + */ + operation?: '=' | undefined + /** + * The value to compare against. + */ + value?: string | undefined + }> + | undefined + /** + * The ID of the customization profile to use for the portal. + */ + customization_profile_id?: string | undefined + /** + * Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource. + */ + deep_link?: + | { + resource_id?: string | undefined + + resource_key?: string | undefined + + resource_type?: 'reservation' | 'space' | 'device' | undefined + } + | undefined + /** + * Whether to exclude the option to select a locale within the portal UI. + */ + exclude_locale_picker?: boolean | undefined + + features?: + | { + /** + * Configuration for the configure feature. + */ + configure?: + | { + /** + * Indicates whether the customer can customize the access automation rules for their properties. + */ + allow_access_automation_rule_customization?: boolean | undefined + /** + * Indicates whether the customer can customize the climate automation rules for their properties. + */ + allow_climate_automation_rule_customization?: boolean | undefined + /** + * Indicates whether the customer can customize the Instant Key profile for their properties. + */ + allow_instant_key_customization?: boolean | undefined + /** + * Whether to exclude this feature from the portal. + */ + exclude?: boolean | undefined + } + | undefined + /** + * Configuration for the connect accounts feature. + */ + connect?: + | { + /** + * List of provider keys to allow for the connect feature. These providers will be shown when the customer tries to connect an account. + */ + accepted_providers?: Array | undefined + /** + * Whether to exclude this feature from the portal. + */ + exclude?: boolean | undefined + /** + * List of provider keys to exclude from the connect feature. These providers will not be shown when the customer tries to connect an account. + */ + excluded_providers?: Array | undefined + } + | undefined + /** + * Configuration for the manage feature. + */ + manage?: + | { + /** + * Custom copy for the confirmation modal shown before unmanaged devices are added to a space and begin being managed (and billed). Only takes effect when the MANAGE_DEVICES_CONFIRMATION_MODAL feature flag is enabled for the workspace. Any omitted string falls back to a localized default. + */ + device_management_confirmation?: + | { + /** + * Custom body text for the confirmation modal. May include the {count} token, which is replaced with the number of devices that will begin being managed. + */ + body?: string | undefined + /** + * Custom label for the cancel button. + */ + cancel_button_label?: string | undefined + /** + * Custom label for the confirm button. + */ + confirm_button_label?: string | undefined + /** + * Custom title for the confirmation modal. + */ + title?: string | undefined + } + | undefined + /** + * Configuration for event type filtering in the manage feature. + */ + events?: + | { + /** + * List of event types to show in the events filter. When set, only these event types will be available. Leave empty to show all events. + */ + allowed_events?: Array | undefined + /** + * List of event types that are pre-selected in the events filter when the user first loads the events tab. + */ + default_events?: Array | undefined + } + | undefined + /** + * Whether to exclude this feature from the portal. + */ + exclude?: boolean | undefined + /** + * Indicates whether the customer can manage reservations for their properties. + */ + exclude_reservation_management?: boolean | undefined + /** + * Indicates whether to exclude technical details from reservation views. + */ + exclude_reservation_technical_details?: boolean | undefined + /** + * Indicates whether the customer can manage staff for their properties. + */ + exclude_staff_management?: boolean | undefined + } + | undefined + /** + * Configuration for the manage devices feature. + * --- + * deprecated: Use `manage` instead. + * --- + */ + manage_devices?: + | { + /** + * Whether to exclude this feature from the portal. + */ + exclude?: boolean | undefined + } + | undefined + /** + * Configuration for the organize feature. + */ + organize?: + | { + /** + * Whether to exclude this feature from the portal. + */ + exclude?: boolean | undefined + } + | undefined + } + | undefined + /** + * Whether the portal is embedded in another application. + */ + is_embedded?: boolean | undefined + /** + * Configuration for the landing page when the portal loads. + */ + landing_page?: + | { + manage?: + | { + access_grant_key?: string | undefined + + booking_key?: string | undefined + + building_key?: string | undefined + + common_area_key?: string | undefined + + facility_key?: string | undefined + + listing_key?: string | undefined + + property_key?: string | undefined + + property_listing_key?: string | undefined + + reservation_key?: string | undefined + + room_key?: string | undefined + + site_key?: string | undefined + + space_key?: string | undefined + + unit_key?: string | undefined + } + | undefined + } + | undefined + /** + * The locale to use for the portal. + */ + locale?: + | 'en-US' + | 'pt-PT' + | 'fr-FR' + | 'it-IT' + | 'es-ES' + | 'de-DE' + | 'nl-NL' + | 'el-GR' + | 'pl-PL' + | 'ru-RU' + | undefined + /** + * Navigation mode for the portal. 'restricted' tells frontend to hide navigation UI, typically used for embedded deep links. + */ + navigation_mode?: 'full' | 'restricted' | undefined + /** + * 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. + */ + read_only?: boolean | undefined } /** diff --git a/src/lib/routes/noise-sensors/noise-thresholds/noise-thresholds.ts b/src/lib/routes/noise-sensors/noise-thresholds/noise-thresholds.ts index 67f41e80..889f4e2b 100644 --- a/src/lib/routes/noise-sensors/noise-thresholds/noise-thresholds.ts +++ b/src/lib/routes/noise-sensors/noise-thresholds/noise-thresholds.ts @@ -253,7 +253,7 @@ export class SeamHttpNoiseSensorsNoiseThresholds { ): NoiseSensorsNoiseThresholdsUpdateRequest { return new SeamHttpRequest(this, { pathname: '/noise_sensors/noise_thresholds/update', - method: 'PUT', + method: 'PATCH', body: parameters, parameters, hasRequiredParameters: true, diff --git a/src/lib/routes/thermostats/simulate/simulate.ts b/src/lib/routes/thermostats/simulate/simulate.ts index 6ae6dda0..f98355bb 100644 --- a/src/lib/routes/thermostats/simulate/simulate.ts +++ b/src/lib/routes/thermostats/simulate/simulate.ts @@ -202,16 +202,6 @@ export class SeamHttpThermostatsSimulate { } export type ThermostatsSimulateHvacModeAdjustedParameters = { - /** - * ID of the thermostat device for which you want to simulate having adjusted the HVAC mode. - */ - device_id: string - - /** - * HVAC mode that you want to simulate. - */ - hvac_mode: 'off' | 'cool' | 'heat' | 'heat_cool' - /** * Cooling [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `cooling_set_point_celsius` or `cooling_set_point_fahrenheit`. */ @@ -220,6 +210,11 @@ export type ThermostatsSimulateHvacModeAdjustedParameters = { * Cooling [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `cooling_set_point_fahrenheit` or `cooling_set_point_celsius`. */ cooling_set_point_fahrenheit?: number | undefined + /** + * ID of the thermostat device for which you want to simulate having adjusted the HVAC mode. + */ + device_id: string + /** * Heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `heating_set_point_celsius` or `heating_set_point_fahrenheit`. */ @@ -228,6 +223,10 @@ export type ThermostatsSimulateHvacModeAdjustedParameters = { * Heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `heating_set_point_fahrenheit` or `heating_set_point_celsius`. */ heating_set_point_fahrenheit?: number | undefined + /** + * HVAC mode that you want to simulate. + */ + hvac_mode: 'off' | 'cool' | 'heat' | 'heat_cool' } /** diff --git a/src/lib/routes/thermostats/thermostats.ts b/src/lib/routes/thermostats/thermostats.ts index 97f42e47..645d9a70 100644 --- a/src/lib/routes/thermostats/thermostats.ts +++ b/src/lib/routes/thermostats/thermostats.ts @@ -879,13 +879,6 @@ export type ThermostatsSetFanModeOptions = Pick< > export type ThermostatsSetHvacModeParameters = { - /** - * ID of the thermostat device for which you want to set the HVAC mode. - */ - device_id: string - - hvac_mode_setting: 'off' | 'cool' | 'heat' | 'heat_cool' | 'eco' - /** * [Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters. */ @@ -894,6 +887,11 @@ export type ThermostatsSetHvacModeParameters = { * [Cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `cooling_set_point` parameters. */ cooling_set_point_fahrenheit?: number | undefined + /** + * ID of the thermostat device for which you want to set the HVAC mode. + */ + device_id: string + /** * [Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to set for the thermostat. You must set one of the `heating_set_point` parameters. */ @@ -902,6 +900,8 @@ export type ThermostatsSetHvacModeParameters = { * [Heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to set for the thermostat. You must set one of the `heating_set_point` parameters. */ heating_set_point_fahrenheit?: number | undefined + + hvac_mode_setting: 'off' | 'cool' | 'heat' | 'heat_cool' | 'eco' } /** diff --git a/src/lib/routes/user-identities/user-identities.ts b/src/lib/routes/user-identities/user-identities.ts index 5c5fa28b..a3afc47b 100644 --- a/src/lib/routes/user-identities/user-identities.ts +++ b/src/lib/routes/user-identities/user-identities.ts @@ -423,8 +423,8 @@ export class SeamHttpUserIdentities { requiredParameterNames: [], atLeastOneParameterNames: [ 'merged_user_identity_ids', - 'user_identity_id', 'merged_user_identity_keys', + 'user_identity_id', 'user_identity_key', ], responseKey: undefined, @@ -772,22 +772,22 @@ export type UserIdentitiesMergeParameters = RequireAtLeastOne< * IDs of the user identities to merge into the primary user identity. These user identities are deleted. */ merged_user_identity_ids?: Array | undefined - /** - * ID of the primary user identity to keep. - */ - user_identity_id?: string | undefined /** * Keys of the user identities to merge into the primary user identity. These user identities are deleted. */ merged_user_identity_keys?: Array | undefined + /** + * ID of the primary user identity to keep. + */ + user_identity_id?: string | undefined /** * Key of the primary user identity to keep. */ user_identity_key?: string | undefined }, | 'merged_user_identity_ids' - | 'user_identity_id' | 'merged_user_identity_keys' + | 'user_identity_id' | 'user_identity_key' > diff --git a/src/lib/routes/workspaces/workspaces.ts b/src/lib/routes/workspaces/workspaces.ts index 9d7f37b7..09530477 100644 --- a/src/lib/routes/workspaces/workspaces.ts +++ b/src/lib/routes/workspaces/workspaces.ts @@ -312,7 +312,7 @@ export type WorkspacesCreateParameters = { name: string /** - * ID of the organization to associate with the new workspace. + * ID of the organization to associate with the new workspace. If omitted, the new workspace is associated with the organization that you administer, if you administer exactly one. */ organization_id?: string | undefined /**