@seamapi/http 2.4.3 → 2.5.1

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 (149) hide show
  1. package/lib/request-parameters.d.ts +1 -1
  2. package/lib/request-parameters.js +7 -2
  3. package/lib/request-parameters.js.map +1 -1
  4. package/lib/routes/access-codes/access-codes.d.ts +1 -1
  5. package/lib/routes/access-codes/access-codes.js +30 -11
  6. package/lib/routes/access-codes/access-codes.js.map +1 -1
  7. package/lib/routes/access-codes/simulate/simulate.js +3 -2
  8. package/lib/routes/access-codes/simulate/simulate.js.map +1 -1
  9. package/lib/routes/access-codes/unmanaged/unmanaged.d.ts +1 -1
  10. package/lib/routes/access-codes/unmanaged/unmanaged.js +15 -6
  11. package/lib/routes/access-codes/unmanaged/unmanaged.js.map +1 -1
  12. package/lib/routes/access-grants/access-grants.d.ts +1 -1
  13. package/lib/routes/access-grants/access-grants.js +21 -8
  14. package/lib/routes/access-grants/access-grants.js.map +1 -1
  15. package/lib/routes/access-grants/unmanaged/unmanaged.js +9 -4
  16. package/lib/routes/access-grants/unmanaged/unmanaged.js.map +1 -1
  17. package/lib/routes/access-methods/access-methods.d.ts +1 -1
  18. package/lib/routes/access-methods/access-methods.js +21 -8
  19. package/lib/routes/access-methods/access-methods.js.map +1 -1
  20. package/lib/routes/access-methods/unmanaged/unmanaged.js +6 -3
  21. package/lib/routes/access-methods/unmanaged/unmanaged.js.map +1 -1
  22. package/lib/routes/acs/access-groups/access-groups.js +21 -8
  23. package/lib/routes/acs/access-groups/access-groups.js.map +1 -1
  24. package/lib/routes/acs/credentials/credentials.js +24 -9
  25. package/lib/routes/acs/credentials/credentials.js.map +1 -1
  26. package/lib/routes/acs/encoders/encoders.js +15 -6
  27. package/lib/routes/acs/encoders/encoders.js.map +1 -1
  28. package/lib/routes/acs/encoders/simulate/simulate.js +12 -5
  29. package/lib/routes/acs/encoders/simulate/simulate.js.map +1 -1
  30. package/lib/routes/acs/entrances/entrances.js +15 -6
  31. package/lib/routes/acs/entrances/entrances.js.map +1 -1
  32. package/lib/routes/acs/systems/systems.js +12 -5
  33. package/lib/routes/acs/systems/systems.js.map +1 -1
  34. package/lib/routes/acs/users/users.d.ts +1 -1
  35. package/lib/routes/acs/users/users.js +33 -12
  36. package/lib/routes/acs/users/users.js.map +1 -1
  37. package/lib/routes/action-attempts/action-attempts.js +6 -3
  38. package/lib/routes/action-attempts/action-attempts.js.map +1 -1
  39. package/lib/routes/client-sessions/client-sessions.d.ts +1 -1
  40. package/lib/routes/client-sessions/client-sessions.js +21 -8
  41. package/lib/routes/client-sessions/client-sessions.js.map +1 -1
  42. package/lib/routes/connect-webviews/connect-webviews.js +12 -5
  43. package/lib/routes/connect-webviews/connect-webviews.js.map +1 -1
  44. package/lib/routes/connected-accounts/connected-accounts.d.ts +1 -1
  45. package/lib/routes/connected-accounts/connected-accounts.js +15 -6
  46. package/lib/routes/connected-accounts/connected-accounts.js.map +1 -1
  47. package/lib/routes/connected-accounts/simulate/simulate.js +3 -2
  48. package/lib/routes/connected-accounts/simulate/simulate.js.map +1 -1
  49. package/lib/routes/customers/customers.js +9 -4
  50. package/lib/routes/customers/customers.js.map +1 -1
  51. package/lib/routes/devices/devices.d.ts +1 -1
  52. package/lib/routes/devices/devices.js +15 -6
  53. package/lib/routes/devices/devices.js.map +1 -1
  54. package/lib/routes/devices/simulate/simulate.js +18 -7
  55. package/lib/routes/devices/simulate/simulate.js.map +1 -1
  56. package/lib/routes/devices/unmanaged/unmanaged.d.ts +1 -1
  57. package/lib/routes/devices/unmanaged/unmanaged.js +9 -4
  58. package/lib/routes/devices/unmanaged/unmanaged.js.map +1 -1
  59. package/lib/routes/events/events.d.ts +1 -1
  60. package/lib/routes/events/events.js +6 -3
  61. package/lib/routes/events/events.js.map +1 -1
  62. package/lib/routes/instant-keys/instant-keys.d.ts +1 -1
  63. package/lib/routes/instant-keys/instant-keys.js +9 -4
  64. package/lib/routes/instant-keys/instant-keys.js.map +1 -1
  65. package/lib/routes/locks/locks.d.ts +1 -1
  66. package/lib/routes/locks/locks.js +15 -6
  67. package/lib/routes/locks/locks.js.map +1 -1
  68. package/lib/routes/locks/simulate/simulate.js +6 -3
  69. package/lib/routes/locks/simulate/simulate.js.map +1 -1
  70. package/lib/routes/noise-sensors/noise-sensors.js +3 -2
  71. package/lib/routes/noise-sensors/noise-sensors.js.map +1 -1
  72. package/lib/routes/noise-sensors/noise-thresholds/noise-thresholds.js +15 -6
  73. package/lib/routes/noise-sensors/noise-thresholds/noise-thresholds.js.map +1 -1
  74. package/lib/routes/noise-sensors/simulate/simulate.js +3 -2
  75. package/lib/routes/noise-sensors/simulate/simulate.js.map +1 -1
  76. package/lib/routes/phones/phones.js +9 -4
  77. package/lib/routes/phones/phones.js.map +1 -1
  78. package/lib/routes/phones/simulate/simulate.js +3 -2
  79. package/lib/routes/phones/simulate/simulate.js.map +1 -1
  80. package/lib/routes/spaces/spaces.d.ts +1 -1
  81. package/lib/routes/spaces/spaces.js +36 -13
  82. package/lib/routes/spaces/spaces.js.map +1 -1
  83. package/lib/routes/thermostats/daily-programs/daily-programs.js +13 -4
  84. package/lib/routes/thermostats/daily-programs/daily-programs.js.map +1 -1
  85. package/lib/routes/thermostats/schedules/schedules.js +20 -6
  86. package/lib/routes/thermostats/schedules/schedules.js.map +1 -1
  87. package/lib/routes/thermostats/simulate/simulate.js +6 -3
  88. package/lib/routes/thermostats/simulate/simulate.js.map +1 -1
  89. package/lib/routes/thermostats/thermostats.js +42 -15
  90. package/lib/routes/thermostats/thermostats.js.map +1 -1
  91. package/lib/routes/user-identities/unmanaged/unmanaged.js +9 -4
  92. package/lib/routes/user-identities/unmanaged/unmanaged.js.map +1 -1
  93. package/lib/routes/user-identities/user-identities.d.ts +1 -1
  94. package/lib/routes/user-identities/user-identities.js +42 -15
  95. package/lib/routes/user-identities/user-identities.js.map +1 -1
  96. package/lib/routes/webhooks/webhooks.js +15 -6
  97. package/lib/routes/webhooks/webhooks.js.map +1 -1
  98. package/lib/routes/workspaces/workspaces.js +15 -6
  99. package/lib/routes/workspaces/workspaces.js.map +1 -1
  100. package/lib/seam-http-request.d.ts +3 -0
  101. package/lib/seam-http-request.js +2 -0
  102. package/lib/seam-http-request.js.map +1 -1
  103. package/lib/version.d.ts +1 -1
  104. package/lib/version.js +1 -1
  105. package/package.json +1 -1
  106. package/src/lib/request-parameters.ts +12 -1
  107. package/src/lib/routes/access-codes/access-codes.ts +31 -44
  108. package/src/lib/routes/access-codes/simulate/simulate.ts +3 -7
  109. package/src/lib/routes/access-codes/unmanaged/unmanaged.ts +16 -34
  110. package/src/lib/routes/access-grants/access-grants.ts +22 -22
  111. package/src/lib/routes/access-grants/unmanaged/unmanaged.ts +9 -19
  112. package/src/lib/routes/access-methods/access-methods.ts +22 -30
  113. package/src/lib/routes/access-methods/unmanaged/unmanaged.ts +6 -13
  114. package/src/lib/routes/acs/access-groups/access-groups.ts +21 -31
  115. package/src/lib/routes/acs/credentials/credentials.ts +24 -21
  116. package/src/lib/routes/acs/encoders/encoders.ts +15 -23
  117. package/src/lib/routes/acs/encoders/simulate/simulate.ts +12 -25
  118. package/src/lib/routes/acs/entrances/entrances.ts +15 -19
  119. package/src/lib/routes/acs/systems/systems.ts +12 -17
  120. package/src/lib/routes/acs/users/users.ts +34 -42
  121. package/src/lib/routes/action-attempts/action-attempts.ts +6 -5
  122. package/src/lib/routes/client-sessions/client-sessions.ts +22 -26
  123. package/src/lib/routes/connect-webviews/connect-webviews.ts +12 -9
  124. package/src/lib/routes/connected-accounts/connected-accounts.ts +16 -14
  125. package/src/lib/routes/connected-accounts/simulate/simulate.ts +3 -7
  126. package/src/lib/routes/customers/customers.ts +9 -7
  127. package/src/lib/routes/devices/devices.ts +16 -22
  128. package/src/lib/routes/devices/simulate/simulate.ts +18 -29
  129. package/src/lib/routes/devices/unmanaged/unmanaged.ts +10 -10
  130. package/src/lib/routes/events/events.ts +7 -8
  131. package/src/lib/routes/instant-keys/instant-keys.ts +10 -10
  132. package/src/lib/routes/locks/locks.ts +16 -14
  133. package/src/lib/routes/locks/simulate/simulate.ts +6 -13
  134. package/src/lib/routes/noise-sensors/noise-sensors.ts +3 -3
  135. package/src/lib/routes/noise-sensors/noise-thresholds/noise-thresholds.ts +15 -31
  136. package/src/lib/routes/noise-sensors/simulate/simulate.ts +3 -7
  137. package/src/lib/routes/phones/phones.ts +9 -7
  138. package/src/lib/routes/phones/simulate/simulate.ts +3 -7
  139. package/src/lib/routes/spaces/spaces.ts +37 -40
  140. package/src/lib/routes/thermostats/daily-programs/daily-programs.ts +13 -19
  141. package/src/lib/routes/thermostats/schedules/schedules.ts +20 -27
  142. package/src/lib/routes/thermostats/simulate/simulate.ts +6 -13
  143. package/src/lib/routes/thermostats/thermostats.ts +42 -57
  144. package/src/lib/routes/user-identities/unmanaged/unmanaged.ts +9 -19
  145. package/src/lib/routes/user-identities/user-identities.ts +43 -68
  146. package/src/lib/routes/webhooks/webhooks.ts +15 -11
  147. package/src/lib/routes/workspaces/workspaces.ts +15 -11
  148. package/src/lib/seam-http-request.ts +11 -0
  149. package/src/lib/version.ts +1 -1
@@ -28,7 +28,6 @@ import {
28
28
  limitToSeamHttpRequestOptions,
29
29
  parseOptions,
30
30
  } from 'lib/parse-options.js'
31
- import { assertValidRequestParameters } from 'lib/request-parameters.js'
32
31
  import type { Phone } from 'lib/resources/phone.js'
33
32
  import { SeamHttpClientSessions } from 'lib/routes/client-sessions/index.js'
34
33
  import { SeamHttpRequest } from 'lib/seam-http-request.js'
@@ -172,12 +171,13 @@ export class SeamHttpPhones {
172
171
  parameters: PhonesDeactivateParameters,
173
172
  options: PhonesDeactivateOptions = {},
174
173
  ): PhonesDeactivateRequest {
175
- assertValidRequestParameters(parameters, '/phones/deactivate', true)
176
-
177
174
  return new SeamHttpRequest(this, {
178
175
  pathname: '/phones/deactivate',
179
176
  method: 'DELETE',
180
177
  params: parameters,
178
+ parameters,
179
+ hasRequiredParameters: true,
180
+ requiredParameterNames: ['device_id'],
181
181
  responseKey: undefined,
182
182
  options,
183
183
  })
@@ -190,12 +190,13 @@ export class SeamHttpPhones {
190
190
  parameters: PhonesGetParameters,
191
191
  options: PhonesGetOptions = {},
192
192
  ): PhonesGetRequest {
193
- assertValidRequestParameters(parameters, '/phones/get', true)
194
-
195
193
  return new SeamHttpRequest(this, {
196
194
  pathname: '/phones/get',
197
195
  method: 'GET',
198
196
  params: parameters,
197
+ parameters,
198
+ hasRequiredParameters: true,
199
+ requiredParameterNames: ['device_id'],
199
200
  responseKey: 'phone',
200
201
  options,
201
202
  })
@@ -208,12 +209,13 @@ export class SeamHttpPhones {
208
209
  parameters?: PhonesListParameters,
209
210
  options: PhonesListOptions = {},
210
211
  ): PhonesListRequest {
211
- assertValidRequestParameters(parameters, '/phones/list', false)
212
-
213
212
  return new SeamHttpRequest(this, {
214
213
  pathname: '/phones/list',
215
214
  method: 'GET',
216
215
  params: parameters,
216
+ parameters,
217
+ hasRequiredParameters: false,
218
+ requiredParameterNames: [],
217
219
  responseKey: 'phones',
218
220
  options,
219
221
  })
@@ -28,7 +28,6 @@ import {
28
28
  limitToSeamHttpRequestOptions,
29
29
  parseOptions,
30
30
  } from 'lib/parse-options.js'
31
- import { assertValidRequestParameters } from 'lib/request-parameters.js'
32
31
  import type { Phone } from 'lib/resources/phone.js'
33
32
  import { SeamHttpClientSessions } from 'lib/routes/client-sessions/index.js'
34
33
  import { SeamHttpRequest } from 'lib/seam-http-request.js'
@@ -166,16 +165,13 @@ export class SeamHttpPhonesSimulate {
166
165
  parameters: PhonesSimulateCreateSandboxPhoneParameters,
167
166
  options: PhonesSimulateCreateSandboxPhoneOptions = {},
168
167
  ): PhonesSimulateCreateSandboxPhoneRequest {
169
- assertValidRequestParameters(
170
- parameters,
171
- '/phones/simulate/create_sandbox_phone',
172
- true,
173
- )
174
-
175
168
  return new SeamHttpRequest(this, {
176
169
  pathname: '/phones/simulate/create_sandbox_phone',
177
170
  method: 'POST',
178
171
  body: parameters,
172
+ parameters,
173
+ hasRequiredParameters: true,
174
+ requiredParameterNames: ['user_identity_id'],
179
175
  responseKey: 'phone',
180
176
  options,
181
177
  })
@@ -28,10 +28,7 @@ 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
+ import type { RequireAtLeastOne } from 'lib/request-parameters.js'
35
32
  import type { Batch } from 'lib/resources/batch.js'
36
33
  import type { Space } from 'lib/resources/space.js'
37
34
  import { SeamHttpClientSessions } from 'lib/routes/client-sessions/index.js'
@@ -170,12 +167,13 @@ export class SeamHttpSpaces {
170
167
  parameters: SpacesAddAcsEntrancesParameters,
171
168
  options: SpacesAddAcsEntrancesOptions = {},
172
169
  ): SpacesAddAcsEntrancesRequest {
173
- assertValidRequestParameters(parameters, '/spaces/add_acs_entrances', true)
174
-
175
170
  return new SeamHttpRequest(this, {
176
171
  pathname: '/spaces/add_acs_entrances',
177
172
  method: 'PUT',
178
173
  body: parameters,
174
+ parameters,
175
+ hasRequiredParameters: true,
176
+ requiredParameterNames: ['acs_entrance_ids', 'space_id'],
179
177
  responseKey: undefined,
180
178
  options,
181
179
  })
@@ -188,16 +186,13 @@ export class SeamHttpSpaces {
188
186
  parameters: SpacesAddConnectedAccountParameters,
189
187
  options: SpacesAddConnectedAccountOptions = {},
190
188
  ): SpacesAddConnectedAccountRequest {
191
- assertValidRequestParameters(
192
- parameters,
193
- '/spaces/add_connected_account',
194
- true,
195
- )
196
-
197
189
  return new SeamHttpRequest(this, {
198
190
  pathname: '/spaces/add_connected_account',
199
191
  method: 'PUT',
200
192
  body: parameters,
193
+ parameters,
194
+ hasRequiredParameters: true,
195
+ requiredParameterNames: ['connected_account_id', 'space_id'],
201
196
  responseKey: undefined,
202
197
  options,
203
198
  })
@@ -210,12 +205,13 @@ export class SeamHttpSpaces {
210
205
  parameters: SpacesAddDevicesParameters,
211
206
  options: SpacesAddDevicesOptions = {},
212
207
  ): SpacesAddDevicesRequest {
213
- assertValidRequestParameters(parameters, '/spaces/add_devices', true)
214
-
215
208
  return new SeamHttpRequest(this, {
216
209
  pathname: '/spaces/add_devices',
217
210
  method: 'PUT',
218
211
  body: parameters,
212
+ parameters,
213
+ hasRequiredParameters: true,
214
+ requiredParameterNames: ['device_ids', 'space_id'],
219
215
  responseKey: undefined,
220
216
  options,
221
217
  })
@@ -228,12 +224,13 @@ export class SeamHttpSpaces {
228
224
  parameters: SpacesCreateParameters,
229
225
  options: SpacesCreateOptions = {},
230
226
  ): SpacesCreateRequest {
231
- assertValidRequestParameters(parameters, '/spaces/create', true)
232
-
233
227
  return new SeamHttpRequest(this, {
234
228
  pathname: '/spaces/create',
235
229
  method: 'POST',
236
230
  body: parameters,
231
+ parameters,
232
+ hasRequiredParameters: true,
233
+ requiredParameterNames: ['name'],
237
234
  responseKey: 'space',
238
235
  options,
239
236
  })
@@ -246,12 +243,13 @@ export class SeamHttpSpaces {
246
243
  parameters: SpacesDeleteParameters,
247
244
  options: SpacesDeleteOptions = {},
248
245
  ): SpacesDeleteRequest {
249
- assertValidRequestParameters(parameters, '/spaces/delete', true)
250
-
251
246
  return new SeamHttpRequest(this, {
252
247
  pathname: '/spaces/delete',
253
248
  method: 'DELETE',
254
249
  params: parameters,
250
+ parameters,
251
+ hasRequiredParameters: true,
252
+ requiredParameterNames: ['space_id'],
255
253
  responseKey: undefined,
256
254
  options,
257
255
  })
@@ -264,12 +262,13 @@ export class SeamHttpSpaces {
264
262
  parameters: SpacesGetParameters,
265
263
  options: SpacesGetOptions = {},
266
264
  ): SpacesGetRequest {
267
- assertValidRequestParameters(parameters, '/spaces/get', true)
268
-
269
265
  return new SeamHttpRequest(this, {
270
266
  pathname: '/spaces/get',
271
267
  method: 'GET',
272
268
  params: parameters,
269
+ parameters,
270
+ hasRequiredParameters: true,
271
+ requiredParameterNames: [],
273
272
  responseKey: 'space',
274
273
  options,
275
274
  })
@@ -282,12 +281,13 @@ export class SeamHttpSpaces {
282
281
  parameters: SpacesGetRelatedParameters,
283
282
  options: SpacesGetRelatedOptions = {},
284
283
  ): SpacesGetRelatedRequest {
285
- assertValidRequestParameters(parameters, '/spaces/get_related', true)
286
-
287
284
  return new SeamHttpRequest(this, {
288
285
  pathname: '/spaces/get_related',
289
286
  method: 'POST',
290
287
  body: parameters,
288
+ parameters,
289
+ hasRequiredParameters: true,
290
+ requiredParameterNames: [],
291
291
  responseKey: 'batch',
292
292
  options,
293
293
  })
@@ -300,12 +300,13 @@ export class SeamHttpSpaces {
300
300
  parameters?: SpacesListParameters,
301
301
  options: SpacesListOptions = {},
302
302
  ): SpacesListRequest {
303
- assertValidRequestParameters(parameters, '/spaces/list', false)
304
-
305
303
  return new SeamHttpRequest(this, {
306
304
  pathname: '/spaces/list',
307
305
  method: 'GET',
308
306
  params: parameters,
307
+ parameters,
308
+ hasRequiredParameters: false,
309
+ requiredParameterNames: [],
309
310
  responseKey: 'spaces',
310
311
  options,
311
312
  })
@@ -318,16 +319,13 @@ export class SeamHttpSpaces {
318
319
  parameters: SpacesRemoveAcsEntrancesParameters,
319
320
  options: SpacesRemoveAcsEntrancesOptions = {},
320
321
  ): SpacesRemoveAcsEntrancesRequest {
321
- assertValidRequestParameters(
322
- parameters,
323
- '/spaces/remove_acs_entrances',
324
- true,
325
- )
326
-
327
322
  return new SeamHttpRequest(this, {
328
323
  pathname: '/spaces/remove_acs_entrances',
329
324
  method: 'POST',
330
325
  body: parameters,
326
+ parameters,
327
+ hasRequiredParameters: true,
328
+ requiredParameterNames: ['acs_entrance_ids', 'space_id'],
331
329
  responseKey: undefined,
332
330
  options,
333
331
  })
@@ -340,16 +338,13 @@ export class SeamHttpSpaces {
340
338
  parameters: SpacesRemoveConnectedAccountParameters,
341
339
  options: SpacesRemoveConnectedAccountOptions = {},
342
340
  ): SpacesRemoveConnectedAccountRequest {
343
- assertValidRequestParameters(
344
- parameters,
345
- '/spaces/remove_connected_account',
346
- true,
347
- )
348
-
349
341
  return new SeamHttpRequest(this, {
350
342
  pathname: '/spaces/remove_connected_account',
351
343
  method: 'DELETE',
352
344
  params: parameters,
345
+ parameters,
346
+ hasRequiredParameters: true,
347
+ requiredParameterNames: ['connected_account_id', 'space_id'],
353
348
  responseKey: undefined,
354
349
  options,
355
350
  })
@@ -362,12 +357,13 @@ export class SeamHttpSpaces {
362
357
  parameters: SpacesRemoveDevicesParameters,
363
358
  options: SpacesRemoveDevicesOptions = {},
364
359
  ): SpacesRemoveDevicesRequest {
365
- assertValidRequestParameters(parameters, '/spaces/remove_devices', true)
366
-
367
360
  return new SeamHttpRequest(this, {
368
361
  pathname: '/spaces/remove_devices',
369
362
  method: 'POST',
370
363
  body: parameters,
364
+ parameters,
365
+ hasRequiredParameters: true,
366
+ requiredParameterNames: ['device_ids', 'space_id'],
371
367
  responseKey: undefined,
372
368
  options,
373
369
  })
@@ -380,12 +376,13 @@ export class SeamHttpSpaces {
380
376
  parameters?: SpacesUpdateParameters,
381
377
  options: SpacesUpdateOptions = {},
382
378
  ): SpacesUpdateRequest {
383
- assertValidRequestParameters(parameters, '/spaces/update', false)
384
-
385
379
  return new SeamHttpRequest(this, {
386
380
  pathname: '/spaces/update',
387
381
  method: 'PATCH',
388
382
  body: parameters,
383
+ parameters,
384
+ hasRequiredParameters: false,
385
+ requiredParameterNames: [],
389
386
  responseKey: 'space',
390
387
  options,
391
388
  })
@@ -28,7 +28,6 @@ import {
28
28
  limitToSeamHttpRequestOptions,
29
29
  parseOptions,
30
30
  } from 'lib/parse-options.js'
31
- import { assertValidRequestParameters } from 'lib/request-parameters.js'
32
31
  import type { ActionAttempt } from 'lib/resources/action-attempt.js'
33
32
  import type { ThermostatDailyProgram } from 'lib/resources/thermostat-daily-program.js'
34
33
  import { SeamHttpActionAttempts } from 'lib/routes/action-attempts/index.js'
@@ -171,16 +170,13 @@ export class SeamHttpThermostatsDailyPrograms {
171
170
  parameters: ThermostatsDailyProgramsCreateParameters,
172
171
  options: ThermostatsDailyProgramsCreateOptions = {},
173
172
  ): ThermostatsDailyProgramsCreateRequest {
174
- assertValidRequestParameters(
175
- parameters,
176
- '/thermostats/daily_programs/create',
177
- true,
178
- )
179
-
180
173
  return new SeamHttpRequest(this, {
181
174
  pathname: '/thermostats/daily_programs/create',
182
175
  method: 'POST',
183
176
  body: parameters,
177
+ parameters,
178
+ hasRequiredParameters: true,
179
+ requiredParameterNames: ['device_id', 'name', 'periods'],
184
180
  responseKey: 'thermostat_daily_program',
185
181
  options,
186
182
  })
@@ -193,16 +189,13 @@ export class SeamHttpThermostatsDailyPrograms {
193
189
  parameters: ThermostatsDailyProgramsDeleteParameters,
194
190
  options: ThermostatsDailyProgramsDeleteOptions = {},
195
191
  ): ThermostatsDailyProgramsDeleteRequest {
196
- assertValidRequestParameters(
197
- parameters,
198
- '/thermostats/daily_programs/delete',
199
- true,
200
- )
201
-
202
192
  return new SeamHttpRequest(this, {
203
193
  pathname: '/thermostats/daily_programs/delete',
204
194
  method: 'DELETE',
205
195
  params: parameters,
196
+ parameters,
197
+ hasRequiredParameters: true,
198
+ requiredParameterNames: ['thermostat_daily_program_id'],
206
199
  responseKey: undefined,
207
200
  options,
208
201
  })
@@ -215,16 +208,17 @@ export class SeamHttpThermostatsDailyPrograms {
215
208
  parameters: ThermostatsDailyProgramsUpdateParameters,
216
209
  options: ThermostatsDailyProgramsUpdateOptions = {},
217
210
  ): ThermostatsDailyProgramsUpdateRequest {
218
- assertValidRequestParameters(
219
- parameters,
220
- '/thermostats/daily_programs/update',
221
- true,
222
- )
223
-
224
211
  return new SeamHttpRequest(this, {
225
212
  pathname: '/thermostats/daily_programs/update',
226
213
  method: 'PATCH',
227
214
  body: parameters,
215
+ parameters,
216
+ hasRequiredParameters: true,
217
+ requiredParameterNames: [
218
+ 'name',
219
+ 'periods',
220
+ 'thermostat_daily_program_id',
221
+ ],
228
222
  responseKey: 'action_attempt',
229
223
  options,
230
224
  actionAttempts: SeamHttpActionAttempts.fromClient(this.client, {
@@ -28,7 +28,6 @@ import {
28
28
  limitToSeamHttpRequestOptions,
29
29
  parseOptions,
30
30
  } from 'lib/parse-options.js'
31
- import { assertValidRequestParameters } from 'lib/request-parameters.js'
32
31
  import type { ThermostatSchedule } from 'lib/resources/thermostat-schedule.js'
33
32
  import { SeamHttpClientSessions } from 'lib/routes/client-sessions/index.js'
34
33
  import { SeamHttpRequest } from 'lib/seam-http-request.js'
@@ -166,16 +165,18 @@ export class SeamHttpThermostatsSchedules {
166
165
  parameters: ThermostatsSchedulesCreateParameters,
167
166
  options: ThermostatsSchedulesCreateOptions = {},
168
167
  ): ThermostatsSchedulesCreateRequest {
169
- assertValidRequestParameters(
170
- parameters,
171
- '/thermostats/schedules/create',
172
- true,
173
- )
174
-
175
168
  return new SeamHttpRequest(this, {
176
169
  pathname: '/thermostats/schedules/create',
177
170
  method: 'POST',
178
171
  body: parameters,
172
+ parameters,
173
+ hasRequiredParameters: true,
174
+ requiredParameterNames: [
175
+ 'climate_preset_key',
176
+ 'device_id',
177
+ 'ends_at',
178
+ 'starts_at',
179
+ ],
179
180
  responseKey: 'thermostat_schedule',
180
181
  options,
181
182
  })
@@ -188,16 +189,13 @@ export class SeamHttpThermostatsSchedules {
188
189
  parameters: ThermostatsSchedulesDeleteParameters,
189
190
  options: ThermostatsSchedulesDeleteOptions = {},
190
191
  ): ThermostatsSchedulesDeleteRequest {
191
- assertValidRequestParameters(
192
- parameters,
193
- '/thermostats/schedules/delete',
194
- true,
195
- )
196
-
197
192
  return new SeamHttpRequest(this, {
198
193
  pathname: '/thermostats/schedules/delete',
199
194
  method: 'DELETE',
200
195
  params: parameters,
196
+ parameters,
197
+ hasRequiredParameters: true,
198
+ requiredParameterNames: ['thermostat_schedule_id'],
201
199
  responseKey: undefined,
202
200
  options,
203
201
  })
@@ -210,12 +208,13 @@ export class SeamHttpThermostatsSchedules {
210
208
  parameters: ThermostatsSchedulesGetParameters,
211
209
  options: ThermostatsSchedulesGetOptions = {},
212
210
  ): ThermostatsSchedulesGetRequest {
213
- assertValidRequestParameters(parameters, '/thermostats/schedules/get', true)
214
-
215
211
  return new SeamHttpRequest(this, {
216
212
  pathname: '/thermostats/schedules/get',
217
213
  method: 'GET',
218
214
  params: parameters,
215
+ parameters,
216
+ hasRequiredParameters: true,
217
+ requiredParameterNames: ['thermostat_schedule_id'],
219
218
  responseKey: 'thermostat_schedule',
220
219
  options,
221
220
  })
@@ -228,16 +227,13 @@ export class SeamHttpThermostatsSchedules {
228
227
  parameters: ThermostatsSchedulesListParameters,
229
228
  options: ThermostatsSchedulesListOptions = {},
230
229
  ): ThermostatsSchedulesListRequest {
231
- assertValidRequestParameters(
232
- parameters,
233
- '/thermostats/schedules/list',
234
- true,
235
- )
236
-
237
230
  return new SeamHttpRequest(this, {
238
231
  pathname: '/thermostats/schedules/list',
239
232
  method: 'GET',
240
233
  params: parameters,
234
+ parameters,
235
+ hasRequiredParameters: true,
236
+ requiredParameterNames: ['device_id'],
241
237
  responseKey: 'thermostat_schedules',
242
238
  options,
243
239
  })
@@ -250,16 +246,13 @@ export class SeamHttpThermostatsSchedules {
250
246
  parameters: ThermostatsSchedulesUpdateParameters,
251
247
  options: ThermostatsSchedulesUpdateOptions = {},
252
248
  ): ThermostatsSchedulesUpdateRequest {
253
- assertValidRequestParameters(
254
- parameters,
255
- '/thermostats/schedules/update',
256
- true,
257
- )
258
-
259
249
  return new SeamHttpRequest(this, {
260
250
  pathname: '/thermostats/schedules/update',
261
251
  method: 'PATCH',
262
252
  body: parameters,
253
+ parameters,
254
+ hasRequiredParameters: true,
255
+ requiredParameterNames: ['thermostat_schedule_id'],
263
256
  responseKey: undefined,
264
257
  options,
265
258
  })
@@ -28,7 +28,6 @@ import {
28
28
  limitToSeamHttpRequestOptions,
29
29
  parseOptions,
30
30
  } from 'lib/parse-options.js'
31
- import { assertValidRequestParameters } from 'lib/request-parameters.js'
32
31
  import { SeamHttpClientSessions } from 'lib/routes/client-sessions/index.js'
33
32
  import { SeamHttpRequest } from 'lib/seam-http-request.js'
34
33
  import { SeamPaginator } from 'lib/seam-paginator.js'
@@ -165,16 +164,13 @@ export class SeamHttpThermostatsSimulate {
165
164
  parameters: ThermostatsSimulateHvacModeAdjustedParameters,
166
165
  options: ThermostatsSimulateHvacModeAdjustedOptions = {},
167
166
  ): ThermostatsSimulateHvacModeAdjustedRequest {
168
- assertValidRequestParameters(
169
- parameters,
170
- '/thermostats/simulate/hvac_mode_adjusted',
171
- true,
172
- )
173
-
174
167
  return new SeamHttpRequest(this, {
175
168
  pathname: '/thermostats/simulate/hvac_mode_adjusted',
176
169
  method: 'POST',
177
170
  body: parameters,
171
+ parameters,
172
+ hasRequiredParameters: true,
173
+ requiredParameterNames: ['device_id', 'hvac_mode'],
178
174
  responseKey: undefined,
179
175
  options,
180
176
  })
@@ -187,16 +183,13 @@ export class SeamHttpThermostatsSimulate {
187
183
  parameters: ThermostatsSimulateTemperatureReachedParameters,
188
184
  options: ThermostatsSimulateTemperatureReachedOptions = {},
189
185
  ): ThermostatsSimulateTemperatureReachedRequest {
190
- assertValidRequestParameters(
191
- parameters,
192
- '/thermostats/simulate/temperature_reached',
193
- true,
194
- )
195
-
196
186
  return new SeamHttpRequest(this, {
197
187
  pathname: '/thermostats/simulate/temperature_reached',
198
188
  method: 'POST',
199
189
  body: parameters,
190
+ parameters,
191
+ hasRequiredParameters: true,
192
+ requiredParameterNames: ['device_id'],
200
193
  responseKey: undefined,
201
194
  options,
202
195
  })