@seamapi/http 2.5.0 → 2.6.0

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