@seamapi/http 2.4.0 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/lib/error-interceptor.js +1 -1
  2. package/lib/request-parameters.d.ts +2 -0
  3. package/lib/request-parameters.js +17 -0
  4. package/lib/request-parameters.js.map +1 -0
  5. package/lib/resources/access-code.d.ts +13 -9
  6. package/lib/resources/acs-credential.d.ts +33 -1
  7. package/lib/resources/acs-entrance.d.ts +1 -1
  8. package/lib/resources/acs-system.d.ts +30 -0
  9. package/lib/resources/action-attempt.d.ts +82 -11
  10. package/lib/resources/device-provider.d.ts +1 -1
  11. package/lib/resources/device.d.ts +63 -18
  12. package/lib/resources/event.d.ts +0 -76
  13. package/lib/resources/unmanaged-access-code.d.ts +13 -9
  14. package/lib/resources/unmanaged-device.d.ts +28 -16
  15. package/lib/routes/access-codes/access-codes.d.ts +8 -35
  16. package/lib/routes/access-codes/access-codes.js +17 -6
  17. package/lib/routes/access-codes/access-codes.js.map +1 -1
  18. package/lib/routes/access-codes/simulate/simulate.js +2 -0
  19. package/lib/routes/access-codes/simulate/simulate.js.map +1 -1
  20. package/lib/routes/access-codes/unmanaged/unmanaged.d.ts +5 -4
  21. package/lib/routes/access-codes/unmanaged/unmanaged.js +12 -6
  22. package/lib/routes/access-codes/unmanaged/unmanaged.js.map +1 -1
  23. package/lib/routes/access-grants/access-grants.d.ts +20 -19
  24. package/lib/routes/access-grants/access-grants.js +10 -2
  25. package/lib/routes/access-grants/access-grants.js.map +1 -1
  26. package/lib/routes/access-grants/unmanaged/unmanaged.d.ts +1 -1
  27. package/lib/routes/access-grants/unmanaged/unmanaged.js +8 -4
  28. package/lib/routes/access-grants/unmanaged/unmanaged.js.map +1 -1
  29. package/lib/routes/access-methods/access-methods.d.ts +8 -7
  30. package/lib/routes/access-methods/access-methods.js +12 -4
  31. package/lib/routes/access-methods/access-methods.js.map +1 -1
  32. package/lib/routes/access-methods/unmanaged/unmanaged.js +7 -4
  33. package/lib/routes/access-methods/unmanaged/unmanaged.js.map +1 -1
  34. package/lib/routes/acs/access-groups/access-groups.js +20 -12
  35. package/lib/routes/acs/access-groups/access-groups.js.map +1 -1
  36. package/lib/routes/acs/credentials/credentials.d.ts +1 -1
  37. package/lib/routes/acs/credentials/credentials.js +15 -6
  38. package/lib/routes/acs/credentials/credentials.js.map +1 -1
  39. package/lib/routes/acs/encoders/encoders.d.ts +1 -1
  40. package/lib/routes/acs/encoders/encoders.js +10 -4
  41. package/lib/routes/acs/encoders/encoders.js.map +1 -1
  42. package/lib/routes/acs/encoders/simulate/simulate.js +5 -0
  43. package/lib/routes/acs/encoders/simulate/simulate.js.map +1 -1
  44. package/lib/routes/acs/entrances/entrances.d.ts +2 -2
  45. package/lib/routes/acs/entrances/entrances.js +8 -2
  46. package/lib/routes/acs/entrances/entrances.js.map +1 -1
  47. package/lib/routes/acs/systems/systems.js +11 -6
  48. package/lib/routes/acs/systems/systems.js.map +1 -1
  49. package/lib/routes/acs/users/users.d.ts +25 -24
  50. package/lib/routes/acs/users/users.js +22 -10
  51. package/lib/routes/acs/users/users.js.map +1 -1
  52. package/lib/routes/action-attempts/action-attempts.d.ts +1 -1
  53. package/lib/routes/action-attempts/action-attempts.js +5 -2
  54. package/lib/routes/action-attempts/action-attempts.js.map +1 -1
  55. package/lib/routes/client-sessions/client-sessions.d.ts +4 -3
  56. package/lib/routes/client-sessions/client-sessions.js +14 -6
  57. package/lib/routes/client-sessions/client-sessions.js.map +1 -1
  58. package/lib/routes/connect-webviews/connect-webviews.d.ts +2 -2
  59. package/lib/routes/connect-webviews/connect-webviews.js +9 -4
  60. package/lib/routes/connect-webviews/connect-webviews.js.map +1 -1
  61. package/lib/routes/connected-accounts/connected-accounts.d.ts +5 -4
  62. package/lib/routes/connected-accounts/connected-accounts.js +8 -2
  63. package/lib/routes/connected-accounts/connected-accounts.js.map +1 -1
  64. package/lib/routes/connected-accounts/simulate/simulate.js +2 -0
  65. package/lib/routes/connected-accounts/simulate/simulate.js.map +1 -1
  66. package/lib/routes/customers/customers.d.ts +9 -9
  67. package/lib/routes/customers/customers.js +4 -0
  68. package/lib/routes/customers/customers.js.map +1 -1
  69. package/lib/routes/devices/devices.d.ts +11 -10
  70. package/lib/routes/devices/devices.js +10 -4
  71. package/lib/routes/devices/devices.js.map +1 -1
  72. package/lib/routes/devices/simulate/simulate.js +7 -0
  73. package/lib/routes/devices/simulate/simulate.js.map +1 -1
  74. package/lib/routes/devices/unmanaged/unmanaged.d.ts +8 -23
  75. package/lib/routes/devices/unmanaged/unmanaged.js +6 -2
  76. package/lib/routes/devices/unmanaged/unmanaged.js.map +1 -1
  77. package/lib/routes/events/events.d.ts +8 -7
  78. package/lib/routes/events/events.js +5 -2
  79. package/lib/routes/events/events.js.map +1 -1
  80. package/lib/routes/instant-keys/instant-keys.d.ts +4 -3
  81. package/lib/routes/instant-keys/instant-keys.js +10 -6
  82. package/lib/routes/instant-keys/instant-keys.js.map +1 -1
  83. package/lib/routes/locks/locks.d.ts +7 -46
  84. package/lib/routes/locks/locks.js +8 -2
  85. package/lib/routes/locks/locks.js.map +1 -1
  86. package/lib/routes/locks/simulate/simulate.js +3 -0
  87. package/lib/routes/locks/simulate/simulate.js.map +1 -1
  88. package/lib/routes/noise-sensors/noise-sensors.d.ts +0 -40
  89. package/lib/routes/noise-sensors/noise-sensors.js +2 -0
  90. package/lib/routes/noise-sensors/noise-sensors.js.map +1 -1
  91. package/lib/routes/noise-sensors/noise-thresholds/noise-thresholds.js +12 -6
  92. package/lib/routes/noise-sensors/noise-thresholds/noise-thresholds.js.map +1 -1
  93. package/lib/routes/noise-sensors/simulate/simulate.js +2 -0
  94. package/lib/routes/noise-sensors/simulate/simulate.js.map +1 -1
  95. package/lib/routes/phones/phones.js +10 -6
  96. package/lib/routes/phones/phones.js.map +1 -1
  97. package/lib/routes/phones/simulate/simulate.js +2 -0
  98. package/lib/routes/phones/simulate/simulate.js.map +1 -1
  99. package/lib/routes/seam-http-endpoints.d.ts +26 -26
  100. package/lib/routes/spaces/spaces.d.ts +16 -15
  101. package/lib/routes/spaces/spaces.js +19 -6
  102. package/lib/routes/spaces/spaces.js.map +1 -1
  103. package/lib/routes/thermostats/daily-programs/daily-programs.js +6 -2
  104. package/lib/routes/thermostats/daily-programs/daily-programs.js.map +1 -1
  105. package/lib/routes/thermostats/schedules/schedules.d.ts +2 -2
  106. package/lib/routes/thermostats/schedules/schedules.js +12 -6
  107. package/lib/routes/thermostats/schedules/schedules.js.map +1 -1
  108. package/lib/routes/thermostats/simulate/simulate.js +3 -0
  109. package/lib/routes/thermostats/simulate/simulate.js.map +1 -1
  110. package/lib/routes/thermostats/thermostats.d.ts +13 -53
  111. package/lib/routes/thermostats/thermostats.js +17 -2
  112. package/lib/routes/thermostats/thermostats.js.map +1 -1
  113. package/lib/routes/user-identities/unmanaged/unmanaged.d.ts +1 -1
  114. package/lib/routes/user-identities/unmanaged/unmanaged.js +8 -4
  115. package/lib/routes/user-identities/unmanaged/unmanaged.js.map +1 -1
  116. package/lib/routes/user-identities/user-identities.d.ts +13 -12
  117. package/lib/routes/user-identities/user-identities.js +29 -14
  118. package/lib/routes/user-identities/user-identities.js.map +1 -1
  119. package/lib/routes/webhooks/webhooks.js +10 -4
  120. package/lib/routes/webhooks/webhooks.js.map +1 -1
  121. package/lib/routes/workspaces/workspaces.d.ts +9 -9
  122. package/lib/routes/workspaces/workspaces.js +6 -0
  123. package/lib/routes/workspaces/workspaces.js.map +1 -1
  124. package/lib/version.d.ts +1 -1
  125. package/lib/version.js +1 -1
  126. package/package.json +3 -3
  127. package/src/lib/error-interceptor.ts +1 -1
  128. package/src/lib/request-parameters.ts +33 -0
  129. package/src/lib/resources/access-code.ts +15 -9
  130. package/src/lib/resources/acs-credential.ts +40 -0
  131. package/src/lib/resources/acs-entrance.ts +1 -1
  132. package/src/lib/resources/acs-system.ts +36 -0
  133. package/src/lib/resources/action-attempt.ts +91 -6
  134. package/src/lib/resources/device-provider.ts +1 -0
  135. package/src/lib/resources/device.ts +70 -20
  136. package/src/lib/resources/event.ts +0 -76
  137. package/src/lib/resources/unmanaged-access-code.ts +15 -9
  138. package/src/lib/resources/unmanaged-device.ts +33 -18
  139. package/src/lib/routes/access-codes/access-codes.ts +57 -41
  140. package/src/lib/routes/access-codes/simulate/simulate.ts +7 -0
  141. package/src/lib/routes/access-codes/unmanaged/unmanaged.ts +44 -10
  142. package/src/lib/routes/access-grants/access-grants.ts +43 -21
  143. package/src/lib/routes/access-grants/unmanaged/unmanaged.ts +24 -5
  144. package/src/lib/routes/access-methods/access-methods.ts +41 -11
  145. package/src/lib/routes/access-methods/unmanaged/unmanaged.ts +17 -4
  146. package/src/lib/routes/acs/access-groups/access-groups.ts +43 -12
  147. package/src/lib/routes/acs/credentials/credentials.ts +28 -7
  148. package/src/lib/routes/acs/encoders/encoders.ts +28 -5
  149. package/src/lib/routes/acs/encoders/simulate/simulate.ts +25 -0
  150. package/src/lib/routes/acs/entrances/entrances.ts +23 -4
  151. package/src/lib/routes/acs/systems/systems.ts +23 -6
  152. package/src/lib/routes/acs/users/users.ts +76 -33
  153. package/src/lib/routes/action-attempts/action-attempts.ts +8 -3
  154. package/src/lib/routes/client-sessions/client-sessions.ts +35 -9
  155. package/src/lib/routes/connect-webviews/connect-webviews.ts +15 -5
  156. package/src/lib/routes/connected-accounts/connected-accounts.ts +20 -6
  157. package/src/lib/routes/connected-accounts/simulate/simulate.ts +7 -0
  158. package/src/lib/routes/customers/customers.ts +16 -9
  159. package/src/lib/routes/devices/devices.ts +36 -11
  160. package/src/lib/routes/devices/simulate/simulate.ts +29 -0
  161. package/src/lib/routes/devices/unmanaged/unmanaged.ts +19 -22
  162. package/src/lib/routes/events/events.ts +17 -9
  163. package/src/lib/routes/instant-keys/instant-keys.ts +19 -9
  164. package/src/lib/routes/locks/locks.ts +22 -45
  165. package/src/lib/routes/locks/simulate/simulate.ts +13 -0
  166. package/src/lib/routes/noise-sensors/noise-sensors.ts +3 -40
  167. package/src/lib/routes/noise-sensors/noise-thresholds/noise-thresholds.ts +37 -6
  168. package/src/lib/routes/noise-sensors/simulate/simulate.ts +7 -0
  169. package/src/lib/routes/phones/phones.ts +13 -6
  170. package/src/lib/routes/phones/simulate/simulate.ts +7 -0
  171. package/src/lib/routes/seam-http-endpoints.ts +26 -26
  172. package/src/lib/routes/spaces/spaces.ts +61 -21
  173. package/src/lib/routes/thermostats/daily-programs/daily-programs.ts +21 -2
  174. package/src/lib/routes/thermostats/schedules/schedules.ts +35 -8
  175. package/src/lib/routes/thermostats/simulate/simulate.ts +13 -0
  176. package/src/lib/routes/thermostats/thermostats.ts +72 -55
  177. package/src/lib/routes/user-identities/unmanaged/unmanaged.ts +24 -5
  178. package/src/lib/routes/user-identities/user-identities.ts +94 -26
  179. package/src/lib/routes/webhooks/webhooks.ts +15 -4
  180. package/src/lib/routes/workspaces/workspaces.ts +20 -9
  181. package/src/lib/version.ts +1 -1
@@ -28,6 +28,7 @@ import {
28
28
  limitToSeamHttpRequestOptions,
29
29
  parseOptions,
30
30
  } from 'lib/parse-options.js'
31
+ import { assertValidRequestParameters } from 'lib/request-parameters.js'
31
32
  import type { ActionAttempt } from 'lib/resources/action-attempt.js'
32
33
  import type { Device } from 'lib/resources/device.js'
33
34
  import { SeamHttpActionAttempts } from 'lib/routes/action-attempts/index.js'
@@ -186,6 +187,12 @@ export class SeamHttpThermostats {
186
187
  parameters: ThermostatsActivateClimatePresetParameters,
187
188
  options: ThermostatsActivateClimatePresetOptions = {},
188
189
  ): ThermostatsActivateClimatePresetRequest {
190
+ assertValidRequestParameters(
191
+ parameters,
192
+ '/thermostats/activate_climate_preset',
193
+ true,
194
+ )
195
+
189
196
  return new SeamHttpRequest(this, {
190
197
  pathname: '/thermostats/activate_climate_preset',
191
198
  method: 'POST',
@@ -206,6 +213,8 @@ export class SeamHttpThermostats {
206
213
  parameters: ThermostatsCoolParameters,
207
214
  options: ThermostatsCoolOptions = {},
208
215
  ): ThermostatsCoolRequest {
216
+ assertValidRequestParameters(parameters, '/thermostats/cool', true)
217
+
209
218
  return new SeamHttpRequest(this, {
210
219
  pathname: '/thermostats/cool',
211
220
  method: 'POST',
@@ -226,6 +235,12 @@ export class SeamHttpThermostats {
226
235
  parameters: ThermostatsCreateClimatePresetParameters,
227
236
  options: ThermostatsCreateClimatePresetOptions = {},
228
237
  ): ThermostatsCreateClimatePresetRequest {
238
+ assertValidRequestParameters(
239
+ parameters,
240
+ '/thermostats/create_climate_preset',
241
+ true,
242
+ )
243
+
229
244
  return new SeamHttpRequest(this, {
230
245
  pathname: '/thermostats/create_climate_preset',
231
246
  method: 'POST',
@@ -242,10 +257,16 @@ export class SeamHttpThermostats {
242
257
  parameters: ThermostatsDeleteClimatePresetParameters,
243
258
  options: ThermostatsDeleteClimatePresetOptions = {},
244
259
  ): ThermostatsDeleteClimatePresetRequest {
260
+ assertValidRequestParameters(
261
+ parameters,
262
+ '/thermostats/delete_climate_preset',
263
+ true,
264
+ )
265
+
245
266
  return new SeamHttpRequest(this, {
246
267
  pathname: '/thermostats/delete_climate_preset',
247
- method: 'POST',
248
- body: parameters,
268
+ method: 'DELETE',
269
+ params: parameters,
249
270
  responseKey: undefined,
250
271
  options,
251
272
  })
@@ -258,6 +279,8 @@ export class SeamHttpThermostats {
258
279
  parameters: ThermostatsHeatParameters,
259
280
  options: ThermostatsHeatOptions = {},
260
281
  ): ThermostatsHeatRequest {
282
+ assertValidRequestParameters(parameters, '/thermostats/heat', true)
283
+
261
284
  return new SeamHttpRequest(this, {
262
285
  pathname: '/thermostats/heat',
263
286
  method: 'POST',
@@ -278,6 +301,8 @@ export class SeamHttpThermostats {
278
301
  parameters: ThermostatsHeatCoolParameters,
279
302
  options: ThermostatsHeatCoolOptions = {},
280
303
  ): ThermostatsHeatCoolRequest {
304
+ assertValidRequestParameters(parameters, '/thermostats/heat_cool', true)
305
+
281
306
  return new SeamHttpRequest(this, {
282
307
  pathname: '/thermostats/heat_cool',
283
308
  method: 'POST',
@@ -298,6 +323,8 @@ export class SeamHttpThermostats {
298
323
  parameters?: ThermostatsListParameters,
299
324
  options: ThermostatsListOptions = {},
300
325
  ): ThermostatsListRequest {
326
+ assertValidRequestParameters(parameters, '/thermostats/list', false)
327
+
301
328
  return new SeamHttpRequest(this, {
302
329
  pathname: '/thermostats/list',
303
330
  method: 'POST',
@@ -314,6 +341,8 @@ export class SeamHttpThermostats {
314
341
  parameters: ThermostatsOffParameters,
315
342
  options: ThermostatsOffOptions = {},
316
343
  ): ThermostatsOffRequest {
344
+ assertValidRequestParameters(parameters, '/thermostats/off', true)
345
+
317
346
  return new SeamHttpRequest(this, {
318
347
  pathname: '/thermostats/off',
319
348
  method: 'POST',
@@ -334,6 +363,12 @@ export class SeamHttpThermostats {
334
363
  parameters: ThermostatsSetFallbackClimatePresetParameters,
335
364
  options: ThermostatsSetFallbackClimatePresetOptions = {},
336
365
  ): ThermostatsSetFallbackClimatePresetRequest {
366
+ assertValidRequestParameters(
367
+ parameters,
368
+ '/thermostats/set_fallback_climate_preset',
369
+ true,
370
+ )
371
+
337
372
  return new SeamHttpRequest(this, {
338
373
  pathname: '/thermostats/set_fallback_climate_preset',
339
374
  method: 'POST',
@@ -350,6 +385,8 @@ export class SeamHttpThermostats {
350
385
  parameters: ThermostatsSetFanModeParameters,
351
386
  options: ThermostatsSetFanModeOptions = {},
352
387
  ): ThermostatsSetFanModeRequest {
388
+ assertValidRequestParameters(parameters, '/thermostats/set_fan_mode', true)
389
+
353
390
  return new SeamHttpRequest(this, {
354
391
  pathname: '/thermostats/set_fan_mode',
355
392
  method: 'POST',
@@ -370,6 +407,8 @@ export class SeamHttpThermostats {
370
407
  parameters: ThermostatsSetHvacModeParameters,
371
408
  options: ThermostatsSetHvacModeOptions = {},
372
409
  ): ThermostatsSetHvacModeRequest {
410
+ assertValidRequestParameters(parameters, '/thermostats/set_hvac_mode', true)
411
+
373
412
  return new SeamHttpRequest(this, {
374
413
  pathname: '/thermostats/set_hvac_mode',
375
414
  method: 'POST',
@@ -390,6 +429,12 @@ export class SeamHttpThermostats {
390
429
  parameters: ThermostatsSetTemperatureThresholdParameters,
391
430
  options: ThermostatsSetTemperatureThresholdOptions = {},
392
431
  ): ThermostatsSetTemperatureThresholdRequest {
432
+ assertValidRequestParameters(
433
+ parameters,
434
+ '/thermostats/set_temperature_threshold',
435
+ true,
436
+ )
437
+
393
438
  return new SeamHttpRequest(this, {
394
439
  pathname: '/thermostats/set_temperature_threshold',
395
440
  method: 'PATCH',
@@ -406,6 +451,12 @@ export class SeamHttpThermostats {
406
451
  parameters: ThermostatsUpdateClimatePresetParameters,
407
452
  options: ThermostatsUpdateClimatePresetOptions = {},
408
453
  ): ThermostatsUpdateClimatePresetRequest {
454
+ assertValidRequestParameters(
455
+ parameters,
456
+ '/thermostats/update_climate_preset',
457
+ true,
458
+ )
459
+
409
460
  return new SeamHttpRequest(this, {
410
461
  pathname: '/thermostats/update_climate_preset',
411
462
  method: 'PATCH',
@@ -422,6 +473,12 @@ export class SeamHttpThermostats {
422
473
  parameters: ThermostatsUpdateWeeklyProgramParameters,
423
474
  options: ThermostatsUpdateWeeklyProgramOptions = {},
424
475
  ): ThermostatsUpdateWeeklyProgramRequest {
476
+ assertValidRequestParameters(
477
+ parameters,
478
+ '/thermostats/update_weekly_program',
479
+ true,
480
+ )
481
+
425
482
  return new SeamHttpRequest(this, {
426
483
  pathname: '/thermostats/update_weekly_program',
427
484
  method: 'POST',
@@ -562,7 +619,7 @@ export type ThermostatsCreateClimatePresetParameters = {
562
619
  /**
563
620
  * User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
564
621
  */
565
- name?: string | undefined
622
+ name?: string | null | undefined
566
623
  }
567
624
 
568
625
  /**
@@ -680,26 +737,10 @@ export type ThermostatsListParameters = {
680
737
  * ID of the connected account for which you want to list devices.
681
738
  */
682
739
  connected_account_id?: string | undefined
683
- /**
684
- * Array of IDs of the connected accounts for which you want to list devices.
685
- */
686
- connected_account_ids?: Array<string> | undefined
687
- /**
688
- * Timestamp by which to limit returned devices. Returns devices created before this timestamp.
689
- */
690
- created_before?: string | undefined
691
- /**
692
- * 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.
693
- */
694
- custom_metadata_has?: Record<string, unknown> | undefined
695
740
  /**
696
741
  * Customer key for which you want to list devices.
697
742
  */
698
743
  customer_key?: string | undefined
699
- /**
700
- * Array of device IDs for which you want to list devices.
701
- */
702
- device_ids?: Array<string> | undefined
703
744
  /**
704
745
  * Device type by which you want to filter thermostat devices.
705
746
  */
@@ -724,10 +765,6 @@ export type ThermostatsListParameters = {
724
765
  | 'smartthings_thermostat'
725
766
  >
726
767
  | undefined
727
- /**
728
- * Numerical limit on the number of devices to return.
729
- */
730
- limit?: number | undefined
731
768
  /**
732
769
  * Manufacturer by which you want to filter thermostat devices.
733
770
  */
@@ -739,26 +776,6 @@ export type ThermostatsListParameters = {
739
776
  | 'smartthings'
740
777
  | 'tado'
741
778
  | undefined
742
- /**
743
- * Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.
744
- */
745
- page_cursor?: string | undefined
746
- /**
747
- * 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`.
748
- */
749
- search?: string | undefined
750
- /**
751
- * ID of the space for which you want to list devices.
752
- */
753
- space_id?: string | undefined
754
- /**
755
- * @deprecated Use `space_id`.
756
- */
757
- unstable_location_id?: string | undefined
758
- /**
759
- * Your own internal user ID for the user for which you want to list devices.
760
- */
761
- user_identifier_key?: string | undefined
762
779
  }
763
780
 
764
781
  /**
@@ -901,19 +918,19 @@ export type ThermostatsSetTemperatureThresholdParameters = {
901
918
  /**
902
919
  * Lower temperature limit in in °C. Seam alerts you if the reported temperature is lower than this value. You can specify either `lower_limit` but not both.
903
920
  */
904
- lower_limit_celsius?: number | undefined
921
+ lower_limit_celsius?: number | null | undefined
905
922
  /**
906
923
  * Lower temperature limit in in °F. Seam alerts you if the reported temperature is lower than this value. You can specify either `lower_limit` but not both.
907
924
  */
908
- lower_limit_fahrenheit?: number | undefined
925
+ lower_limit_fahrenheit?: number | null | undefined
909
926
  /**
910
927
  * Upper temperature limit in in °C. Seam alerts you if the reported temperature is higher than this value. You can specify either `upper_limit` but not both.
911
928
  */
912
- upper_limit_celsius?: number | undefined
929
+ upper_limit_celsius?: number | null | undefined
913
930
  /**
914
931
  * Upper temperature limit in in °C. Seam alerts you if the reported temperature is higher than this value. You can specify either `upper_limit` but not both.
915
932
  */
916
- upper_limit_fahrenheit?: number | undefined
933
+ upper_limit_fahrenheit?: number | null | undefined
917
934
  }
918
935
 
919
936
  /**
@@ -995,7 +1012,7 @@ export type ThermostatsUpdateClimatePresetParameters = {
995
1012
  /**
996
1013
  * User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
997
1014
  */
998
- name?: string | undefined
1015
+ name?: string | null | undefined
999
1016
  }
1000
1017
 
1001
1018
  /**
@@ -1019,31 +1036,31 @@ export type ThermostatsUpdateWeeklyProgramParameters = {
1019
1036
  /**
1020
1037
  * ID of the thermostat daily program to run on Fridays.
1021
1038
  */
1022
- friday_program_id?: string | undefined
1039
+ friday_program_id?: string | null | undefined
1023
1040
  /**
1024
1041
  * ID of the thermostat daily program to run on Mondays.
1025
1042
  */
1026
- monday_program_id?: string | undefined
1043
+ monday_program_id?: string | null | undefined
1027
1044
  /**
1028
1045
  * ID of the thermostat daily program to run on Saturdays.
1029
1046
  */
1030
- saturday_program_id?: string | undefined
1047
+ saturday_program_id?: string | null | undefined
1031
1048
  /**
1032
1049
  * ID of the thermostat daily program to run on Sundays.
1033
1050
  */
1034
- sunday_program_id?: string | undefined
1051
+ sunday_program_id?: string | null | undefined
1035
1052
  /**
1036
1053
  * ID of the thermostat daily program to run on Thursdays.
1037
1054
  */
1038
- thursday_program_id?: string | undefined
1055
+ thursday_program_id?: string | null | undefined
1039
1056
  /**
1040
1057
  * ID of the thermostat daily program to run on Tuesdays.
1041
1058
  */
1042
- tuesday_program_id?: string | undefined
1059
+ tuesday_program_id?: string | null | undefined
1043
1060
  /**
1044
1061
  * ID of the thermostat daily program to run on Wednesdays.
1045
1062
  */
1046
- wednesday_program_id?: string | undefined
1063
+ wednesday_program_id?: string | null | undefined
1047
1064
  }
1048
1065
 
1049
1066
  /**
@@ -28,6 +28,7 @@ import {
28
28
  limitToSeamHttpRequestOptions,
29
29
  parseOptions,
30
30
  } from 'lib/parse-options.js'
31
+ import { assertValidRequestParameters } from 'lib/request-parameters.js'
31
32
  import type { UnmanagedUserIdentity } from 'lib/resources/unmanaged-user-identity.js'
32
33
  import { SeamHttpClientSessions } from 'lib/routes/client-sessions/index.js'
33
34
  import { SeamHttpRequest } from 'lib/seam-http-request.js'
@@ -168,10 +169,16 @@ export class SeamHttpUserIdentitiesUnmanaged {
168
169
  parameters: UserIdentitiesUnmanagedGetParameters,
169
170
  options: UserIdentitiesUnmanagedGetOptions = {},
170
171
  ): UserIdentitiesUnmanagedGetRequest {
172
+ assertValidRequestParameters(
173
+ parameters,
174
+ '/user_identities/unmanaged/get',
175
+ true,
176
+ )
177
+
171
178
  return new SeamHttpRequest(this, {
172
179
  pathname: '/user_identities/unmanaged/get',
173
- method: 'POST',
174
- body: parameters,
180
+ method: 'GET',
181
+ params: parameters,
175
182
  responseKey: 'user_identity',
176
183
  options,
177
184
  })
@@ -184,10 +191,16 @@ export class SeamHttpUserIdentitiesUnmanaged {
184
191
  parameters?: UserIdentitiesUnmanagedListParameters,
185
192
  options: UserIdentitiesUnmanagedListOptions = {},
186
193
  ): UserIdentitiesUnmanagedListRequest {
194
+ assertValidRequestParameters(
195
+ parameters,
196
+ '/user_identities/unmanaged/list',
197
+ false,
198
+ )
199
+
187
200
  return new SeamHttpRequest(this, {
188
201
  pathname: '/user_identities/unmanaged/list',
189
- method: 'POST',
190
- body: parameters,
202
+ method: 'GET',
203
+ params: parameters,
191
204
  responseKey: 'user_identities',
192
205
  options,
193
206
  })
@@ -202,6 +215,12 @@ export class SeamHttpUserIdentitiesUnmanaged {
202
215
  parameters: UserIdentitiesUnmanagedUpdateParameters,
203
216
  options: UserIdentitiesUnmanagedUpdateOptions = {},
204
217
  ): UserIdentitiesUnmanagedUpdateRequest {
218
+ assertValidRequestParameters(
219
+ parameters,
220
+ '/user_identities/unmanaged/update',
221
+ true,
222
+ )
223
+
205
224
  return new SeamHttpRequest(this, {
206
225
  pathname: '/user_identities/unmanaged/update',
207
226
  method: 'PATCH',
@@ -245,7 +264,7 @@ export type UserIdentitiesUnmanagedListParameters = {
245
264
  /**
246
265
  * Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.
247
266
  */
248
- page_cursor?: string | undefined
267
+ page_cursor?: string | null | undefined
249
268
  /**
250
269
  * String for which to search. Filters returned unmanaged user identities to include all records that satisfy a partial match using `full_name`, `phone_number`, `email_address`, `user_identity_id` or `acs_system_id`.
251
270
  */
@@ -28,6 +28,10 @@ import {
28
28
  limitToSeamHttpRequestOptions,
29
29
  parseOptions,
30
30
  } from 'lib/parse-options.js'
31
+ import {
32
+ assertValidRequestParameters,
33
+ type RequireAtLeastOne,
34
+ } from 'lib/request-parameters.js'
31
35
  import type { AcsEntrance } from 'lib/resources/acs-entrance.js'
32
36
  import type { AcsSystem } from 'lib/resources/acs-system.js'
33
37
  import type { AcsUser } from 'lib/resources/acs-user.js'
@@ -183,6 +187,12 @@ export class SeamHttpUserIdentities {
183
187
  parameters: UserIdentitiesAddAcsUserParameters,
184
188
  options: UserIdentitiesAddAcsUserOptions = {},
185
189
  ): UserIdentitiesAddAcsUserRequest {
190
+ assertValidRequestParameters(
191
+ parameters,
192
+ '/user_identities/add_acs_user',
193
+ true,
194
+ )
195
+
186
196
  return new SeamHttpRequest(this, {
187
197
  pathname: '/user_identities/add_acs_user',
188
198
  method: 'PUT',
@@ -199,6 +209,8 @@ export class SeamHttpUserIdentities {
199
209
  parameters?: UserIdentitiesCreateParameters,
200
210
  options: UserIdentitiesCreateOptions = {},
201
211
  ): UserIdentitiesCreateRequest {
212
+ assertValidRequestParameters(parameters, '/user_identities/create', false)
213
+
202
214
  return new SeamHttpRequest(this, {
203
215
  pathname: '/user_identities/create',
204
216
  method: 'POST',
@@ -215,10 +227,12 @@ export class SeamHttpUserIdentities {
215
227
  parameters: UserIdentitiesDeleteParameters,
216
228
  options: UserIdentitiesDeleteOptions = {},
217
229
  ): UserIdentitiesDeleteRequest {
230
+ assertValidRequestParameters(parameters, '/user_identities/delete', true)
231
+
218
232
  return new SeamHttpRequest(this, {
219
233
  pathname: '/user_identities/delete',
220
- method: 'POST',
221
- body: parameters,
234
+ method: 'DELETE',
235
+ params: parameters,
222
236
  responseKey: undefined,
223
237
  options,
224
238
  })
@@ -231,6 +245,12 @@ export class SeamHttpUserIdentities {
231
245
  parameters: UserIdentitiesGenerateInstantKeyParameters,
232
246
  options: UserIdentitiesGenerateInstantKeyOptions = {},
233
247
  ): UserIdentitiesGenerateInstantKeyRequest {
248
+ assertValidRequestParameters(
249
+ parameters,
250
+ '/user_identities/generate_instant_key',
251
+ true,
252
+ )
253
+
234
254
  return new SeamHttpRequest(this, {
235
255
  pathname: '/user_identities/generate_instant_key',
236
256
  method: 'POST',
@@ -244,9 +264,11 @@ export class SeamHttpUserIdentities {
244
264
  * Returns a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).
245
265
  */
246
266
  get(
247
- parameters?: UserIdentitiesGetParameters,
267
+ parameters: UserIdentitiesGetParameters,
248
268
  options: UserIdentitiesGetOptions = {},
249
269
  ): UserIdentitiesGetRequest {
270
+ assertValidRequestParameters(parameters, '/user_identities/get', true)
271
+
250
272
  return new SeamHttpRequest(this, {
251
273
  pathname: '/user_identities/get',
252
274
  method: 'GET',
@@ -263,6 +285,12 @@ export class SeamHttpUserIdentities {
263
285
  parameters: UserIdentitiesGrantAccessToDeviceParameters,
264
286
  options: UserIdentitiesGrantAccessToDeviceOptions = {},
265
287
  ): UserIdentitiesGrantAccessToDeviceRequest {
288
+ assertValidRequestParameters(
289
+ parameters,
290
+ '/user_identities/grant_access_to_device',
291
+ true,
292
+ )
293
+
266
294
  return new SeamHttpRequest(this, {
267
295
  pathname: '/user_identities/grant_access_to_device',
268
296
  method: 'PUT',
@@ -279,6 +307,8 @@ export class SeamHttpUserIdentities {
279
307
  parameters?: UserIdentitiesListParameters,
280
308
  options: UserIdentitiesListOptions = {},
281
309
  ): UserIdentitiesListRequest {
310
+ assertValidRequestParameters(parameters, '/user_identities/list', false)
311
+
282
312
  return new SeamHttpRequest(this, {
283
313
  pathname: '/user_identities/list',
284
314
  method: 'POST',
@@ -295,10 +325,16 @@ export class SeamHttpUserIdentities {
295
325
  parameters: UserIdentitiesListAccessibleDevicesParameters,
296
326
  options: UserIdentitiesListAccessibleDevicesOptions = {},
297
327
  ): UserIdentitiesListAccessibleDevicesRequest {
328
+ assertValidRequestParameters(
329
+ parameters,
330
+ '/user_identities/list_accessible_devices',
331
+ true,
332
+ )
333
+
298
334
  return new SeamHttpRequest(this, {
299
335
  pathname: '/user_identities/list_accessible_devices',
300
- method: 'POST',
301
- body: parameters,
336
+ method: 'GET',
337
+ params: parameters,
302
338
  responseKey: 'devices',
303
339
  options,
304
340
  })
@@ -311,10 +347,16 @@ export class SeamHttpUserIdentities {
311
347
  parameters: UserIdentitiesListAccessibleEntrancesParameters,
312
348
  options: UserIdentitiesListAccessibleEntrancesOptions = {},
313
349
  ): UserIdentitiesListAccessibleEntrancesRequest {
350
+ assertValidRequestParameters(
351
+ parameters,
352
+ '/user_identities/list_accessible_entrances',
353
+ true,
354
+ )
355
+
314
356
  return new SeamHttpRequest(this, {
315
357
  pathname: '/user_identities/list_accessible_entrances',
316
- method: 'POST',
317
- body: parameters,
358
+ method: 'GET',
359
+ params: parameters,
318
360
  responseKey: 'acs_entrances',
319
361
  options,
320
362
  })
@@ -327,10 +369,16 @@ export class SeamHttpUserIdentities {
327
369
  parameters: UserIdentitiesListAcsSystemsParameters,
328
370
  options: UserIdentitiesListAcsSystemsOptions = {},
329
371
  ): UserIdentitiesListAcsSystemsRequest {
372
+ assertValidRequestParameters(
373
+ parameters,
374
+ '/user_identities/list_acs_systems',
375
+ true,
376
+ )
377
+
330
378
  return new SeamHttpRequest(this, {
331
379
  pathname: '/user_identities/list_acs_systems',
332
- method: 'POST',
333
- body: parameters,
380
+ method: 'GET',
381
+ params: parameters,
334
382
  responseKey: 'acs_systems',
335
383
  options,
336
384
  })
@@ -343,10 +391,16 @@ export class SeamHttpUserIdentities {
343
391
  parameters: UserIdentitiesListAcsUsersParameters,
344
392
  options: UserIdentitiesListAcsUsersOptions = {},
345
393
  ): UserIdentitiesListAcsUsersRequest {
394
+ assertValidRequestParameters(
395
+ parameters,
396
+ '/user_identities/list_acs_users',
397
+ true,
398
+ )
399
+
346
400
  return new SeamHttpRequest(this, {
347
401
  pathname: '/user_identities/list_acs_users',
348
- method: 'POST',
349
- body: parameters,
402
+ method: 'GET',
403
+ params: parameters,
350
404
  responseKey: 'acs_users',
351
405
  options,
352
406
  })
@@ -359,10 +413,16 @@ export class SeamHttpUserIdentities {
359
413
  parameters: UserIdentitiesRemoveAcsUserParameters,
360
414
  options: UserIdentitiesRemoveAcsUserOptions = {},
361
415
  ): UserIdentitiesRemoveAcsUserRequest {
416
+ assertValidRequestParameters(
417
+ parameters,
418
+ '/user_identities/remove_acs_user',
419
+ true,
420
+ )
421
+
362
422
  return new SeamHttpRequest(this, {
363
423
  pathname: '/user_identities/remove_acs_user',
364
- method: 'POST',
365
- body: parameters,
424
+ method: 'DELETE',
425
+ params: parameters,
366
426
  responseKey: undefined,
367
427
  options,
368
428
  })
@@ -375,10 +435,16 @@ export class SeamHttpUserIdentities {
375
435
  parameters: UserIdentitiesRevokeAccessToDeviceParameters,
376
436
  options: UserIdentitiesRevokeAccessToDeviceOptions = {},
377
437
  ): UserIdentitiesRevokeAccessToDeviceRequest {
438
+ assertValidRequestParameters(
439
+ parameters,
440
+ '/user_identities/revoke_access_to_device',
441
+ true,
442
+ )
443
+
378
444
  return new SeamHttpRequest(this, {
379
445
  pathname: '/user_identities/revoke_access_to_device',
380
- method: 'POST',
381
- body: parameters,
446
+ method: 'DELETE',
447
+ params: parameters,
382
448
  responseKey: undefined,
383
449
  options,
384
450
  })
@@ -391,6 +457,8 @@ export class SeamHttpUserIdentities {
391
457
  parameters: UserIdentitiesUpdateParameters,
392
458
  options: UserIdentitiesUpdateOptions = {},
393
459
  ): UserIdentitiesUpdateRequest {
460
+ assertValidRequestParameters(parameters, '/user_identities/update', true)
461
+
394
462
  return new SeamHttpRequest(this, {
395
463
  pathname: '/user_identities/update',
396
464
  method: 'PATCH',
@@ -434,19 +502,19 @@ export type UserIdentitiesCreateParameters = {
434
502
  /**
435
503
  * Unique email address for the new user identity.
436
504
  */
437
- email_address?: string | undefined
505
+ email_address?: string | null | undefined
438
506
  /**
439
507
  * Full name of the user associated with the new user identity.
440
508
  */
441
- full_name?: string | undefined
509
+ full_name?: string | null | undefined
442
510
  /**
443
511
  * Unique phone number for the new user identity in E.164 format (for example, +15555550100).
444
512
  */
445
- phone_number?: string | undefined
513
+ phone_number?: string | null | undefined
446
514
  /**
447
515
  * Unique key for the new user identity.
448
516
  */
449
- user_identity_key?: string | undefined
517
+ user_identity_key?: string | null | undefined
450
518
  }
451
519
 
452
520
  /**
@@ -503,14 +571,14 @@ export type UserIdentitiesGenerateInstantKeyRequest = SeamHttpRequest<
503
571
 
504
572
  export interface UserIdentitiesGenerateInstantKeyOptions {}
505
573
 
506
- export type UserIdentitiesGetParameters = {
574
+ export type UserIdentitiesGetParameters = RequireAtLeastOne<{
507
575
  /**
508
576
  * ID of the user identity that you want to get.
509
577
  */
510
578
  user_identity_id?: string | undefined
511
579
 
512
580
  user_identity_key?: string | undefined
513
- }
581
+ }>
514
582
 
515
583
  /**
516
584
  * @deprecated Use UserIdentitiesGetRequest instead.
@@ -564,7 +632,7 @@ export type UserIdentitiesListParameters = {
564
632
  /**
565
633
  * Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.
566
634
  */
567
- page_cursor?: string | undefined
635
+ page_cursor?: string | null | undefined
568
636
  /**
569
637
  * String for which to search. Filters returned user identities to include all records that satisfy a partial match using `full_name`, `phone_number`, `email_address` or `user_identity_id`.
570
638
  */
@@ -723,15 +791,15 @@ export type UserIdentitiesUpdateParameters = {
723
791
  /**
724
792
  * Unique email address for the user identity.
725
793
  */
726
- email_address?: string | undefined
794
+ email_address?: string | null | undefined
727
795
  /**
728
796
  * Full name of the user associated with the user identity.
729
797
  */
730
- full_name?: string | undefined
798
+ full_name?: string | null | undefined
731
799
  /**
732
800
  * Unique phone number for the user identity.
733
801
  */
734
- phone_number?: string | undefined
802
+ phone_number?: string | null | undefined
735
803
  /**
736
804
  * ID of the user identity that you want to update.
737
805
  */
@@ -740,7 +808,7 @@ export type UserIdentitiesUpdateParameters = {
740
808
  /**
741
809
  * Unique key for the user identity.
742
810
  */
743
- user_identity_key?: string | undefined
811
+ user_identity_key?: string | null | undefined
744
812
  }
745
813
 
746
814
  /**