@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,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,16 +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
225
  return new SeamHttpRequest(this, {
233
226
  pathname: '/devices/list_device_providers',
234
227
  method: 'GET',
235
228
  params: parameters,
229
+ parameters,
230
+ hasRequiredParameters: false,
231
+ requiredParameterNames: [],
236
232
  responseKey: 'device_providers',
237
233
  options,
238
234
  })
@@ -245,16 +241,13 @@ export class SeamHttpDevices {
245
241
  parameters: DevicesReportProviderMetadataParameters,
246
242
  options: DevicesReportProviderMetadataOptions = {},
247
243
  ): DevicesReportProviderMetadataRequest {
248
- assertValidRequestParameters(
249
- parameters,
250
- '/devices/report_provider_metadata',
251
- true,
252
- )
253
-
254
244
  return new SeamHttpRequest(this, {
255
245
  pathname: '/devices/report_provider_metadata',
256
246
  method: 'POST',
257
247
  body: parameters,
248
+ parameters,
249
+ hasRequiredParameters: true,
250
+ requiredParameterNames: ['devices'],
258
251
  responseKey: undefined,
259
252
  options,
260
253
  })
@@ -269,12 +262,13 @@ export class SeamHttpDevices {
269
262
  parameters: DevicesUpdateParameters,
270
263
  options: DevicesUpdateOptions = {},
271
264
  ): DevicesUpdateRequest {
272
- assertValidRequestParameters(parameters, '/devices/update', true)
273
-
274
265
  return new SeamHttpRequest(this, {
275
266
  pathname: '/devices/update',
276
267
  method: 'PATCH',
277
268
  body: parameters,
269
+ parameters,
270
+ hasRequiredParameters: true,
271
+ requiredParameterNames: ['device_id'],
278
272
  responseKey: undefined,
279
273
  options,
280
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,12 +164,13 @@ export class SeamHttpDevicesSimulate {
165
164
  parameters: DevicesSimulateConnectParameters,
166
165
  options: DevicesSimulateConnectOptions = {},
167
166
  ): DevicesSimulateConnectRequest {
168
- assertValidRequestParameters(parameters, '/devices/simulate/connect', true)
169
-
170
167
  return new SeamHttpRequest(this, {
171
168
  pathname: '/devices/simulate/connect',
172
169
  method: 'POST',
173
170
  body: parameters,
171
+ parameters,
172
+ hasRequiredParameters: true,
173
+ requiredParameterNames: ['device_id'],
174
174
  responseKey: undefined,
175
175
  options,
176
176
  })
@@ -186,16 +186,13 @@ export class SeamHttpDevicesSimulate {
186
186
  parameters: DevicesSimulateConnectToHubParameters,
187
187
  options: DevicesSimulateConnectToHubOptions = {},
188
188
  ): DevicesSimulateConnectToHubRequest {
189
- assertValidRequestParameters(
190
- parameters,
191
- '/devices/simulate/connect_to_hub',
192
- true,
193
- )
194
-
195
189
  return new SeamHttpRequest(this, {
196
190
  pathname: '/devices/simulate/connect_to_hub',
197
191
  method: 'POST',
198
192
  body: parameters,
193
+ parameters,
194
+ hasRequiredParameters: true,
195
+ requiredParameterNames: ['device_id'],
199
196
  responseKey: undefined,
200
197
  options,
201
198
  })
@@ -208,16 +205,13 @@ export class SeamHttpDevicesSimulate {
208
205
  parameters: DevicesSimulateDisconnectParameters,
209
206
  options: DevicesSimulateDisconnectOptions = {},
210
207
  ): DevicesSimulateDisconnectRequest {
211
- assertValidRequestParameters(
212
- parameters,
213
- '/devices/simulate/disconnect',
214
- true,
215
- )
216
-
217
208
  return new SeamHttpRequest(this, {
218
209
  pathname: '/devices/simulate/disconnect',
219
210
  method: 'POST',
220
211
  body: parameters,
212
+ parameters,
213
+ hasRequiredParameters: true,
214
+ requiredParameterNames: ['device_id'],
221
215
  responseKey: undefined,
222
216
  options,
223
217
  })
@@ -234,16 +228,13 @@ export class SeamHttpDevicesSimulate {
234
228
  parameters: DevicesSimulateDisconnectFromHubParameters,
235
229
  options: DevicesSimulateDisconnectFromHubOptions = {},
236
230
  ): DevicesSimulateDisconnectFromHubRequest {
237
- assertValidRequestParameters(
238
- parameters,
239
- '/devices/simulate/disconnect_from_hub',
240
- true,
241
- )
242
-
243
231
  return new SeamHttpRequest(this, {
244
232
  pathname: '/devices/simulate/disconnect_from_hub',
245
233
  method: 'POST',
246
234
  body: parameters,
235
+ parameters,
236
+ hasRequiredParameters: true,
237
+ requiredParameterNames: ['device_id'],
247
238
  responseKey: undefined,
248
239
  options,
249
240
  })
@@ -258,16 +249,13 @@ export class SeamHttpDevicesSimulate {
258
249
  parameters: DevicesSimulatePaidSubscriptionParameters,
259
250
  options: DevicesSimulatePaidSubscriptionOptions = {},
260
251
  ): DevicesSimulatePaidSubscriptionRequest {
261
- assertValidRequestParameters(
262
- parameters,
263
- '/devices/simulate/paid_subscription',
264
- true,
265
- )
266
-
267
252
  return new SeamHttpRequest(this, {
268
253
  pathname: '/devices/simulate/paid_subscription',
269
254
  method: 'POST',
270
255
  body: parameters,
256
+ parameters,
257
+ hasRequiredParameters: true,
258
+ requiredParameterNames: ['device_id', 'is_expired'],
271
259
  responseKey: undefined,
272
260
  options,
273
261
  })
@@ -280,12 +268,13 @@ export class SeamHttpDevicesSimulate {
280
268
  parameters: DevicesSimulateRemoveParameters,
281
269
  options: DevicesSimulateRemoveOptions = {},
282
270
  ): DevicesSimulateRemoveRequest {
283
- assertValidRequestParameters(parameters, '/devices/simulate/remove', true)
284
-
285
271
  return new SeamHttpRequest(this, {
286
272
  pathname: '/devices/simulate/remove',
287
273
  method: 'POST',
288
274
  body: parameters,
275
+ parameters,
276
+ hasRequiredParameters: true,
277
+ requiredParameterNames: ['device_id'],
289
278
  responseKey: undefined,
290
279
  options,
291
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,12 +191,13 @@ export class SeamHttpDevicesUnmanaged {
193
191
  parameters?: DevicesUnmanagedListParameters,
194
192
  options: DevicesUnmanagedListOptions = {},
195
193
  ): DevicesUnmanagedListRequest {
196
- assertValidRequestParameters(parameters, '/devices/unmanaged/list', false)
197
-
198
194
  return new SeamHttpRequest(this, {
199
195
  pathname: '/devices/unmanaged/list',
200
196
  method: 'POST',
201
197
  body: parameters,
198
+ parameters,
199
+ hasRequiredParameters: false,
200
+ requiredParameterNames: [],
202
201
  responseKey: 'devices',
203
202
  options,
204
203
  })
@@ -213,12 +212,13 @@ export class SeamHttpDevicesUnmanaged {
213
212
  parameters: DevicesUnmanagedUpdateParameters,
214
213
  options: DevicesUnmanagedUpdateOptions = {},
215
214
  ): DevicesUnmanagedUpdateRequest {
216
- assertValidRequestParameters(parameters, '/devices/unmanaged/update', true)
217
-
218
215
  return new SeamHttpRequest(this, {
219
216
  pathname: '/devices/unmanaged/update',
220
217
  method: 'PATCH',
221
218
  body: parameters,
219
+ parameters,
220
+ hasRequiredParameters: true,
221
+ requiredParameterNames: ['device_id'],
222
222
  responseKey: undefined,
223
223
  options,
224
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,12 +166,13 @@ export class SeamHttpInstantKeys {
169
166
  parameters: InstantKeysDeleteParameters,
170
167
  options: InstantKeysDeleteOptions = {},
171
168
  ): InstantKeysDeleteRequest {
172
- assertValidRequestParameters(parameters, '/instant_keys/delete', true)
173
-
174
169
  return new SeamHttpRequest(this, {
175
170
  pathname: '/instant_keys/delete',
176
171
  method: 'DELETE',
177
172
  params: parameters,
173
+ parameters,
174
+ hasRequiredParameters: true,
175
+ requiredParameterNames: ['instant_key_id'],
178
176
  responseKey: undefined,
179
177
  options,
180
178
  })
@@ -187,12 +185,13 @@ export class SeamHttpInstantKeys {
187
185
  parameters: InstantKeysGetParameters,
188
186
  options: InstantKeysGetOptions = {},
189
187
  ): InstantKeysGetRequest {
190
- assertValidRequestParameters(parameters, '/instant_keys/get', true)
191
-
192
188
  return new SeamHttpRequest(this, {
193
189
  pathname: '/instant_keys/get',
194
190
  method: 'GET',
195
191
  params: parameters,
192
+ parameters,
193
+ hasRequiredParameters: true,
194
+ requiredParameterNames: [],
196
195
  responseKey: 'instant_key',
197
196
  options,
198
197
  })
@@ -205,12 +204,13 @@ export class SeamHttpInstantKeys {
205
204
  parameters?: InstantKeysListParameters,
206
205
  options: InstantKeysListOptions = {},
207
206
  ): InstantKeysListRequest {
208
- assertValidRequestParameters(parameters, '/instant_keys/list', false)
209
-
210
207
  return new SeamHttpRequest(this, {
211
208
  pathname: '/instant_keys/list',
212
209
  method: 'GET',
213
210
  params: parameters,
211
+ parameters,
212
+ hasRequiredParameters: false,
213
+ requiredParameterNames: [],
214
214
  responseKey: 'instant_keys',
215
215
  options,
216
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,12 +174,13 @@ export class SeamHttpLocks {
177
174
  parameters: LocksConfigureAutoLockParameters,
178
175
  options: LocksConfigureAutoLockOptions = {},
179
176
  ): LocksConfigureAutoLockRequest {
180
- assertValidRequestParameters(parameters, '/locks/configure_auto_lock', true)
181
-
182
177
  return new SeamHttpRequest(this, {
183
178
  pathname: '/locks/configure_auto_lock',
184
179
  method: 'POST',
185
180
  body: parameters,
181
+ parameters,
182
+ hasRequiredParameters: true,
183
+ requiredParameterNames: ['auto_lock_enabled', 'device_id'],
186
184
  responseKey: 'action_attempt',
187
185
  options,
188
186
  actionAttempts: SeamHttpActionAttempts.fromClient(this.client, {
@@ -200,12 +198,13 @@ export class SeamHttpLocks {
200
198
  parameters: LocksGetParameters,
201
199
  options: LocksGetOptions = {},
202
200
  ): LocksGetRequest {
203
- assertValidRequestParameters(parameters, '/locks/get', true)
204
-
205
201
  return new SeamHttpRequest(this, {
206
202
  pathname: '/locks/get',
207
203
  method: 'GET',
208
204
  params: parameters,
205
+ parameters,
206
+ hasRequiredParameters: true,
207
+ requiredParameterNames: [],
209
208
  responseKey: 'device',
210
209
  options,
211
210
  })
@@ -218,12 +217,13 @@ export class SeamHttpLocks {
218
217
  parameters?: LocksListParameters,
219
218
  options: LocksListOptions = {},
220
219
  ): LocksListRequest {
221
- assertValidRequestParameters(parameters, '/locks/list', false)
222
-
223
220
  return new SeamHttpRequest(this, {
224
221
  pathname: '/locks/list',
225
222
  method: 'POST',
226
223
  body: parameters,
224
+ parameters,
225
+ hasRequiredParameters: false,
226
+ requiredParameterNames: [],
227
227
  responseKey: 'devices',
228
228
  options,
229
229
  })
@@ -236,12 +236,13 @@ export class SeamHttpLocks {
236
236
  parameters: LocksLockDoorParameters,
237
237
  options: LocksLockDoorOptions = {},
238
238
  ): LocksLockDoorRequest {
239
- assertValidRequestParameters(parameters, '/locks/lock_door', true)
240
-
241
239
  return new SeamHttpRequest(this, {
242
240
  pathname: '/locks/lock_door',
243
241
  method: 'POST',
244
242
  body: parameters,
243
+ parameters,
244
+ hasRequiredParameters: true,
245
+ requiredParameterNames: ['device_id'],
245
246
  responseKey: 'action_attempt',
246
247
  options,
247
248
  actionAttempts: SeamHttpActionAttempts.fromClient(this.client, {
@@ -258,12 +259,13 @@ export class SeamHttpLocks {
258
259
  parameters: LocksUnlockDoorParameters,
259
260
  options: LocksUnlockDoorOptions = {},
260
261
  ): LocksUnlockDoorRequest {
261
- assertValidRequestParameters(parameters, '/locks/unlock_door', true)
262
-
263
262
  return new SeamHttpRequest(this, {
264
263
  pathname: '/locks/unlock_door',
265
264
  method: 'POST',
266
265
  body: parameters,
266
+ parameters,
267
+ hasRequiredParameters: true,
268
+ requiredParameterNames: ['device_id'],
267
269
  responseKey: 'action_attempt',
268
270
  options,
269
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,16 +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
- )
175
-
176
169
  return new SeamHttpRequest(this, {
177
170
  pathname: '/locks/simulate/keypad_code_entry',
178
171
  method: 'POST',
179
172
  body: parameters,
173
+ parameters,
174
+ hasRequiredParameters: true,
175
+ requiredParameterNames: ['code', 'device_id'],
180
176
  responseKey: 'action_attempt',
181
177
  options,
182
178
  actionAttempts: SeamHttpActionAttempts.fromClient(this.client, {
@@ -193,16 +189,13 @@ export class SeamHttpLocksSimulate {
193
189
  parameters: LocksSimulateManualLockViaKeypadParameters,
194
190
  options: LocksSimulateManualLockViaKeypadOptions = {},
195
191
  ): LocksSimulateManualLockViaKeypadRequest {
196
- assertValidRequestParameters(
197
- parameters,
198
- '/locks/simulate/manual_lock_via_keypad',
199
- true,
200
- )
201
-
202
192
  return new SeamHttpRequest(this, {
203
193
  pathname: '/locks/simulate/manual_lock_via_keypad',
204
194
  method: 'POST',
205
195
  body: parameters,
196
+ parameters,
197
+ hasRequiredParameters: true,
198
+ requiredParameterNames: ['device_id'],
206
199
  responseKey: 'action_attempt',
207
200
  options,
208
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
  })
@@ -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,16 +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
- )
177
-
178
171
  return new SeamHttpRequest(this, {
179
172
  pathname: '/noise_sensors/noise_thresholds/create',
180
173
  method: 'POST',
181
174
  body: parameters,
175
+ parameters,
176
+ hasRequiredParameters: true,
177
+ requiredParameterNames: ['device_id', 'ends_daily_at', 'starts_daily_at'],
182
178
  responseKey: 'noise_threshold',
183
179
  options,
184
180
  })
@@ -191,16 +187,13 @@ export class SeamHttpNoiseSensorsNoiseThresholds {
191
187
  parameters: NoiseSensorsNoiseThresholdsDeleteParameters,
192
188
  options: NoiseSensorsNoiseThresholdsDeleteOptions = {},
193
189
  ): NoiseSensorsNoiseThresholdsDeleteRequest {
194
- assertValidRequestParameters(
195
- parameters,
196
- '/noise_sensors/noise_thresholds/delete',
197
- true,
198
- )
199
-
200
190
  return new SeamHttpRequest(this, {
201
191
  pathname: '/noise_sensors/noise_thresholds/delete',
202
192
  method: 'DELETE',
203
193
  params: parameters,
194
+ parameters,
195
+ hasRequiredParameters: true,
196
+ requiredParameterNames: ['device_id', 'noise_threshold_id'],
204
197
  responseKey: undefined,
205
198
  options,
206
199
  })
@@ -213,16 +206,13 @@ export class SeamHttpNoiseSensorsNoiseThresholds {
213
206
  parameters: NoiseSensorsNoiseThresholdsGetParameters,
214
207
  options: NoiseSensorsNoiseThresholdsGetOptions = {},
215
208
  ): NoiseSensorsNoiseThresholdsGetRequest {
216
- assertValidRequestParameters(
217
- parameters,
218
- '/noise_sensors/noise_thresholds/get',
219
- true,
220
- )
221
-
222
209
  return new SeamHttpRequest(this, {
223
210
  pathname: '/noise_sensors/noise_thresholds/get',
224
211
  method: 'GET',
225
212
  params: parameters,
213
+ parameters,
214
+ hasRequiredParameters: true,
215
+ requiredParameterNames: ['noise_threshold_id'],
226
216
  responseKey: 'noise_threshold',
227
217
  options,
228
218
  })
@@ -235,16 +225,13 @@ export class SeamHttpNoiseSensorsNoiseThresholds {
235
225
  parameters: NoiseSensorsNoiseThresholdsListParameters,
236
226
  options: NoiseSensorsNoiseThresholdsListOptions = {},
237
227
  ): NoiseSensorsNoiseThresholdsListRequest {
238
- assertValidRequestParameters(
239
- parameters,
240
- '/noise_sensors/noise_thresholds/list',
241
- true,
242
- )
243
-
244
228
  return new SeamHttpRequest(this, {
245
229
  pathname: '/noise_sensors/noise_thresholds/list',
246
230
  method: 'GET',
247
231
  params: parameters,
232
+ parameters,
233
+ hasRequiredParameters: true,
234
+ requiredParameterNames: ['device_id'],
248
235
  responseKey: 'noise_thresholds',
249
236
  options,
250
237
  })
@@ -257,16 +244,13 @@ export class SeamHttpNoiseSensorsNoiseThresholds {
257
244
  parameters: NoiseSensorsNoiseThresholdsUpdateParameters,
258
245
  options: NoiseSensorsNoiseThresholdsUpdateOptions = {},
259
246
  ): NoiseSensorsNoiseThresholdsUpdateRequest {
260
- assertValidRequestParameters(
261
- parameters,
262
- '/noise_sensors/noise_thresholds/update',
263
- true,
264
- )
265
-
266
247
  return new SeamHttpRequest(this, {
267
248
  pathname: '/noise_sensors/noise_thresholds/update',
268
249
  method: 'PUT',
269
250
  body: parameters,
251
+ parameters,
252
+ hasRequiredParameters: true,
253
+ requiredParameterNames: ['device_id', 'noise_threshold_id'],
270
254
  responseKey: undefined,
271
255
  options,
272
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,16 +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
- )
173
-
174
167
  return new SeamHttpRequest(this, {
175
168
  pathname: '/noise_sensors/simulate/trigger_noise_threshold',
176
169
  method: 'POST',
177
170
  body: parameters,
171
+ parameters,
172
+ hasRequiredParameters: true,
173
+ requiredParameterNames: ['device_id'],
178
174
  responseKey: undefined,
179
175
  options,
180
176
  })