@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 { CustomerPortal } from 'lib/resources/customer-portal.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 SeamHttpCustomers {
166
165
  parameters?: CustomersCreatePortalParameters,
167
166
  options: CustomersCreatePortalOptions = {},
168
167
  ): CustomersCreatePortalRequest {
169
- assertValidRequestParameters(
170
- parameters,
171
- '/customers/create_portal',
172
- false,
173
- [],
174
- )
175
-
176
168
  return new SeamHttpRequest(this, {
177
169
  pathname: '/customers/create_portal',
178
170
  method: 'POST',
179
171
  body: parameters,
172
+ parameters,
173
+ hasRequiredParameters: false,
174
+ requiredParameterNames: [],
180
175
  responseKey: 'customer_portal',
181
176
  options,
182
177
  })
@@ -190,17 +185,13 @@ export class SeamHttpCustomers {
190
185
  parameters?: CustomersDeleteDataParameters,
191
186
  options: CustomersDeleteDataOptions = {},
192
187
  ): CustomersDeleteDataRequest {
193
- assertValidRequestParameters(
194
- parameters,
195
- '/customers/delete_data',
196
- false,
197
- [],
198
- )
199
-
200
188
  return new SeamHttpRequest(this, {
201
189
  pathname: '/customers/delete_data',
202
190
  method: 'POST',
203
191
  body: parameters,
192
+ parameters,
193
+ hasRequiredParameters: false,
194
+ requiredParameterNames: [],
204
195
  responseKey: undefined,
205
196
  options,
206
197
  })
@@ -213,14 +204,13 @@ export class SeamHttpCustomers {
213
204
  parameters: CustomersPushDataParameters,
214
205
  options: CustomersPushDataOptions = {},
215
206
  ): CustomersPushDataRequest {
216
- assertValidRequestParameters(parameters, '/customers/push_data', true, [
217
- 'customer_key',
218
- ])
219
-
220
207
  return new SeamHttpRequest(this, {
221
208
  pathname: '/customers/push_data',
222
209
  method: 'POST',
223
210
  body: parameters,
211
+ parameters,
212
+ hasRequiredParameters: true,
213
+ requiredParameterNames: ['customer_key'],
224
214
  responseKey: undefined,
225
215
  options,
226
216
  })
@@ -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 { Device } from 'lib/resources/device.js'
36
33
  import type { DeviceProvider } from 'lib/resources/device-provider.js'
37
34
  import { SeamHttpClientSessions } from 'lib/routes/client-sessions/index.js'
@@ -183,12 +180,13 @@ export class SeamHttpDevices {
183
180
  parameters: DevicesGetParameters,
184
181
  options: DevicesGetOptions = {},
185
182
  ): DevicesGetRequest {
186
- assertValidRequestParameters(parameters, '/devices/get', true, [])
187
-
188
183
  return new SeamHttpRequest(this, {
189
184
  pathname: '/devices/get',
190
185
  method: 'GET',
191
186
  params: parameters,
187
+ parameters,
188
+ hasRequiredParameters: true,
189
+ requiredParameterNames: [],
192
190
  responseKey: 'device',
193
191
  options,
194
192
  })
@@ -201,12 +199,13 @@ export class SeamHttpDevices {
201
199
  parameters?: DevicesListParameters,
202
200
  options: DevicesListOptions = {},
203
201
  ): DevicesListRequest {
204
- assertValidRequestParameters(parameters, '/devices/list', false, [])
205
-
206
202
  return new SeamHttpRequest(this, {
207
203
  pathname: '/devices/list',
208
204
  method: 'POST',
209
205
  body: parameters,
206
+ parameters,
207
+ hasRequiredParameters: false,
208
+ requiredParameterNames: [],
210
209
  responseKey: 'devices',
211
210
  options,
212
211
  })
@@ -223,17 +222,13 @@ export class SeamHttpDevices {
223
222
  parameters?: DevicesListDeviceProvidersParameters,
224
223
  options: DevicesListDeviceProvidersOptions = {},
225
224
  ): DevicesListDeviceProvidersRequest {
226
- assertValidRequestParameters(
227
- parameters,
228
- '/devices/list_device_providers',
229
- false,
230
- [],
231
- )
232
-
233
225
  return new SeamHttpRequest(this, {
234
226
  pathname: '/devices/list_device_providers',
235
227
  method: 'GET',
236
228
  params: parameters,
229
+ parameters,
230
+ hasRequiredParameters: false,
231
+ requiredParameterNames: [],
237
232
  responseKey: 'device_providers',
238
233
  options,
239
234
  })
@@ -246,17 +241,13 @@ export class SeamHttpDevices {
246
241
  parameters: DevicesReportProviderMetadataParameters,
247
242
  options: DevicesReportProviderMetadataOptions = {},
248
243
  ): DevicesReportProviderMetadataRequest {
249
- assertValidRequestParameters(
250
- parameters,
251
- '/devices/report_provider_metadata',
252
- true,
253
- ['devices'],
254
- )
255
-
256
244
  return new SeamHttpRequest(this, {
257
245
  pathname: '/devices/report_provider_metadata',
258
246
  method: 'POST',
259
247
  body: parameters,
248
+ parameters,
249
+ hasRequiredParameters: true,
250
+ requiredParameterNames: ['devices'],
260
251
  responseKey: undefined,
261
252
  options,
262
253
  })
@@ -271,14 +262,13 @@ export class SeamHttpDevices {
271
262
  parameters: DevicesUpdateParameters,
272
263
  options: DevicesUpdateOptions = {},
273
264
  ): DevicesUpdateRequest {
274
- assertValidRequestParameters(parameters, '/devices/update', true, [
275
- 'device_id',
276
- ])
277
-
278
265
  return new SeamHttpRequest(this, {
279
266
  pathname: '/devices/update',
280
267
  method: 'PATCH',
281
268
  body: parameters,
269
+ parameters,
270
+ hasRequiredParameters: true,
271
+ requiredParameterNames: ['device_id'],
282
272
  responseKey: undefined,
283
273
  options,
284
274
  })
@@ -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 SeamHttpDevicesSimulate {
165
164
  parameters: DevicesSimulateConnectParameters,
166
165
  options: DevicesSimulateConnectOptions = {},
167
166
  ): DevicesSimulateConnectRequest {
168
- assertValidRequestParameters(
169
- parameters,
170
- '/devices/simulate/connect',
171
- true,
172
- ['device_id'],
173
- )
174
-
175
167
  return new SeamHttpRequest(this, {
176
168
  pathname: '/devices/simulate/connect',
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
  })
@@ -191,17 +186,13 @@ export class SeamHttpDevicesSimulate {
191
186
  parameters: DevicesSimulateConnectToHubParameters,
192
187
  options: DevicesSimulateConnectToHubOptions = {},
193
188
  ): DevicesSimulateConnectToHubRequest {
194
- assertValidRequestParameters(
195
- parameters,
196
- '/devices/simulate/connect_to_hub',
197
- true,
198
- ['device_id'],
199
- )
200
-
201
189
  return new SeamHttpRequest(this, {
202
190
  pathname: '/devices/simulate/connect_to_hub',
203
191
  method: 'POST',
204
192
  body: parameters,
193
+ parameters,
194
+ hasRequiredParameters: true,
195
+ requiredParameterNames: ['device_id'],
205
196
  responseKey: undefined,
206
197
  options,
207
198
  })
@@ -214,17 +205,13 @@ export class SeamHttpDevicesSimulate {
214
205
  parameters: DevicesSimulateDisconnectParameters,
215
206
  options: DevicesSimulateDisconnectOptions = {},
216
207
  ): DevicesSimulateDisconnectRequest {
217
- assertValidRequestParameters(
218
- parameters,
219
- '/devices/simulate/disconnect',
220
- true,
221
- ['device_id'],
222
- )
223
-
224
208
  return new SeamHttpRequest(this, {
225
209
  pathname: '/devices/simulate/disconnect',
226
210
  method: 'POST',
227
211
  body: parameters,
212
+ parameters,
213
+ hasRequiredParameters: true,
214
+ requiredParameterNames: ['device_id'],
228
215
  responseKey: undefined,
229
216
  options,
230
217
  })
@@ -241,17 +228,13 @@ export class SeamHttpDevicesSimulate {
241
228
  parameters: DevicesSimulateDisconnectFromHubParameters,
242
229
  options: DevicesSimulateDisconnectFromHubOptions = {},
243
230
  ): DevicesSimulateDisconnectFromHubRequest {
244
- assertValidRequestParameters(
245
- parameters,
246
- '/devices/simulate/disconnect_from_hub',
247
- true,
248
- ['device_id'],
249
- )
250
-
251
231
  return new SeamHttpRequest(this, {
252
232
  pathname: '/devices/simulate/disconnect_from_hub',
253
233
  method: 'POST',
254
234
  body: parameters,
235
+ parameters,
236
+ hasRequiredParameters: true,
237
+ requiredParameterNames: ['device_id'],
255
238
  responseKey: undefined,
256
239
  options,
257
240
  })
@@ -266,17 +249,13 @@ export class SeamHttpDevicesSimulate {
266
249
  parameters: DevicesSimulatePaidSubscriptionParameters,
267
250
  options: DevicesSimulatePaidSubscriptionOptions = {},
268
251
  ): DevicesSimulatePaidSubscriptionRequest {
269
- assertValidRequestParameters(
270
- parameters,
271
- '/devices/simulate/paid_subscription',
272
- true,
273
- ['device_id', 'is_expired'],
274
- )
275
-
276
252
  return new SeamHttpRequest(this, {
277
253
  pathname: '/devices/simulate/paid_subscription',
278
254
  method: 'POST',
279
255
  body: parameters,
256
+ parameters,
257
+ hasRequiredParameters: true,
258
+ requiredParameterNames: ['device_id', 'is_expired'],
280
259
  responseKey: undefined,
281
260
  options,
282
261
  })
@@ -289,14 +268,13 @@ export class SeamHttpDevicesSimulate {
289
268
  parameters: DevicesSimulateRemoveParameters,
290
269
  options: DevicesSimulateRemoveOptions = {},
291
270
  ): DevicesSimulateRemoveRequest {
292
- assertValidRequestParameters(parameters, '/devices/simulate/remove', true, [
293
- 'device_id',
294
- ])
295
-
296
271
  return new SeamHttpRequest(this, {
297
272
  pathname: '/devices/simulate/remove',
298
273
  method: 'POST',
299
274
  body: parameters,
275
+ parameters,
276
+ hasRequiredParameters: true,
277
+ requiredParameterNames: ['device_id'],
300
278
  responseKey: undefined,
301
279
  options,
302
280
  })
@@ -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 { UnmanagedDevice } from 'lib/resources/unmanaged-device.js'
36
33
  import { SeamHttpClientSessions } from 'lib/routes/client-sessions/index.js'
37
34
  import { SeamHttpRequest } from 'lib/seam-http-request.js'
@@ -173,12 +170,13 @@ export class SeamHttpDevicesUnmanaged {
173
170
  parameters: DevicesUnmanagedGetParameters,
174
171
  options: DevicesUnmanagedGetOptions = {},
175
172
  ): DevicesUnmanagedGetRequest {
176
- assertValidRequestParameters(parameters, '/devices/unmanaged/get', true, [])
177
-
178
173
  return new SeamHttpRequest(this, {
179
174
  pathname: '/devices/unmanaged/get',
180
175
  method: 'GET',
181
176
  params: parameters,
177
+ parameters,
178
+ hasRequiredParameters: true,
179
+ requiredParameterNames: [],
182
180
  responseKey: 'device',
183
181
  options,
184
182
  })
@@ -193,17 +191,13 @@ export class SeamHttpDevicesUnmanaged {
193
191
  parameters?: DevicesUnmanagedListParameters,
194
192
  options: DevicesUnmanagedListOptions = {},
195
193
  ): DevicesUnmanagedListRequest {
196
- assertValidRequestParameters(
197
- parameters,
198
- '/devices/unmanaged/list',
199
- false,
200
- [],
201
- )
202
-
203
194
  return new SeamHttpRequest(this, {
204
195
  pathname: '/devices/unmanaged/list',
205
196
  method: 'POST',
206
197
  body: parameters,
198
+ parameters,
199
+ hasRequiredParameters: false,
200
+ requiredParameterNames: [],
207
201
  responseKey: 'devices',
208
202
  options,
209
203
  })
@@ -218,17 +212,13 @@ export class SeamHttpDevicesUnmanaged {
218
212
  parameters: DevicesUnmanagedUpdateParameters,
219
213
  options: DevicesUnmanagedUpdateOptions = {},
220
214
  ): DevicesUnmanagedUpdateRequest {
221
- assertValidRequestParameters(
222
- parameters,
223
- '/devices/unmanaged/update',
224
- true,
225
- ['device_id'],
226
- )
227
-
228
215
  return new SeamHttpRequest(this, {
229
216
  pathname: '/devices/unmanaged/update',
230
217
  method: 'PATCH',
231
218
  body: parameters,
219
+ parameters,
220
+ hasRequiredParameters: true,
221
+ requiredParameterNames: ['device_id'],
232
222
  responseKey: undefined,
233
223
  options,
234
224
  })
@@ -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 { SeamEvent } from 'lib/resources/event.js'
36
33
  import { SeamHttpClientSessions } from 'lib/routes/client-sessions/index.js'
37
34
  import { SeamHttpRequest } from 'lib/seam-http-request.js'
@@ -169,12 +166,13 @@ export class SeamHttpEvents {
169
166
  parameters: EventsGetParameters,
170
167
  options: EventsGetOptions = {},
171
168
  ): EventsGetRequest {
172
- assertValidRequestParameters(parameters, '/events/get', true, [])
173
-
174
169
  return new SeamHttpRequest(this, {
175
170
  pathname: '/events/get',
176
171
  method: 'GET',
177
172
  params: parameters,
173
+ parameters,
174
+ hasRequiredParameters: true,
175
+ requiredParameterNames: [],
178
176
  responseKey: 'event',
179
177
  options,
180
178
  })
@@ -187,12 +185,13 @@ export class SeamHttpEvents {
187
185
  parameters: EventsListParameters,
188
186
  options: EventsListOptions = {},
189
187
  ): EventsListRequest {
190
- assertValidRequestParameters(parameters, '/events/list', true, [])
191
-
192
188
  return new SeamHttpRequest(this, {
193
189
  pathname: '/events/list',
194
190
  method: 'POST',
195
191
  body: parameters,
192
+ parameters,
193
+ hasRequiredParameters: true,
194
+ requiredParameterNames: [],
196
195
  responseKey: 'events',
197
196
  options,
198
197
  })
@@ -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 { InstantKey } from 'lib/resources/instant-key.js'
36
33
  import { SeamHttpClientSessions } from 'lib/routes/client-sessions/index.js'
37
34
  import { SeamHttpRequest } from 'lib/seam-http-request.js'
@@ -169,14 +166,13 @@ export class SeamHttpInstantKeys {
169
166
  parameters: InstantKeysDeleteParameters,
170
167
  options: InstantKeysDeleteOptions = {},
171
168
  ): InstantKeysDeleteRequest {
172
- assertValidRequestParameters(parameters, '/instant_keys/delete', true, [
173
- 'instant_key_id',
174
- ])
175
-
176
169
  return new SeamHttpRequest(this, {
177
170
  pathname: '/instant_keys/delete',
178
171
  method: 'DELETE',
179
172
  params: parameters,
173
+ parameters,
174
+ hasRequiredParameters: true,
175
+ requiredParameterNames: ['instant_key_id'],
180
176
  responseKey: undefined,
181
177
  options,
182
178
  })
@@ -189,12 +185,13 @@ export class SeamHttpInstantKeys {
189
185
  parameters: InstantKeysGetParameters,
190
186
  options: InstantKeysGetOptions = {},
191
187
  ): InstantKeysGetRequest {
192
- assertValidRequestParameters(parameters, '/instant_keys/get', true, [])
193
-
194
188
  return new SeamHttpRequest(this, {
195
189
  pathname: '/instant_keys/get',
196
190
  method: 'GET',
197
191
  params: parameters,
192
+ parameters,
193
+ hasRequiredParameters: true,
194
+ requiredParameterNames: [],
198
195
  responseKey: 'instant_key',
199
196
  options,
200
197
  })
@@ -207,12 +204,13 @@ export class SeamHttpInstantKeys {
207
204
  parameters?: InstantKeysListParameters,
208
205
  options: InstantKeysListOptions = {},
209
206
  ): InstantKeysListRequest {
210
- assertValidRequestParameters(parameters, '/instant_keys/list', false, [])
211
-
212
207
  return new SeamHttpRequest(this, {
213
208
  pathname: '/instant_keys/list',
214
209
  method: 'GET',
215
210
  params: parameters,
211
+ parameters,
212
+ hasRequiredParameters: false,
213
+ requiredParameterNames: [],
216
214
  responseKey: 'instant_keys',
217
215
  options,
218
216
  })
@@ -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 { ActionAttempt } from 'lib/resources/action-attempt.js'
36
33
  import type { Device } from 'lib/resources/device.js'
37
34
  import { SeamHttpActionAttempts } from 'lib/routes/action-attempts/index.js'
@@ -177,17 +174,13 @@ export class SeamHttpLocks {
177
174
  parameters: LocksConfigureAutoLockParameters,
178
175
  options: LocksConfigureAutoLockOptions = {},
179
176
  ): LocksConfigureAutoLockRequest {
180
- assertValidRequestParameters(
181
- parameters,
182
- '/locks/configure_auto_lock',
183
- true,
184
- ['auto_lock_enabled', 'device_id'],
185
- )
186
-
187
177
  return new SeamHttpRequest(this, {
188
178
  pathname: '/locks/configure_auto_lock',
189
179
  method: 'POST',
190
180
  body: parameters,
181
+ parameters,
182
+ hasRequiredParameters: true,
183
+ requiredParameterNames: ['auto_lock_enabled', 'device_id'],
191
184
  responseKey: 'action_attempt',
192
185
  options,
193
186
  actionAttempts: SeamHttpActionAttempts.fromClient(this.client, {
@@ -205,12 +198,13 @@ export class SeamHttpLocks {
205
198
  parameters: LocksGetParameters,
206
199
  options: LocksGetOptions = {},
207
200
  ): LocksGetRequest {
208
- assertValidRequestParameters(parameters, '/locks/get', true, [])
209
-
210
201
  return new SeamHttpRequest(this, {
211
202
  pathname: '/locks/get',
212
203
  method: 'GET',
213
204
  params: parameters,
205
+ parameters,
206
+ hasRequiredParameters: true,
207
+ requiredParameterNames: [],
214
208
  responseKey: 'device',
215
209
  options,
216
210
  })
@@ -223,12 +217,13 @@ export class SeamHttpLocks {
223
217
  parameters?: LocksListParameters,
224
218
  options: LocksListOptions = {},
225
219
  ): LocksListRequest {
226
- assertValidRequestParameters(parameters, '/locks/list', false, [])
227
-
228
220
  return new SeamHttpRequest(this, {
229
221
  pathname: '/locks/list',
230
222
  method: 'POST',
231
223
  body: parameters,
224
+ parameters,
225
+ hasRequiredParameters: false,
226
+ requiredParameterNames: [],
232
227
  responseKey: 'devices',
233
228
  options,
234
229
  })
@@ -241,14 +236,13 @@ export class SeamHttpLocks {
241
236
  parameters: LocksLockDoorParameters,
242
237
  options: LocksLockDoorOptions = {},
243
238
  ): LocksLockDoorRequest {
244
- assertValidRequestParameters(parameters, '/locks/lock_door', true, [
245
- 'device_id',
246
- ])
247
-
248
239
  return new SeamHttpRequest(this, {
249
240
  pathname: '/locks/lock_door',
250
241
  method: 'POST',
251
242
  body: parameters,
243
+ parameters,
244
+ hasRequiredParameters: true,
245
+ requiredParameterNames: ['device_id'],
252
246
  responseKey: 'action_attempt',
253
247
  options,
254
248
  actionAttempts: SeamHttpActionAttempts.fromClient(this.client, {
@@ -265,14 +259,13 @@ export class SeamHttpLocks {
265
259
  parameters: LocksUnlockDoorParameters,
266
260
  options: LocksUnlockDoorOptions = {},
267
261
  ): LocksUnlockDoorRequest {
268
- assertValidRequestParameters(parameters, '/locks/unlock_door', true, [
269
- 'device_id',
270
- ])
271
-
272
262
  return new SeamHttpRequest(this, {
273
263
  pathname: '/locks/unlock_door',
274
264
  method: 'POST',
275
265
  body: parameters,
266
+ parameters,
267
+ hasRequiredParameters: true,
268
+ requiredParameterNames: ['device_id'],
276
269
  responseKey: 'action_attempt',
277
270
  options,
278
271
  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 { ActionAttempt } from 'lib/resources/action-attempt.js'
33
32
  import { SeamHttpActionAttempts } from 'lib/routes/action-attempts/index.js'
34
33
  import { SeamHttpClientSessions } from 'lib/routes/client-sessions/index.js'
@@ -167,17 +166,13 @@ export class SeamHttpLocksSimulate {
167
166
  parameters: LocksSimulateKeypadCodeEntryParameters,
168
167
  options: LocksSimulateKeypadCodeEntryOptions = {},
169
168
  ): LocksSimulateKeypadCodeEntryRequest {
170
- assertValidRequestParameters(
171
- parameters,
172
- '/locks/simulate/keypad_code_entry',
173
- true,
174
- ['code', 'device_id'],
175
- )
176
-
177
169
  return new SeamHttpRequest(this, {
178
170
  pathname: '/locks/simulate/keypad_code_entry',
179
171
  method: 'POST',
180
172
  body: parameters,
173
+ parameters,
174
+ hasRequiredParameters: true,
175
+ requiredParameterNames: ['code', 'device_id'],
181
176
  responseKey: 'action_attempt',
182
177
  options,
183
178
  actionAttempts: SeamHttpActionAttempts.fromClient(this.client, {
@@ -194,17 +189,13 @@ export class SeamHttpLocksSimulate {
194
189
  parameters: LocksSimulateManualLockViaKeypadParameters,
195
190
  options: LocksSimulateManualLockViaKeypadOptions = {},
196
191
  ): LocksSimulateManualLockViaKeypadRequest {
197
- assertValidRequestParameters(
198
- parameters,
199
- '/locks/simulate/manual_lock_via_keypad',
200
- true,
201
- ['device_id'],
202
- )
203
-
204
192
  return new SeamHttpRequest(this, {
205
193
  pathname: '/locks/simulate/manual_lock_via_keypad',
206
194
  method: 'POST',
207
195
  body: parameters,
196
+ parameters,
197
+ hasRequiredParameters: true,
198
+ requiredParameterNames: ['device_id'],
208
199
  responseKey: 'action_attempt',
209
200
  options,
210
201
  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 { Device } from 'lib/resources/device.js'
33
32
  import { SeamHttpClientSessions } from 'lib/routes/client-sessions/index.js'
34
33
  import { SeamHttpRequest } from 'lib/seam-http-request.js'
@@ -180,12 +179,13 @@ export class SeamHttpNoiseSensors {
180
179
  parameters?: NoiseSensorsListParameters,
181
180
  options: NoiseSensorsListOptions = {},
182
181
  ): NoiseSensorsListRequest {
183
- assertValidRequestParameters(parameters, '/noise_sensors/list', false, [])
184
-
185
182
  return new SeamHttpRequest(this, {
186
183
  pathname: '/noise_sensors/list',
187
184
  method: 'POST',
188
185
  body: parameters,
186
+ parameters,
187
+ hasRequiredParameters: false,
188
+ requiredParameterNames: [],
189
189
  responseKey: 'devices',
190
190
  options,
191
191
  })