@seamapi/types 1.240.0 → 1.241.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 (62) hide show
  1. package/dist/connect.cjs +1347 -768
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +3569 -1426
  4. package/dist/devicedb.d.cts +30 -30
  5. package/lib/seam/connect/internal/schemas.d.ts +1 -1
  6. package/lib/seam/connect/internal/schemas.js +1 -1
  7. package/lib/seam/connect/internal/schemas.js.map +1 -1
  8. package/lib/seam/connect/model-types.d.ts +1 -1
  9. package/lib/seam/connect/models/access-codes/managed-access-code.d.ts +4 -4
  10. package/lib/seam/connect/models/access-codes/unmanaged-access-code.d.ts +1 -1
  11. package/lib/seam/connect/models/acs/acs-user.d.ts +231 -28
  12. package/lib/seam/connect/models/acs/acs-user.js +61 -13
  13. package/lib/seam/connect/models/acs/acs-user.js.map +1 -1
  14. package/lib/seam/connect/models/action-attempts/action-attempt.d.ts +78 -0
  15. package/lib/seam/connect/models/action-attempts/action-attempt.js +2 -0
  16. package/lib/seam/connect/models/action-attempts/action-attempt.js.map +1 -1
  17. package/lib/seam/connect/models/action-attempts/activate-climate-preset.d.ts +80 -0
  18. package/lib/seam/connect/models/action-attempts/activate-climate-preset.js +25 -0
  19. package/lib/seam/connect/models/action-attempts/activate-climate-preset.js.map +1 -0
  20. package/lib/seam/connect/models/devices/capability-properties/index.d.ts +185 -83
  21. package/lib/seam/connect/models/devices/capability-properties/thermostat.d.ts +185 -83
  22. package/lib/seam/connect/models/devices/capability-properties/thermostat.js +15 -6
  23. package/lib/seam/connect/models/devices/capability-properties/thermostat.js.map +1 -1
  24. package/lib/seam/connect/models/devices/device.d.ts +263 -119
  25. package/lib/seam/connect/models/devices/phone.d.ts +187 -85
  26. package/lib/seam/connect/models/devices/unmanaged-device.d.ts +185 -83
  27. package/lib/seam/connect/models/thermostats/climate-preset.d.ts +83 -0
  28. package/lib/seam/connect/models/thermostats/climate-preset.js +18 -0
  29. package/lib/seam/connect/models/thermostats/climate-preset.js.map +1 -0
  30. package/lib/seam/connect/models/thermostats/climate-setting-schedule.d.ts +18 -34
  31. package/lib/seam/connect/models/thermostats/climate-setting-schedule.js +8 -10
  32. package/lib/seam/connect/models/thermostats/climate-setting-schedule.js.map +1 -1
  33. package/lib/seam/connect/models/thermostats/index.d.ts +1 -1
  34. package/lib/seam/connect/models/thermostats/index.js +1 -1
  35. package/lib/seam/connect/models/thermostats/index.js.map +1 -1
  36. package/lib/seam/connect/openapi.d.ts +1000 -569
  37. package/lib/seam/connect/openapi.js +1188 -681
  38. package/lib/seam/connect/openapi.js.map +1 -1
  39. package/lib/seam/connect/route-types.d.ts +1738 -460
  40. package/lib/seam/connect/schemas.d.ts +1 -1
  41. package/lib/seam/connect/schemas.js +1 -1
  42. package/lib/seam/connect/schemas.js.map +1 -1
  43. package/lib/seam/devicedb/models/device-model.d.ts +8 -8
  44. package/lib/seam/devicedb/models/manufacturer.d.ts +2 -2
  45. package/lib/seam/devicedb/route-specs.d.ts +20 -20
  46. package/package.json +2 -2
  47. package/src/lib/seam/connect/internal/schemas.ts +2 -2
  48. package/src/lib/seam/connect/model-types.ts +1 -1
  49. package/src/lib/seam/connect/models/acs/acs-user.ts +86 -19
  50. package/src/lib/seam/connect/models/action-attempts/action-attempt.ts +2 -0
  51. package/src/lib/seam/connect/models/action-attempts/activate-climate-preset.ts +36 -0
  52. package/src/lib/seam/connect/models/devices/capability-properties/thermostat.ts +16 -6
  53. package/src/lib/seam/connect/models/thermostats/climate-preset.ts +24 -0
  54. package/src/lib/seam/connect/models/thermostats/climate-setting-schedule.ts +16 -19
  55. package/src/lib/seam/connect/models/thermostats/index.ts +1 -1
  56. package/src/lib/seam/connect/openapi.ts +1216 -670
  57. package/src/lib/seam/connect/route-types.ts +2030 -505
  58. package/src/lib/seam/connect/schemas.ts +1 -1
  59. package/lib/seam/connect/models/thermostats/climate-setting.d.ts +0 -24
  60. package/lib/seam/connect/models/thermostats/climate-setting.js +0 -11
  61. package/lib/seam/connect/models/thermostats/climate-setting.js.map +0 -1
  62. package/src/lib/seam/connect/models/thermostats/climate-setting.ts +0 -14
package/dist/connect.cjs CHANGED
@@ -19,7 +19,6 @@ __export(schemas_exports, {
19
19
  acs_user: () => acs_user,
20
20
  action_attempt: () => action_attempt,
21
21
  client_session: () => client_session,
22
- climate_setting_schedule: () => climate_setting_schedule,
23
22
  connect_webview: () => connect_webview,
24
23
  connected_account: () => connected_account,
25
24
  custom_metadata: () => custom_metadata,
@@ -27,6 +26,7 @@ __export(schemas_exports, {
27
26
  device_provider: () => device_provider,
28
27
  noise_threshold: () => noise_threshold,
29
28
  seam_event: () => seam_event,
29
+ thermostat_schedule: () => thermostat_schedule,
30
30
  unmanaged_access_code: () => unmanaged_access_code,
31
31
  unmanaged_acs_access_group: () => unmanaged_acs_access_group,
32
32
  unmanaged_acs_credential: () => unmanaged_acs_credential,
@@ -138,27 +138,35 @@ var lock_capability_properties = zod.z.object({
138
138
  var hvac_mode_setting = zod.z.enum(["off", "heat", "cool", "heat_cool"]);
139
139
  var fan_mode_setting = zod.z.enum(["auto", "on"]);
140
140
 
141
- // src/lib/seam/connect/models/thermostats/climate-setting.ts
142
- var climate_setting = zod.z.object({
143
- hvac_mode_setting,
141
+ // src/lib/seam/connect/models/thermostats/climate-preset.ts
142
+ var climate_preset = zod.z.object({
143
+ climate_preset_key: zod.z.string(),
144
+ can_edit: zod.z.boolean(),
145
+ can_delete: zod.z.boolean(),
146
+ name: zod.z.string().nullable(),
147
+ display_name: zod.z.string(),
148
+ fan_mode_setting: fan_mode_setting.optional(),
149
+ hvac_mode_setting: hvac_mode_setting.optional(),
144
150
  cooling_set_point_celsius: zod.z.number().optional(),
145
151
  heating_set_point_celsius: zod.z.number().optional(),
146
152
  cooling_set_point_fahrenheit: zod.z.number().optional(),
147
153
  heating_set_point_fahrenheit: zod.z.number().optional(),
148
154
  manual_override_allowed: zod.z.boolean()
149
155
  });
150
- var climate_setting_schedule = zod.z.object({
151
- climate_setting_schedule_id: zod.z.string().uuid(),
152
- schedule_type: zod.z.literal("time_bound"),
156
+ var climate_setting = climate_preset.partial();
157
+ var thermostat_schedule = zod.z.object({
158
+ thermostat_schedule_id: zod.z.string().uuid(),
153
159
  device_id: zod.z.string().uuid(),
154
160
  name: zod.z.string().optional(),
155
- schedule_starts_at: zod.z.string(),
156
- schedule_ends_at: zod.z.string(),
161
+ climate_preset_key: zod.z.string(),
162
+ max_override_period_minutes: zod.z.number().int().nonnegative().default(0),
163
+ starts_at: zod.z.string().datetime(),
164
+ ends_at: zod.z.string().datetime(),
157
165
  created_at: zod.z.string().datetime(),
158
166
  errors: zod.z.any().describe(
159
- 'Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues.'
167
+ 'Collection of errors associated with the thermostat schedule, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues.'
160
168
  )
161
- }).merge(climate_setting.partial());
169
+ });
162
170
 
163
171
  // src/lib/seam/connect/models/devices/capability-properties/thermostat.ts
164
172
  var thermostat_capability_properties = zod.z.object({
@@ -169,18 +177,27 @@ var thermostat_capability_properties = zod.z.object({
169
177
  is_heating: zod.z.boolean(),
170
178
  is_cooling: zod.z.boolean(),
171
179
  is_fan_running: zod.z.boolean(),
172
- fan_mode_setting,
180
+ fan_mode_setting: fan_mode_setting.describe(`
181
+ ---
182
+ deprecated: use current_climate_setting.fan_mode_setting instead.
183
+ ---
184
+ `),
173
185
  /**
174
186
  * this is true if the current thermostat settings differ that what is on seam, and `current_climate_setting.manual_override_allowed: true`
175
187
  */
176
188
  is_temporary_manual_override_active: zod.z.boolean(),
177
189
  /**
178
- * can be derived from `default_climate_setting`, or `active_climate_setting_schedule` if one is active
190
+ * can be derived from `fallback_climate_preset_key`, or `active_thermostat_schedule` if one is active
179
191
  */
180
192
  current_climate_setting: climate_setting,
181
- default_climate_setting: climate_setting,
182
- is_climate_setting_schedule_active: zod.z.boolean(),
183
- active_climate_setting_schedule: climate_setting_schedule,
193
+ default_climate_setting: climate_setting.describe(`
194
+ ---
195
+ deprecated: use fallback_climate_preset_key to specify a fallback climate preset instead.
196
+ ---
197
+ `),
198
+ available_climate_presets: zod.z.array(climate_preset),
199
+ fallback_climate_preset_key: zod.z.string().min(1).nullable().default(null),
200
+ active_thermostat_schedule: thermostat_schedule.nullable().default(null),
184
201
  min_cooling_set_point_celsius: zod.z.number(),
185
202
  min_cooling_set_point_fahrenheit: zod.z.number(),
186
203
  max_cooling_set_point_celsius: zod.z.number(),
@@ -1303,34 +1320,69 @@ var acs_user_external_type = zod.z.enum([
1303
1320
  "salto_site_user",
1304
1321
  "latch_user"
1305
1322
  ]);
1323
+ var common_acs_user_error = zod.z.object({
1324
+ created_at: zod.z.string().datetime().describe("Date and time at which Seam created the error."),
1325
+ message: zod.z.string().describe(
1326
+ "Detailed description of the error. Provides insights into the issue and potentially how to rectify it."
1327
+ )
1328
+ });
1329
+ var acs_users_user_deleted_externally = common_acs_user_error.extend({
1330
+ error_code: zod.z.literal("user_deleted_externally")
1331
+ }).describe(
1332
+ `Indicates that the user was deleted from the ACS system outside of Seam.`
1333
+ );
1334
+ var acs_users_salto_ks_subscription_limit_exceeded = common_acs_user_error.extend({
1335
+ error_code: zod.z.literal("salto_ks_subscription_limit_exceeded")
1336
+ }).describe(
1337
+ `Indicates that the user could not be subscribed on Salto KS because the subscription limit has been exceeded.`
1338
+ );
1339
+ var acs_users_salto_site_user_limit_reached = common_acs_user_error.extend({
1340
+ error_code: zod.z.literal("salto_site_user_limit_reached")
1341
+ });
1342
+ var acs_user_errors = zod.z.union([
1343
+ acs_users_user_deleted_externally,
1344
+ acs_users_salto_ks_subscription_limit_exceeded,
1345
+ acs_users_salto_site_user_limit_reached
1346
+ ]).describe("Error associated with the `acs_user`.");
1347
+ zod.z.object({
1348
+ user_deleted_externally: acs_users_user_deleted_externally.optional().nullable(),
1349
+ salto_ks_subscription_limit_exceeded: acs_users_salto_ks_subscription_limit_exceeded.optional().nullable(),
1350
+ salto_site_user_limit_reached: acs_users_salto_site_user_limit_reached.optional().nullable()
1351
+ });
1306
1352
  var common_acs_users_warning = zod.z.object({
1307
1353
  created_at: zod.z.string().datetime(),
1308
1354
  message: zod.z.string()
1309
1355
  });
1310
1356
  var acs_users_being_deleted = common_acs_users_warning.extend({
1311
1357
  warning_code: zod.z.literal("being_deleted")
1312
- });
1358
+ }).describe(
1359
+ `Indicates that the user is being deleted from the ACS system. This is a temporary state, and the user will be deleted shortly.`
1360
+ );
1313
1361
  var acs_users_salto_ks_user_not_subscribed = common_acs_users_warning.extend({
1314
1362
  warning_code: zod.z.literal("salto_ks_user_not_subscribed")
1315
- });
1316
- var acs_users_failed_to_update_acs_user_on_acs_system = common_acs_users_warning.extend({
1317
- warning_code: zod.z.literal("failed_to_update_acs_user_on_acs_system")
1318
- });
1363
+ }).describe(
1364
+ `Indicates that the user is not subscribed on the Salto KS, so they cannot unlock doors or perform any actions. This occur when the their access schedule hasn\u2019t started yet, or if their access schedule has ended, or if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.`
1365
+ );
1366
+ var acs_users_failed_to_update_on_acs_system = common_acs_users_warning.extend({
1367
+ warning_code: zod.z.literal("failed_to_update_on_acs_system")
1368
+ }).describe(
1369
+ `Indicates that the user was not updated on the ACS system. This is likely due to an internal unexpected error. Please contact Seam's support if you encounter this.`
1370
+ );
1319
1371
  var acs_users_salto_site_user_suspended = common_acs_users_warning.extend({
1320
1372
  warning_code: zod.z.literal("salto_site_user_suspended")
1321
1373
  });
1322
1374
  zod.z.object({
1323
1375
  being_deleted: acs_users_being_deleted.optional().nullable(),
1324
- failed_to_update_acs_user_on_acs_system: acs_users_failed_to_update_acs_user_on_acs_system.optional().nullable(),
1376
+ failed_to_update_on_acs_system: acs_users_failed_to_update_on_acs_system.optional().nullable(),
1325
1377
  salto_ks_user_not_subscribed: acs_users_salto_ks_user_not_subscribed.optional().nullable(),
1326
1378
  salto_site_user_suspended: acs_users_salto_site_user_suspended.optional().nullable()
1327
1379
  });
1328
- var acs_users_warning = zod.z.union([
1380
+ var acs_users_warnings = zod.z.union([
1329
1381
  acs_users_being_deleted,
1330
- acs_users_failed_to_update_acs_user_on_acs_system,
1382
+ acs_users_failed_to_update_on_acs_system,
1331
1383
  acs_users_salto_ks_user_not_subscribed,
1332
1384
  acs_users_salto_site_user_suspended
1333
- ]);
1385
+ ]).describe("Warning associated with the `acs_user`.");
1334
1386
  var user_fields = zod.z.object({
1335
1387
  full_name: zod.z.string().optional(),
1336
1388
  email: zod.z.string().email().optional().describe(`
@@ -1358,8 +1410,8 @@ var common_acs_user = zod.z.object({
1358
1410
  user_identity_phone_number: zod.z.string().nullable().optional(),
1359
1411
  latest_desired_state_synced_with_provider_at: zod.z.string().datetime().optional(),
1360
1412
  is_latest_desired_state_synced_with_provider: zod.z.boolean().optional(),
1361
- warnings: zod.z.array(acs_users_warning),
1362
- errors: zod.z.any()
1413
+ warnings: zod.z.array(acs_users_warnings),
1414
+ errors: zod.z.array(acs_user_errors)
1363
1415
  }).merge(user_fields);
1364
1416
  var acs_user = common_acs_user.merge(
1365
1417
  zod.z.object({
@@ -1394,23 +1446,42 @@ var common_failed_action_attempt = common_action_attempt.extend({
1394
1446
  result: zod.z.null()
1395
1447
  });
1396
1448
 
1397
- // src/lib/seam/connect/models/action-attempts/deprecated.ts
1449
+ // src/lib/seam/connect/models/action-attempts/activate-climate-preset.ts
1450
+ var action_type = zod.z.literal("ACTIVATE_CLIMATE_PRESET");
1398
1451
  var error = zod.z.object({
1399
1452
  type: zod.z.string(),
1400
1453
  message: zod.z.string()
1401
1454
  });
1402
- var result = zod.z.any();
1455
+ var result = zod.z.object({});
1456
+ var activate_climate_preset_action_attempt = zod.z.discriminatedUnion(
1457
+ "status",
1458
+ [
1459
+ common_pending_action_attempt.extend({
1460
+ action_type
1461
+ }).describe("Activating climate preset."),
1462
+ common_succeeded_action_attempt.extend({
1463
+ action_type,
1464
+ result
1465
+ }).describe("Activating climate preset succeeded."),
1466
+ common_failed_action_attempt.extend({ action_type, error }).describe("Activating climate preset failed.")
1467
+ ]
1468
+ );
1469
+ var error2 = zod.z.object({
1470
+ type: zod.z.string(),
1471
+ message: zod.z.string()
1472
+ });
1473
+ var result2 = zod.z.any();
1403
1474
  var sync_access_codes_action_attempt = zod.z.discriminatedUnion("status", [
1404
1475
  common_pending_action_attempt.extend({
1405
1476
  action_type: zod.z.literal("SYNC_ACCESS_CODES")
1406
1477
  }),
1407
1478
  common_succeeded_action_attempt.extend({
1408
1479
  action_type: zod.z.literal("SYNC_ACCESS_CODES"),
1409
- result
1480
+ result: result2
1410
1481
  }),
1411
1482
  common_failed_action_attempt.extend({
1412
1483
  action_type: zod.z.literal("SYNC_ACCESS_CODES"),
1413
- error
1484
+ error: error2
1414
1485
  })
1415
1486
  ]);
1416
1487
  var create_access_code_action_attempt = zod.z.discriminatedUnion("status", [
@@ -1419,11 +1490,11 @@ var create_access_code_action_attempt = zod.z.discriminatedUnion("status", [
1419
1490
  }),
1420
1491
  common_succeeded_action_attempt.extend({
1421
1492
  action_type: zod.z.literal("CREATE_ACCESS_CODE"),
1422
- result
1493
+ result: result2
1423
1494
  }),
1424
1495
  common_failed_action_attempt.extend({
1425
1496
  action_type: zod.z.literal("CREATE_ACCESS_CODE"),
1426
- error
1497
+ error: error2
1427
1498
  })
1428
1499
  ]);
1429
1500
  var delete_access_code_action_attempt = zod.z.discriminatedUnion("status", [
@@ -1432,11 +1503,11 @@ var delete_access_code_action_attempt = zod.z.discriminatedUnion("status", [
1432
1503
  }),
1433
1504
  common_succeeded_action_attempt.extend({
1434
1505
  action_type: zod.z.literal("DELETE_ACCESS_CODE"),
1435
- result
1506
+ result: result2
1436
1507
  }),
1437
1508
  common_failed_action_attempt.extend({
1438
1509
  action_type: zod.z.literal("DELETE_ACCESS_CODE"),
1439
- error
1510
+ error: error2
1440
1511
  })
1441
1512
  ]);
1442
1513
  var update_access_code_action_attempt = zod.z.discriminatedUnion("status", [
@@ -1445,11 +1516,11 @@ var update_access_code_action_attempt = zod.z.discriminatedUnion("status", [
1445
1516
  }),
1446
1517
  common_succeeded_action_attempt.extend({
1447
1518
  action_type: zod.z.literal("UPDATE_ACCESS_CODE"),
1448
- result
1519
+ result: result2
1449
1520
  }),
1450
1521
  common_failed_action_attempt.extend({
1451
1522
  action_type: zod.z.literal("UPDATE_ACCESS_CODE"),
1452
- error
1523
+ error: error2
1453
1524
  })
1454
1525
  ]);
1455
1526
  var create_noise_threshold_action_attempt = zod.z.discriminatedUnion("status", [
@@ -1458,11 +1529,11 @@ var create_noise_threshold_action_attempt = zod.z.discriminatedUnion("status", [
1458
1529
  }),
1459
1530
  common_succeeded_action_attempt.extend({
1460
1531
  action_type: zod.z.literal("CREATE_NOISE_THRESHOLD"),
1461
- result
1532
+ result: result2
1462
1533
  }),
1463
1534
  common_failed_action_attempt.extend({
1464
1535
  action_type: zod.z.literal("CREATE_NOISE_THRESHOLD"),
1465
- error
1536
+ error: error2
1466
1537
  })
1467
1538
  ]);
1468
1539
  var delete_noise_threshold_action_attempt = zod.z.discriminatedUnion("status", [
@@ -1471,11 +1542,11 @@ var delete_noise_threshold_action_attempt = zod.z.discriminatedUnion("status", [
1471
1542
  }),
1472
1543
  common_succeeded_action_attempt.extend({
1473
1544
  action_type: zod.z.literal("DELETE_NOISE_THRESHOLD"),
1474
- result
1545
+ result: result2
1475
1546
  }),
1476
1547
  common_failed_action_attempt.extend({
1477
1548
  action_type: zod.z.literal("DELETE_NOISE_THRESHOLD"),
1478
- error
1549
+ error: error2
1479
1550
  })
1480
1551
  ]);
1481
1552
  var update_noise_threshold_action_attempt = zod.z.discriminatedUnion("status", [
@@ -1484,11 +1555,11 @@ var update_noise_threshold_action_attempt = zod.z.discriminatedUnion("status", [
1484
1555
  }),
1485
1556
  common_succeeded_action_attempt.extend({
1486
1557
  action_type: zod.z.literal("UPDATE_NOISE_THRESHOLD"),
1487
- result
1558
+ result: result2
1488
1559
  }),
1489
1560
  common_failed_action_attempt.extend({
1490
1561
  action_type: zod.z.literal("UPDATE_NOISE_THRESHOLD"),
1491
- error
1562
+ error: error2
1492
1563
  })
1493
1564
  ]);
1494
1565
  var deprecated_action_attempts = [
@@ -1500,142 +1571,142 @@ var deprecated_action_attempts = [
1500
1571
  ...delete_noise_threshold_action_attempt.options,
1501
1572
  ...update_noise_threshold_action_attempt.options
1502
1573
  ];
1503
- var action_type = zod.z.literal("LOCK_DOOR");
1504
- var error2 = zod.z.object({
1574
+ var action_type2 = zod.z.literal("LOCK_DOOR");
1575
+ var error3 = zod.z.object({
1505
1576
  type: zod.z.string(),
1506
1577
  message: zod.z.string()
1507
1578
  });
1508
- var result2 = zod.z.object({});
1579
+ var result3 = zod.z.object({});
1509
1580
  var lock_door_action_attempt = zod.z.discriminatedUnion("status", [
1510
1581
  common_pending_action_attempt.extend({
1511
- action_type
1582
+ action_type: action_type2
1512
1583
  }).describe("Locking door."),
1513
1584
  common_succeeded_action_attempt.extend({
1514
- action_type,
1515
- result: result2
1585
+ action_type: action_type2,
1586
+ result: result3
1516
1587
  }).describe("Locking door succeeded."),
1517
- common_failed_action_attempt.extend({ action_type, error: error2 }).describe("Locking door failed.")
1588
+ common_failed_action_attempt.extend({ action_type: action_type2, error: error3 }).describe("Locking door failed.")
1518
1589
  ]);
1519
- var action_type2 = zod.z.literal("RESET_SANDBOX_WORKSPACE");
1520
- var error3 = zod.z.object({
1590
+ var action_type3 = zod.z.literal("RESET_SANDBOX_WORKSPACE");
1591
+ var error4 = zod.z.object({
1521
1592
  type: zod.z.string(),
1522
1593
  message: zod.z.string()
1523
1594
  });
1524
- var result3 = zod.z.object({});
1595
+ var result4 = zod.z.object({});
1525
1596
  var reset_sandbox_workspace_action_attempt = zod.z.discriminatedUnion(
1526
1597
  "status",
1527
1598
  [
1528
1599
  common_pending_action_attempt.extend({
1529
- action_type: action_type2
1600
+ action_type: action_type3
1530
1601
  }).describe("Resetting sandbox workspace."),
1531
1602
  common_succeeded_action_attempt.extend({
1532
- action_type: action_type2,
1533
- result: result3
1603
+ action_type: action_type3,
1604
+ result: result4
1534
1605
  }).describe("Resetting sandbox workspace succeeded."),
1535
1606
  common_failed_action_attempt.extend({
1536
- action_type: action_type2,
1537
- error: error3
1607
+ action_type: action_type3,
1608
+ error: error4
1538
1609
  }).describe("Resetting sandbox workspace failed.")
1539
1610
  ]
1540
1611
  );
1541
- var action_type3 = zod.z.literal("SET_COOL");
1542
- var error4 = zod.z.object({
1612
+ var action_type4 = zod.z.literal("SET_COOL");
1613
+ var error5 = zod.z.object({
1543
1614
  type: zod.z.string(),
1544
1615
  message: zod.z.string()
1545
1616
  });
1546
- var result4 = zod.z.object({});
1617
+ var result5 = zod.z.object({});
1547
1618
  var set_cool_action_attempt = zod.z.discriminatedUnion("status", [
1548
1619
  common_pending_action_attempt.extend({
1549
- action_type: action_type3
1620
+ action_type: action_type4
1550
1621
  }).describe("Setting HVAC to cool."),
1551
1622
  common_succeeded_action_attempt.extend({
1552
- action_type: action_type3,
1553
- result: result4
1623
+ action_type: action_type4,
1624
+ result: result5
1554
1625
  }).describe("Setting HVAC to cool succeeded."),
1555
- common_failed_action_attempt.extend({ action_type: action_type3, error: error4 }).describe("Setting HVAC to cool failed.")
1626
+ common_failed_action_attempt.extend({ action_type: action_type4, error: error5 }).describe("Setting HVAC to cool failed.")
1556
1627
  ]);
1557
- var action_type4 = zod.z.literal("SET_FAN_MODE");
1558
- var error5 = zod.z.object({
1628
+ var action_type5 = zod.z.literal("SET_FAN_MODE");
1629
+ var error6 = zod.z.object({
1559
1630
  type: zod.z.string(),
1560
1631
  message: zod.z.string()
1561
1632
  });
1562
- var result5 = zod.z.object({});
1633
+ var result6 = zod.z.object({});
1563
1634
  var set_fan_mode_action_attempt = zod.z.discriminatedUnion("status", [
1564
1635
  common_pending_action_attempt.extend({
1565
- action_type: action_type4
1636
+ action_type: action_type5
1566
1637
  }).describe("Setting fan mode."),
1567
1638
  common_succeeded_action_attempt.extend({
1568
- action_type: action_type4,
1569
- result: result5
1639
+ action_type: action_type5,
1640
+ result: result6
1570
1641
  }).describe("Setting fan mode succeeded."),
1571
- common_failed_action_attempt.extend({ action_type: action_type4, error: error5 }).describe("Setting fan mode failed.")
1642
+ common_failed_action_attempt.extend({ action_type: action_type5, error: error6 }).describe("Setting fan mode failed.")
1572
1643
  ]);
1573
- var action_type5 = zod.z.literal("SET_HEAT");
1574
- var error6 = zod.z.object({
1644
+ var action_type6 = zod.z.literal("SET_HEAT");
1645
+ var error7 = zod.z.object({
1575
1646
  type: zod.z.string(),
1576
1647
  message: zod.z.string()
1577
1648
  });
1578
- var result6 = zod.z.object({});
1649
+ var result7 = zod.z.object({});
1579
1650
  var set_heat_action_attempt = zod.z.discriminatedUnion("status", [
1580
1651
  common_pending_action_attempt.extend({
1581
- action_type: action_type5
1652
+ action_type: action_type6
1582
1653
  }).describe("Setting HVAC to heat mode."),
1583
1654
  common_succeeded_action_attempt.extend({
1584
- action_type: action_type5,
1585
- result: result6
1655
+ action_type: action_type6,
1656
+ result: result7
1586
1657
  }).describe("Setting HVAC to heat mode succeeded."),
1587
- common_failed_action_attempt.extend({ action_type: action_type5, error: error6 }).describe("Setting HVAC to heat mode failed.")
1658
+ common_failed_action_attempt.extend({ action_type: action_type6, error: error7 }).describe("Setting HVAC to heat mode failed.")
1588
1659
  ]);
1589
- var action_type6 = zod.z.literal("SET_HEAT_COOL");
1590
- var error7 = zod.z.object({
1660
+ var action_type7 = zod.z.literal("SET_HEAT_COOL");
1661
+ var error8 = zod.z.object({
1591
1662
  type: zod.z.string(),
1592
1663
  message: zod.z.string()
1593
1664
  });
1594
- var result7 = zod.z.object({});
1665
+ var result8 = zod.z.object({});
1595
1666
  var set_heat_cool_action_attempt = zod.z.discriminatedUnion("status", [
1596
1667
  common_pending_action_attempt.extend({
1597
- action_type: action_type6
1668
+ action_type: action_type7
1598
1669
  }).describe("Setting HVAC to heat-cool mode."),
1599
1670
  common_succeeded_action_attempt.extend({
1600
- action_type: action_type6,
1601
- result: result7
1671
+ action_type: action_type7,
1672
+ result: result8
1602
1673
  }).describe("Setting HVAC to heat-cool mode succeeded."),
1603
- common_failed_action_attempt.extend({ action_type: action_type6, error: error7 }).describe("Setting heat-cool mode failed.")
1674
+ common_failed_action_attempt.extend({ action_type: action_type7, error: error8 }).describe("Setting heat-cool mode failed.")
1604
1675
  ]);
1605
- var action_type7 = zod.z.literal("SET_THERMOSTAT_OFF");
1606
- var error8 = zod.z.object({
1676
+ var action_type8 = zod.z.literal("SET_THERMOSTAT_OFF");
1677
+ var error9 = zod.z.object({
1607
1678
  type: zod.z.string(),
1608
1679
  message: zod.z.string()
1609
1680
  });
1610
- var result8 = zod.z.object({});
1681
+ var result9 = zod.z.object({});
1611
1682
  var set_thermostat_off_action_attempt = zod.z.discriminatedUnion(
1612
1683
  "status",
1613
1684
  [
1614
1685
  common_pending_action_attempt.extend({
1615
- action_type: action_type7
1686
+ action_type: action_type8
1616
1687
  }).describe("Turning HVAC off."),
1617
1688
  common_succeeded_action_attempt.extend({
1618
- action_type: action_type7,
1619
- result: result8
1689
+ action_type: action_type8,
1690
+ result: result9
1620
1691
  }).describe("Turning HVAC off succeeded."),
1621
- common_failed_action_attempt.extend({ action_type: action_type7, error: error8 }).describe("Turning HVAC off failed.")
1692
+ common_failed_action_attempt.extend({ action_type: action_type8, error: error9 }).describe("Turning HVAC off failed.")
1622
1693
  ]
1623
1694
  );
1624
- var action_type8 = zod.z.literal("UNLOCK_DOOR");
1625
- var error9 = zod.z.object({
1695
+ var action_type9 = zod.z.literal("UNLOCK_DOOR");
1696
+ var error10 = zod.z.object({
1626
1697
  type: zod.z.string(),
1627
1698
  message: zod.z.string()
1628
1699
  });
1629
- var result9 = zod.z.object({});
1700
+ var result10 = zod.z.object({});
1630
1701
  var unlock_door_action_attempt = zod.z.discriminatedUnion("status", [
1631
1702
  common_pending_action_attempt.extend({
1632
- action_type: action_type8
1703
+ action_type: action_type9
1633
1704
  }).describe("Unlocking door."),
1634
1705
  common_succeeded_action_attempt.extend({
1635
- action_type: action_type8,
1636
- result: result9
1706
+ action_type: action_type9,
1707
+ result: result10
1637
1708
  }).describe("Unlocking door succeeded."),
1638
- common_failed_action_attempt.extend({ action_type: action_type8, error: error9 }).describe("Unlocking door failed.")
1709
+ common_failed_action_attempt.extend({ action_type: action_type9, error: error10 }).describe("Unlocking door failed.")
1639
1710
  ]);
1640
1711
 
1641
1712
  // src/lib/seam/connect/models/action-attempts/action-attempt.ts
@@ -1648,6 +1719,7 @@ var action_attempt = zod.z.union([
1648
1719
  ...set_heat_cool_action_attempt.options,
1649
1720
  ...set_fan_mode_action_attempt.options,
1650
1721
  ...set_thermostat_off_action_attempt.options,
1722
+ ...activate_climate_preset_action_attempt.options,
1651
1723
  ...deprecated_action_attempts
1652
1724
  ]);
1653
1725
  var client_session = zod.z.object({
@@ -2936,7 +3008,73 @@ var openapi_default = {
2936
3008
  "x-deprecated": "use email_address."
2937
3009
  },
2938
3010
  email_address: { format: "email", type: "string" },
2939
- errors: {},
3011
+ errors: {
3012
+ items: {
3013
+ description: "Error associated with the `acs_user`.",
3014
+ oneOf: [
3015
+ {
3016
+ description: "Indicates that the user was deleted from the ACS system outside of Seam.",
3017
+ properties: {
3018
+ created_at: {
3019
+ description: "Date and time at which Seam created the error.",
3020
+ format: "date-time",
3021
+ type: "string"
3022
+ },
3023
+ error_code: {
3024
+ enum: ["user_deleted_externally"],
3025
+ type: "string"
3026
+ },
3027
+ message: {
3028
+ description: "Detailed description of the error. Provides insights into the issue and potentially how to rectify it.",
3029
+ type: "string"
3030
+ }
3031
+ },
3032
+ required: ["created_at", "message", "error_code"],
3033
+ type: "object"
3034
+ },
3035
+ {
3036
+ description: "Indicates that the user could not be subscribed on Salto KS because the subscription limit has been exceeded.",
3037
+ properties: {
3038
+ created_at: {
3039
+ description: "Date and time at which Seam created the error.",
3040
+ format: "date-time",
3041
+ type: "string"
3042
+ },
3043
+ error_code: {
3044
+ enum: ["salto_ks_subscription_limit_exceeded"],
3045
+ type: "string"
3046
+ },
3047
+ message: {
3048
+ description: "Detailed description of the error. Provides insights into the issue and potentially how to rectify it.",
3049
+ type: "string"
3050
+ }
3051
+ },
3052
+ required: ["created_at", "message", "error_code"],
3053
+ type: "object"
3054
+ },
3055
+ {
3056
+ properties: {
3057
+ created_at: {
3058
+ description: "Date and time at which Seam created the error.",
3059
+ format: "date-time",
3060
+ type: "string"
3061
+ },
3062
+ error_code: {
3063
+ enum: ["salto_site_user_limit_reached"],
3064
+ type: "string"
3065
+ },
3066
+ message: {
3067
+ description: "Detailed description of the error. Provides insights into the issue and potentially how to rectify it.",
3068
+ type: "string"
3069
+ }
3070
+ },
3071
+ required: ["created_at", "message", "error_code"],
3072
+ type: "object"
3073
+ }
3074
+ ]
3075
+ },
3076
+ type: "array"
3077
+ },
2940
3078
  external_type: {
2941
3079
  enum: [
2942
3080
  "pti_user",
@@ -2964,8 +3102,10 @@ var openapi_default = {
2964
3102
  user_identity_phone_number: { nullable: true, type: "string" },
2965
3103
  warnings: {
2966
3104
  items: {
3105
+ description: "Warning associated with the `acs_user`.",
2967
3106
  oneOf: [
2968
3107
  {
3108
+ description: "Indicates that the user is being deleted from the ACS system. This is a temporary state, and the user will be deleted shortly.",
2969
3109
  properties: {
2970
3110
  created_at: { format: "date-time", type: "string" },
2971
3111
  message: { type: "string" },
@@ -2975,11 +3115,12 @@ var openapi_default = {
2975
3115
  type: "object"
2976
3116
  },
2977
3117
  {
3118
+ description: "Indicates that the user was not updated on the ACS system. This is likely due to an internal unexpected error. Please contact Seam's support if you encounter this.",
2978
3119
  properties: {
2979
3120
  created_at: { format: "date-time", type: "string" },
2980
3121
  message: { type: "string" },
2981
3122
  warning_code: {
2982
- enum: ["failed_to_update_acs_user_on_acs_system"],
3123
+ enum: ["failed_to_update_on_acs_system"],
2983
3124
  type: "string"
2984
3125
  }
2985
3126
  },
@@ -2987,6 +3128,7 @@ var openapi_default = {
2987
3128
  type: "object"
2988
3129
  },
2989
3130
  {
3131
+ description: "Indicates that the user is not subscribed on the Salto KS, so they cannot unlock doors or perform any actions. This occur when the their access schedule hasn\u2019t started yet, or if their access schedule has ended, or if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.",
2990
3132
  properties: {
2991
3133
  created_at: { format: "date-time", type: "string" },
2992
3134
  message: { type: "string" },
@@ -3024,6 +3166,7 @@ var openapi_default = {
3024
3166
  "display_name",
3025
3167
  "is_suspended",
3026
3168
  "warnings",
3169
+ "errors",
3027
3170
  "is_managed"
3028
3171
  ],
3029
3172
  type: "object"
@@ -3647,6 +3790,91 @@ var openapi_default = {
3647
3790
  ],
3648
3791
  type: "object"
3649
3792
  },
3793
+ {
3794
+ description: "Activating climate preset.",
3795
+ properties: {
3796
+ action_attempt_id: {
3797
+ description: "The ID of the action attempt.",
3798
+ format: "uuid",
3799
+ type: "string",
3800
+ "x-title": "Action Attempt ID"
3801
+ },
3802
+ action_type: {
3803
+ enum: ["ACTIVATE_CLIMATE_PRESET"],
3804
+ type: "string"
3805
+ },
3806
+ error: { nullable: true },
3807
+ result: { nullable: true },
3808
+ status: { enum: ["pending"], type: "string" }
3809
+ },
3810
+ required: [
3811
+ "action_attempt_id",
3812
+ "status",
3813
+ "result",
3814
+ "error",
3815
+ "action_type"
3816
+ ],
3817
+ type: "object"
3818
+ },
3819
+ {
3820
+ description: "Activating climate preset succeeded.",
3821
+ properties: {
3822
+ action_attempt_id: {
3823
+ description: "The ID of the action attempt.",
3824
+ format: "uuid",
3825
+ type: "string",
3826
+ "x-title": "Action Attempt ID"
3827
+ },
3828
+ action_type: {
3829
+ enum: ["ACTIVATE_CLIMATE_PRESET"],
3830
+ type: "string"
3831
+ },
3832
+ error: { nullable: true },
3833
+ result: { properties: {}, type: "object" },
3834
+ status: { enum: ["success"], type: "string" }
3835
+ },
3836
+ required: [
3837
+ "action_attempt_id",
3838
+ "status",
3839
+ "error",
3840
+ "action_type",
3841
+ "result"
3842
+ ],
3843
+ type: "object"
3844
+ },
3845
+ {
3846
+ description: "Activating climate preset failed.",
3847
+ properties: {
3848
+ action_attempt_id: {
3849
+ description: "The ID of the action attempt.",
3850
+ format: "uuid",
3851
+ type: "string",
3852
+ "x-title": "Action Attempt ID"
3853
+ },
3854
+ action_type: {
3855
+ enum: ["ACTIVATE_CLIMATE_PRESET"],
3856
+ type: "string"
3857
+ },
3858
+ error: {
3859
+ properties: {
3860
+ message: { type: "string" },
3861
+ type: { type: "string" }
3862
+ },
3863
+ required: ["type", "message"],
3864
+ type: "object"
3865
+ },
3866
+ result: { nullable: true },
3867
+ status: { enum: ["error"], type: "string" }
3868
+ },
3869
+ required: [
3870
+ "action_attempt_id",
3871
+ "status",
3872
+ "result",
3873
+ "action_type",
3874
+ "error"
3875
+ ],
3876
+ type: "object"
3877
+ },
3650
3878
  {
3651
3879
  properties: {
3652
3880
  action_attempt_id: {
@@ -4152,38 +4380,6 @@ var openapi_default = {
4152
4380
  ],
4153
4381
  type: "object"
4154
4382
  },
4155
- climate_setting_schedule: {
4156
- properties: {
4157
- climate_setting_schedule_id: { format: "uuid", type: "string" },
4158
- cooling_set_point_celsius: { format: "float", type: "number" },
4159
- cooling_set_point_fahrenheit: { format: "float", type: "number" },
4160
- created_at: { format: "date-time", type: "string" },
4161
- device_id: { format: "uuid", type: "string" },
4162
- errors: {
4163
- description: 'Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues.'
4164
- },
4165
- heating_set_point_celsius: { format: "float", type: "number" },
4166
- heating_set_point_fahrenheit: { format: "float", type: "number" },
4167
- hvac_mode_setting: {
4168
- enum: ["off", "heat", "cool", "heat_cool"],
4169
- type: "string"
4170
- },
4171
- manual_override_allowed: { type: "boolean" },
4172
- name: { type: "string" },
4173
- schedule_ends_at: { type: "string" },
4174
- schedule_starts_at: { type: "string" },
4175
- schedule_type: { enum: ["time_bound"], type: "string" }
4176
- },
4177
- required: [
4178
- "climate_setting_schedule_id",
4179
- "schedule_type",
4180
- "device_id",
4181
- "schedule_starts_at",
4182
- "schedule_ends_at",
4183
- "created_at"
4184
- ],
4185
- type: "object"
4186
- },
4187
4383
  connect_webview: {
4188
4384
  properties: {
4189
4385
  accepted_devices: {
@@ -5188,56 +5384,85 @@ var openapi_default = {
5188
5384
  },
5189
5385
  {
5190
5386
  properties: {
5191
- active_climate_setting_schedule: {
5387
+ active_thermostat_schedule: {
5388
+ default: null,
5389
+ nullable: true,
5192
5390
  properties: {
5193
- climate_setting_schedule_id: {
5194
- format: "uuid",
5195
- type: "string"
5196
- },
5197
- cooling_set_point_celsius: {
5198
- format: "float",
5199
- type: "number"
5200
- },
5201
- cooling_set_point_fahrenheit: {
5202
- format: "float",
5203
- type: "number"
5204
- },
5391
+ climate_preset_key: { type: "string" },
5205
5392
  created_at: { format: "date-time", type: "string" },
5206
5393
  device_id: { format: "uuid", type: "string" },
5394
+ ends_at: { format: "date-time", type: "string" },
5207
5395
  errors: {
5208
- description: 'Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues.'
5209
- },
5210
- heating_set_point_celsius: {
5211
- format: "float",
5212
- type: "number"
5213
- },
5214
- heating_set_point_fahrenheit: {
5215
- format: "float",
5216
- type: "number"
5396
+ description: 'Collection of errors associated with the thermostat schedule, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues.'
5217
5397
  },
5218
- hvac_mode_setting: {
5219
- enum: ["off", "heat", "cool", "heat_cool"],
5220
- type: "string"
5398
+ max_override_period_minutes: {
5399
+ default: 0,
5400
+ minimum: 0,
5401
+ type: "integer"
5221
5402
  },
5222
- manual_override_allowed: { type: "boolean" },
5223
5403
  name: { type: "string" },
5224
- schedule_ends_at: { type: "string" },
5225
- schedule_starts_at: { type: "string" },
5226
- schedule_type: {
5227
- enum: ["time_bound"],
5404
+ starts_at: { format: "date-time", type: "string" },
5405
+ thermostat_schedule_id: {
5406
+ format: "uuid",
5228
5407
  type: "string"
5229
5408
  }
5230
5409
  },
5231
5410
  required: [
5232
- "climate_setting_schedule_id",
5233
- "schedule_type",
5411
+ "thermostat_schedule_id",
5234
5412
  "device_id",
5235
- "schedule_starts_at",
5236
- "schedule_ends_at",
5413
+ "climate_preset_key",
5414
+ "starts_at",
5415
+ "ends_at",
5237
5416
  "created_at"
5238
5417
  ],
5239
5418
  type: "object"
5240
5419
  },
5420
+ available_climate_presets: {
5421
+ items: {
5422
+ properties: {
5423
+ can_delete: { type: "boolean" },
5424
+ can_edit: { type: "boolean" },
5425
+ climate_preset_key: { type: "string" },
5426
+ cooling_set_point_celsius: {
5427
+ format: "float",
5428
+ type: "number"
5429
+ },
5430
+ cooling_set_point_fahrenheit: {
5431
+ format: "float",
5432
+ type: "number"
5433
+ },
5434
+ display_name: { type: "string" },
5435
+ fan_mode_setting: {
5436
+ enum: ["auto", "on"],
5437
+ type: "string"
5438
+ },
5439
+ heating_set_point_celsius: {
5440
+ format: "float",
5441
+ type: "number"
5442
+ },
5443
+ heating_set_point_fahrenheit: {
5444
+ format: "float",
5445
+ type: "number"
5446
+ },
5447
+ hvac_mode_setting: {
5448
+ enum: ["off", "heat", "cool", "heat_cool"],
5449
+ type: "string"
5450
+ },
5451
+ manual_override_allowed: { type: "boolean" },
5452
+ name: { nullable: true, type: "string" }
5453
+ },
5454
+ required: [
5455
+ "climate_preset_key",
5456
+ "can_edit",
5457
+ "can_delete",
5458
+ "name",
5459
+ "display_name",
5460
+ "manual_override_allowed"
5461
+ ],
5462
+ type: "object"
5463
+ },
5464
+ type: "array"
5465
+ },
5241
5466
  available_hvac_mode_settings: {
5242
5467
  items: {
5243
5468
  enum: ["off", "heat", "cool", "heat_cool"],
@@ -5247,6 +5472,9 @@ var openapi_default = {
5247
5472
  },
5248
5473
  current_climate_setting: {
5249
5474
  properties: {
5475
+ can_delete: { type: "boolean" },
5476
+ can_edit: { type: "boolean" },
5477
+ climate_preset_key: { type: "string" },
5250
5478
  cooling_set_point_celsius: {
5251
5479
  format: "float",
5252
5480
  type: "number"
@@ -5255,6 +5483,11 @@ var openapi_default = {
5255
5483
  format: "float",
5256
5484
  type: "number"
5257
5485
  },
5486
+ display_name: { type: "string" },
5487
+ fan_mode_setting: {
5488
+ enum: ["auto", "on"],
5489
+ type: "string"
5490
+ },
5258
5491
  heating_set_point_celsius: {
5259
5492
  format: "float",
5260
5493
  type: "number"
@@ -5267,16 +5500,17 @@ var openapi_default = {
5267
5500
  enum: ["off", "heat", "cool", "heat_cool"],
5268
5501
  type: "string"
5269
5502
  },
5270
- manual_override_allowed: { type: "boolean" }
5503
+ manual_override_allowed: { type: "boolean" },
5504
+ name: { nullable: true, type: "string" }
5271
5505
  },
5272
- required: [
5273
- "hvac_mode_setting",
5274
- "manual_override_allowed"
5275
- ],
5276
5506
  type: "object"
5277
5507
  },
5278
5508
  default_climate_setting: {
5509
+ deprecated: true,
5279
5510
  properties: {
5511
+ can_delete: { type: "boolean" },
5512
+ can_edit: { type: "boolean" },
5513
+ climate_preset_key: { type: "string" },
5280
5514
  cooling_set_point_celsius: {
5281
5515
  format: "float",
5282
5516
  type: "number"
@@ -5285,6 +5519,11 @@ var openapi_default = {
5285
5519
  format: "float",
5286
5520
  type: "number"
5287
5521
  },
5522
+ display_name: { type: "string" },
5523
+ fan_mode_setting: {
5524
+ enum: ["auto", "on"],
5525
+ type: "string"
5526
+ },
5288
5527
  heating_set_point_celsius: {
5289
5528
  format: "float",
5290
5529
  type: "number"
@@ -5297,19 +5536,24 @@ var openapi_default = {
5297
5536
  enum: ["off", "heat", "cool", "heat_cool"],
5298
5537
  type: "string"
5299
5538
  },
5300
- manual_override_allowed: { type: "boolean" }
5539
+ manual_override_allowed: { type: "boolean" },
5540
+ name: { nullable: true, type: "string" }
5301
5541
  },
5302
- required: [
5303
- "hvac_mode_setting",
5304
- "manual_override_allowed"
5305
- ],
5306
- type: "object"
5542
+ type: "object",
5543
+ "x-deprecated": "use fallback_climate_preset_key to specify a fallback climate preset instead."
5544
+ },
5545
+ fallback_climate_preset_key: {
5546
+ default: null,
5547
+ minLength: 1,
5548
+ nullable: true,
5549
+ type: "string"
5307
5550
  },
5308
5551
  fan_mode_setting: {
5552
+ deprecated: true,
5309
5553
  enum: ["auto", "on"],
5310
- type: "string"
5554
+ type: "string",
5555
+ "x-deprecated": "use current_climate_setting.fan_mode_setting instead."
5311
5556
  },
5312
- is_climate_setting_schedule_active: { type: "boolean" },
5313
5557
  is_cooling: { type: "boolean" },
5314
5558
  is_fan_running: { type: "boolean" },
5315
5559
  is_heating: { type: "boolean" },
@@ -5733,6 +5977,34 @@ var openapi_default = {
5733
5977
  required: ["service", "status", "description"],
5734
5978
  type: "object"
5735
5979
  },
5980
+ thermostat_schedule: {
5981
+ properties: {
5982
+ climate_preset_key: { type: "string" },
5983
+ created_at: { format: "date-time", type: "string" },
5984
+ device_id: { format: "uuid", type: "string" },
5985
+ ends_at: { format: "date-time", type: "string" },
5986
+ errors: {
5987
+ description: 'Collection of errors associated with the thermostat schedule, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues.'
5988
+ },
5989
+ max_override_period_minutes: {
5990
+ default: 0,
5991
+ minimum: 0,
5992
+ type: "integer"
5993
+ },
5994
+ name: { type: "string" },
5995
+ starts_at: { format: "date-time", type: "string" },
5996
+ thermostat_schedule_id: { format: "uuid", type: "string" }
5997
+ },
5998
+ required: [
5999
+ "thermostat_schedule_id",
6000
+ "device_id",
6001
+ "climate_preset_key",
6002
+ "starts_at",
6003
+ "ends_at",
6004
+ "created_at"
6005
+ ],
6006
+ type: "object"
6007
+ },
5736
6008
  unmanaged_access_code: {
5737
6009
  properties: {
5738
6010
  access_code_id: {
@@ -9827,12 +10099,7 @@ var openapi_default = {
9827
10099
  acs_user: {
9828
10100
  properties: {
9829
10101
  access_schedule: {
9830
- properties: {
9831
- ends_at: { format: "date-time", type: "string" },
9832
- starts_at: { format: "date-time", type: "string" }
9833
- },
9834
- required: ["starts_at", "ends_at"],
9835
- type: "object"
10102
+ $ref: "#/components/schemas/thermostat_schedule"
9836
10103
  },
9837
10104
  acs_system_id: { format: "uuid", type: "string" },
9838
10105
  acs_user_id: { format: "uuid", type: "string" },
@@ -9845,7 +10112,87 @@ var openapi_default = {
9845
10112
  "x-deprecated": "use email_address."
9846
10113
  },
9847
10114
  email_address: { format: "email", type: "string" },
9848
- errors: { $ref: "#/components/schemas/access_code" },
10115
+ errors: {
10116
+ items: {
10117
+ description: "Error associated with the `acs_user`.",
10118
+ oneOf: [
10119
+ {
10120
+ description: "Indicates that the user was deleted from the ACS system outside of Seam.",
10121
+ properties: {
10122
+ created_at: {
10123
+ description: "Date and time at which Seam created the error.",
10124
+ format: "date-time",
10125
+ type: "string"
10126
+ },
10127
+ error_code: {
10128
+ enum: ["user_deleted_externally"],
10129
+ type: "string"
10130
+ },
10131
+ message: {
10132
+ description: "Detailed description of the error. Provides insights into the issue and potentially how to rectify it.",
10133
+ type: "string"
10134
+ }
10135
+ },
10136
+ required: [
10137
+ "created_at",
10138
+ "message",
10139
+ "error_code"
10140
+ ],
10141
+ type: "object"
10142
+ },
10143
+ {
10144
+ description: "Indicates that the user could not be subscribed on Salto KS because the subscription limit has been exceeded.",
10145
+ properties: {
10146
+ created_at: {
10147
+ description: "Date and time at which Seam created the error.",
10148
+ format: "date-time",
10149
+ type: "string"
10150
+ },
10151
+ error_code: {
10152
+ enum: [
10153
+ "salto_ks_subscription_limit_exceeded"
10154
+ ],
10155
+ type: "string"
10156
+ },
10157
+ message: {
10158
+ description: "Detailed description of the error. Provides insights into the issue and potentially how to rectify it.",
10159
+ type: "string"
10160
+ }
10161
+ },
10162
+ required: [
10163
+ "created_at",
10164
+ "message",
10165
+ "error_code"
10166
+ ],
10167
+ type: "object"
10168
+ },
10169
+ {
10170
+ properties: {
10171
+ created_at: {
10172
+ description: "Date and time at which Seam created the error.",
10173
+ format: "date-time",
10174
+ type: "string"
10175
+ },
10176
+ error_code: {
10177
+ enum: ["salto_site_user_limit_reached"],
10178
+ type: "string"
10179
+ },
10180
+ message: {
10181
+ description: "Detailed description of the error. Provides insights into the issue and potentially how to rectify it.",
10182
+ type: "string"
10183
+ }
10184
+ },
10185
+ required: [
10186
+ "created_at",
10187
+ "message",
10188
+ "error_code"
10189
+ ],
10190
+ type: "object"
10191
+ }
10192
+ ]
10193
+ },
10194
+ type: "array"
10195
+ },
9849
10196
  external_type: {
9850
10197
  enum: [
9851
10198
  "pti_user",
@@ -9884,8 +10231,10 @@ var openapi_default = {
9884
10231
  },
9885
10232
  warnings: {
9886
10233
  items: {
10234
+ description: "Warning associated with the `acs_user`.",
9887
10235
  oneOf: [
9888
10236
  {
10237
+ description: "Indicates that the user is being deleted from the ACS system. This is a temporary state, and the user will be deleted shortly.",
9889
10238
  properties: {
9890
10239
  created_at: {
9891
10240
  format: "date-time",
@@ -9905,6 +10254,7 @@ var openapi_default = {
9905
10254
  type: "object"
9906
10255
  },
9907
10256
  {
10257
+ description: "Indicates that the user was not updated on the ACS system. This is likely due to an internal unexpected error. Please contact Seam's support if you encounter this.",
9908
10258
  properties: {
9909
10259
  created_at: {
9910
10260
  format: "date-time",
@@ -9912,9 +10262,7 @@ var openapi_default = {
9912
10262
  },
9913
10263
  message: { type: "string" },
9914
10264
  warning_code: {
9915
- enum: [
9916
- "failed_to_update_acs_user_on_acs_system"
9917
- ],
10265
+ enum: ["failed_to_update_on_acs_system"],
9918
10266
  type: "string"
9919
10267
  }
9920
10268
  },
@@ -9926,6 +10274,7 @@ var openapi_default = {
9926
10274
  type: "object"
9927
10275
  },
9928
10276
  {
10277
+ description: "Indicates that the user is not subscribed on the Salto KS, so they cannot unlock doors or perform any actions. This occur when the their access schedule hasn\u2019t started yet, or if their access schedule has ended, or if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.",
9929
10278
  properties: {
9930
10279
  created_at: {
9931
10280
  format: "date-time",
@@ -9977,6 +10326,7 @@ var openapi_default = {
9977
10326
  "display_name",
9978
10327
  "is_suspended",
9979
10328
  "warnings",
10329
+ "errors",
9980
10330
  "is_managed"
9981
10331
  ],
9982
10332
  type: "object"
@@ -10034,15 +10384,7 @@ var openapi_default = {
10034
10384
  items: {
10035
10385
  properties: {
10036
10386
  access_schedule: {
10037
- properties: {
10038
- ends_at: { format: "date-time", type: "string" },
10039
- starts_at: {
10040
- format: "date-time",
10041
- type: "string"
10042
- }
10043
- },
10044
- required: ["starts_at", "ends_at"],
10045
- type: "object"
10387
+ $ref: "#/components/schemas/thermostat_schedule"
10046
10388
  },
10047
10389
  acs_system_id: { format: "uuid", type: "string" },
10048
10390
  acs_user_id: { format: "uuid", type: "string" },
@@ -10055,7 +10397,87 @@ var openapi_default = {
10055
10397
  "x-deprecated": "use email_address."
10056
10398
  },
10057
10399
  email_address: { format: "email", type: "string" },
10058
- errors: { $ref: "#/components/schemas/access_code" },
10400
+ errors: {
10401
+ items: {
10402
+ description: "Error associated with the `acs_user`.",
10403
+ oneOf: [
10404
+ {
10405
+ description: "Indicates that the user was deleted from the ACS system outside of Seam.",
10406
+ properties: {
10407
+ created_at: {
10408
+ description: "Date and time at which Seam created the error.",
10409
+ format: "date-time",
10410
+ type: "string"
10411
+ },
10412
+ error_code: {
10413
+ enum: ["user_deleted_externally"],
10414
+ type: "string"
10415
+ },
10416
+ message: {
10417
+ description: "Detailed description of the error. Provides insights into the issue and potentially how to rectify it.",
10418
+ type: "string"
10419
+ }
10420
+ },
10421
+ required: [
10422
+ "created_at",
10423
+ "message",
10424
+ "error_code"
10425
+ ],
10426
+ type: "object"
10427
+ },
10428
+ {
10429
+ description: "Indicates that the user could not be subscribed on Salto KS because the subscription limit has been exceeded.",
10430
+ properties: {
10431
+ created_at: {
10432
+ description: "Date and time at which Seam created the error.",
10433
+ format: "date-time",
10434
+ type: "string"
10435
+ },
10436
+ error_code: {
10437
+ enum: [
10438
+ "salto_ks_subscription_limit_exceeded"
10439
+ ],
10440
+ type: "string"
10441
+ },
10442
+ message: {
10443
+ description: "Detailed description of the error. Provides insights into the issue and potentially how to rectify it.",
10444
+ type: "string"
10445
+ }
10446
+ },
10447
+ required: [
10448
+ "created_at",
10449
+ "message",
10450
+ "error_code"
10451
+ ],
10452
+ type: "object"
10453
+ },
10454
+ {
10455
+ properties: {
10456
+ created_at: {
10457
+ description: "Date and time at which Seam created the error.",
10458
+ format: "date-time",
10459
+ type: "string"
10460
+ },
10461
+ error_code: {
10462
+ enum: ["salto_site_user_limit_reached"],
10463
+ type: "string"
10464
+ },
10465
+ message: {
10466
+ description: "Detailed description of the error. Provides insights into the issue and potentially how to rectify it.",
10467
+ type: "string"
10468
+ }
10469
+ },
10470
+ required: [
10471
+ "created_at",
10472
+ "message",
10473
+ "error_code"
10474
+ ],
10475
+ type: "object"
10476
+ }
10477
+ ]
10478
+ },
10479
+ type: "array"
10480
+ },
10059
10481
  external_type: {
10060
10482
  enum: [
10061
10483
  "pti_user",
@@ -10094,8 +10516,10 @@ var openapi_default = {
10094
10516
  },
10095
10517
  warnings: {
10096
10518
  items: {
10519
+ description: "Warning associated with the `acs_user`.",
10097
10520
  oneOf: [
10098
10521
  {
10522
+ description: "Indicates that the user is being deleted from the ACS system. This is a temporary state, and the user will be deleted shortly.",
10099
10523
  properties: {
10100
10524
  created_at: {
10101
10525
  format: "date-time",
@@ -10115,6 +10539,7 @@ var openapi_default = {
10115
10539
  type: "object"
10116
10540
  },
10117
10541
  {
10542
+ description: "Indicates that the user was not updated on the ACS system. This is likely due to an internal unexpected error. Please contact Seam's support if you encounter this.",
10118
10543
  properties: {
10119
10544
  created_at: {
10120
10545
  format: "date-time",
@@ -10122,9 +10547,7 @@ var openapi_default = {
10122
10547
  },
10123
10548
  message: { type: "string" },
10124
10549
  warning_code: {
10125
- enum: [
10126
- "failed_to_update_acs_user_on_acs_system"
10127
- ],
10550
+ enum: ["failed_to_update_on_acs_system"],
10128
10551
  type: "string"
10129
10552
  }
10130
10553
  },
@@ -10136,6 +10559,7 @@ var openapi_default = {
10136
10559
  type: "object"
10137
10560
  },
10138
10561
  {
10562
+ description: "Indicates that the user is not subscribed on the Salto KS, so they cannot unlock doors or perform any actions. This occur when the their access schedule hasn\u2019t started yet, or if their access schedule has ended, or if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.",
10139
10563
  properties: {
10140
10564
  created_at: {
10141
10565
  format: "date-time",
@@ -10187,6 +10611,7 @@ var openapi_default = {
10187
10611
  "display_name",
10188
10612
  "is_suspended",
10189
10613
  "warnings",
10614
+ "errors",
10190
10615
  "is_managed"
10191
10616
  ],
10192
10617
  type: "object"
@@ -14122,50 +14547,18 @@ var openapi_default = {
14122
14547
  "x-fern-sdk-return-value": "phone"
14123
14548
  }
14124
14549
  },
14125
- "/thermostats/climate_setting_schedules/create": {
14550
+ "/thermostats/activate_climate_preset": {
14126
14551
  post: {
14127
- operationId: "thermostatsClimateSettingSchedulesCreatePost",
14552
+ operationId: "thermostatsActivateClimatePresetPost",
14128
14553
  requestBody: {
14129
14554
  content: {
14130
14555
  "application/json": {
14131
14556
  schema: {
14132
14557
  properties: {
14133
- cooling_set_point_celsius: {
14134
- format: "float",
14135
- type: "number"
14136
- },
14137
- cooling_set_point_fahrenheit: {
14138
- format: "float",
14139
- type: "number"
14140
- },
14141
- device_id: { type: "string" },
14142
- heating_set_point_celsius: {
14143
- format: "float",
14144
- type: "number"
14145
- },
14146
- heating_set_point_fahrenheit: {
14147
- format: "float",
14148
- type: "number"
14149
- },
14150
- hvac_mode_setting: {
14151
- enum: ["off", "heat", "cool", "heat_cool"],
14152
- type: "string"
14153
- },
14154
- manual_override_allowed: { type: "boolean" },
14155
- name: { type: "string" },
14156
- schedule_ends_at: { type: "string" },
14157
- schedule_starts_at: { type: "string" },
14158
- schedule_type: {
14159
- default: "time_bound",
14160
- enum: ["time_bound"],
14161
- type: "string"
14162
- }
14558
+ climate_preset_key: { type: "string" },
14559
+ device_id: { format: "uuid", type: "string" }
14163
14560
  },
14164
- required: [
14165
- "device_id",
14166
- "schedule_starts_at",
14167
- "schedule_ends_at"
14168
- ],
14561
+ required: ["device_id", "climate_preset_key"],
14169
14562
  type: "object"
14170
14563
  }
14171
14564
  }
@@ -14177,12 +14570,12 @@ var openapi_default = {
14177
14570
  "application/json": {
14178
14571
  schema: {
14179
14572
  properties: {
14180
- climate_setting_schedule: {
14181
- $ref: "#/components/schemas/climate_setting_schedule"
14573
+ action_attempt: {
14574
+ $ref: "#/components/schemas/action_attempt"
14182
14575
  },
14183
14576
  ok: { type: "boolean" }
14184
14577
  },
14185
- required: ["climate_setting_schedule", "ok"],
14578
+ required: ["action_attempt", "ok"],
14186
14579
  type: "object"
14187
14580
  }
14188
14581
  }
@@ -14193,77 +14586,37 @@ var openapi_default = {
14193
14586
  401: { description: "Unauthorized" }
14194
14587
  },
14195
14588
  security: [
14196
- { client_session: [] },
14197
14589
  { pat_with_workspace: [] },
14198
14590
  { console_session: [] },
14199
14591
  { api_key: [] }
14200
14592
  ],
14201
- summary: "/thermostats/climate_setting_schedules/create",
14593
+ summary: "/thermostats/activate_climate_preset",
14202
14594
  tags: ["/thermostats"],
14203
- "x-fern-sdk-group-name": ["thermostats", "climate_setting_schedules"],
14204
- "x-fern-sdk-method-name": "create",
14205
- "x-fern-sdk-return-value": "climate_setting_schedule"
14595
+ "x-fern-sdk-group-name": ["thermostats"],
14596
+ "x-fern-sdk-method-name": "activate_climate_preset",
14597
+ "x-fern-sdk-return-value": "action_attempt"
14206
14598
  }
14207
14599
  },
14208
- "/thermostats/climate_setting_schedules/delete": {
14600
+ "/thermostats/cool": {
14209
14601
  post: {
14210
- operationId: "thermostatsClimateSettingSchedulesDeletePost",
14602
+ operationId: "thermostatsCoolPost",
14211
14603
  requestBody: {
14212
14604
  content: {
14213
14605
  "application/json": {
14214
14606
  schema: {
14215
14607
  properties: {
14216
- climate_setting_schedule_id: {
14217
- format: "uuid",
14218
- type: "string"
14219
- }
14608
+ cooling_set_point_celsius: {
14609
+ format: "float",
14610
+ type: "number"
14611
+ },
14612
+ cooling_set_point_fahrenheit: {
14613
+ format: "float",
14614
+ type: "number"
14615
+ },
14616
+ device_id: { format: "uuid", type: "string" },
14617
+ sync: { default: false, type: "boolean" }
14220
14618
  },
14221
- required: ["climate_setting_schedule_id"],
14222
- type: "object"
14223
- }
14224
- }
14225
- }
14226
- },
14227
- responses: {
14228
- 200: {
14229
- content: {
14230
- "application/json": {
14231
- schema: {
14232
- properties: { ok: { type: "boolean" } },
14233
- required: ["ok"],
14234
- type: "object"
14235
- }
14236
- }
14237
- },
14238
- description: "OK"
14239
- },
14240
- 400: { description: "Bad Request" },
14241
- 401: { description: "Unauthorized" }
14242
- },
14243
- security: [
14244
- { client_session: [] },
14245
- { pat_with_workspace: [] },
14246
- { console_session: [] },
14247
- { api_key: [] }
14248
- ],
14249
- summary: "/thermostats/climate_setting_schedules/delete",
14250
- tags: ["/thermostats"],
14251
- "x-fern-sdk-group-name": ["thermostats", "climate_setting_schedules"],
14252
- "x-fern-sdk-method-name": "delete"
14253
- },
14254
- put: {
14255
- operationId: "thermostatsClimateSettingSchedulesDeletePut",
14256
- requestBody: {
14257
- content: {
14258
- "application/json": {
14259
- schema: {
14260
- properties: {
14261
- climate_setting_schedule_id: {
14262
- format: "uuid",
14263
- type: "string"
14264
- }
14265
- },
14266
- required: ["climate_setting_schedule_id"],
14619
+ required: ["device_id"],
14267
14620
  type: "object"
14268
14621
  }
14269
14622
  }
@@ -14274,8 +14627,13 @@ var openapi_default = {
14274
14627
  content: {
14275
14628
  "application/json": {
14276
14629
  schema: {
14277
- properties: { ok: { type: "boolean" } },
14278
- required: ["ok"],
14630
+ properties: {
14631
+ action_attempt: {
14632
+ $ref: "#/components/schemas/action_attempt"
14633
+ },
14634
+ ok: { type: "boolean" }
14635
+ },
14636
+ required: ["action_attempt", "ok"],
14279
14637
  type: "object"
14280
14638
  }
14281
14639
  }
@@ -14291,25 +14649,53 @@ var openapi_default = {
14291
14649
  { console_session: [] },
14292
14650
  { api_key: [] }
14293
14651
  ],
14294
- summary: "/thermostats/climate_setting_schedules/delete",
14652
+ summary: "/thermostats/cool",
14295
14653
  tags: ["/thermostats"],
14296
- "x-fern-ignore": true
14654
+ "x-fern-sdk-group-name": ["thermostats"],
14655
+ "x-fern-sdk-method-name": "cool",
14656
+ "x-fern-sdk-return-value": "action_attempt"
14297
14657
  }
14298
14658
  },
14299
- "/thermostats/climate_setting_schedules/get": {
14659
+ "/thermostats/create_climate_preset": {
14300
14660
  post: {
14301
- operationId: "thermostatsClimateSettingSchedulesGetPost",
14661
+ operationId: "thermostatsCreateClimatePresetPost",
14302
14662
  requestBody: {
14303
14663
  content: {
14304
14664
  "application/json": {
14305
14665
  schema: {
14306
14666
  properties: {
14307
- climate_setting_schedule_id: {
14308
- format: "uuid",
14667
+ climate_preset_key: { type: "string" },
14668
+ cooling_set_point_celsius: {
14669
+ format: "float",
14670
+ type: "number"
14671
+ },
14672
+ cooling_set_point_fahrenheit: {
14673
+ format: "float",
14674
+ type: "number"
14675
+ },
14676
+ device_id: { format: "uuid", type: "string" },
14677
+ fan_mode_setting: { enum: ["auto", "on"], type: "string" },
14678
+ heating_set_point_celsius: {
14679
+ format: "float",
14680
+ type: "number"
14681
+ },
14682
+ heating_set_point_fahrenheit: {
14683
+ format: "float",
14684
+ type: "number"
14685
+ },
14686
+ hvac_mode_setting: {
14687
+ enum: ["off", "heat", "cool", "heat_cool"],
14309
14688
  type: "string"
14310
14689
  },
14311
- device_id: { format: "uuid", type: "string" }
14690
+ manual_override_allowed: { type: "boolean" },
14691
+ name: { nullable: true, type: "string" }
14312
14692
  },
14693
+ required: [
14694
+ "device_id",
14695
+ "climate_preset_key",
14696
+ "name",
14697
+ "manual_override_allowed"
14698
+ ],
14313
14699
  type: "object"
14314
14700
  }
14315
14701
  }
@@ -14321,12 +14707,52 @@ var openapi_default = {
14321
14707
  "application/json": {
14322
14708
  schema: {
14323
14709
  properties: {
14324
- climate_setting_schedule: {
14325
- $ref: "#/components/schemas/climate_setting_schedule"
14710
+ climate_preset: {
14711
+ properties: {
14712
+ can_delete: { type: "boolean" },
14713
+ can_edit: { type: "boolean" },
14714
+ climate_preset_key: { type: "string" },
14715
+ cooling_set_point_celsius: {
14716
+ format: "float",
14717
+ type: "number"
14718
+ },
14719
+ cooling_set_point_fahrenheit: {
14720
+ format: "float",
14721
+ type: "number"
14722
+ },
14723
+ display_name: { type: "string" },
14724
+ fan_mode_setting: {
14725
+ enum: ["auto", "on"],
14726
+ type: "string"
14727
+ },
14728
+ heating_set_point_celsius: {
14729
+ format: "float",
14730
+ type: "number"
14731
+ },
14732
+ heating_set_point_fahrenheit: {
14733
+ format: "float",
14734
+ type: "number"
14735
+ },
14736
+ hvac_mode_setting: {
14737
+ enum: ["off", "heat", "cool", "heat_cool"],
14738
+ type: "string"
14739
+ },
14740
+ manual_override_allowed: { type: "boolean" },
14741
+ name: { nullable: true, type: "string" }
14742
+ },
14743
+ required: [
14744
+ "climate_preset_key",
14745
+ "can_edit",
14746
+ "can_delete",
14747
+ "name",
14748
+ "display_name",
14749
+ "manual_override_allowed"
14750
+ ],
14751
+ type: "object"
14326
14752
  },
14327
14753
  ok: { type: "boolean" }
14328
14754
  },
14329
- required: ["climate_setting_schedule", "ok"],
14755
+ required: ["climate_preset", "ok"],
14330
14756
  type: "object"
14331
14757
  }
14332
14758
  }
@@ -14337,30 +14763,28 @@ var openapi_default = {
14337
14763
  401: { description: "Unauthorized" }
14338
14764
  },
14339
14765
  security: [
14340
- { client_session: [] },
14341
14766
  { pat_with_workspace: [] },
14342
14767
  { console_session: [] },
14343
14768
  { api_key: [] }
14344
14769
  ],
14345
- summary: "/thermostats/climate_setting_schedules/get",
14770
+ summary: "/thermostats/create_climate_preset",
14346
14771
  tags: ["/thermostats"],
14347
- "x-fern-sdk-group-name": ["thermostats", "climate_setting_schedules"],
14348
- "x-fern-sdk-method-name": "get",
14349
- "x-fern-sdk-return-value": "climate_setting_schedule"
14772
+ "x-fern-sdk-group-name": ["thermostats"],
14773
+ "x-fern-sdk-method-name": "create_climate_preset"
14350
14774
  }
14351
14775
  },
14352
- "/thermostats/climate_setting_schedules/list": {
14776
+ "/thermostats/delete_climate_preset": {
14353
14777
  post: {
14354
- operationId: "thermostatsClimateSettingSchedulesListPost",
14778
+ operationId: "thermostatsDeleteClimatePresetPost",
14355
14779
  requestBody: {
14356
14780
  content: {
14357
14781
  "application/json": {
14358
14782
  schema: {
14359
14783
  properties: {
14360
- device_id: { format: "uuid", type: "string" },
14361
- user_identifier_key: { type: "string" }
14784
+ climate_preset_key: { type: "string" },
14785
+ device_id: { format: "uuid", type: "string" }
14362
14786
  },
14363
- required: ["device_id"],
14787
+ required: ["device_id", "climate_preset_key"],
14364
14788
  type: "object"
14365
14789
  }
14366
14790
  }
@@ -14371,16 +14795,8 @@ var openapi_default = {
14371
14795
  content: {
14372
14796
  "application/json": {
14373
14797
  schema: {
14374
- properties: {
14375
- climate_setting_schedules: {
14376
- items: {
14377
- $ref: "#/components/schemas/climate_setting_schedule"
14378
- },
14379
- type: "array"
14380
- },
14381
- ok: { type: "boolean" }
14382
- },
14383
- required: ["climate_setting_schedules", "ok"],
14798
+ properties: { ok: { type: "boolean" } },
14799
+ required: ["ok"],
14384
14800
  type: "object"
14385
14801
  }
14386
14802
  }
@@ -14391,61 +14807,27 @@ var openapi_default = {
14391
14807
  401: { description: "Unauthorized" }
14392
14808
  },
14393
14809
  security: [
14394
- { api_key: [] },
14395
- { client_session: [] },
14396
14810
  { pat_with_workspace: [] },
14397
- { console_session: [] }
14811
+ { console_session: [] },
14812
+ { api_key: [] }
14398
14813
  ],
14399
- summary: "/thermostats/climate_setting_schedules/list",
14814
+ summary: "/thermostats/delete_climate_preset",
14400
14815
  tags: ["/thermostats"],
14401
- "x-fern-sdk-group-name": ["thermostats", "climate_setting_schedules"],
14402
- "x-fern-sdk-method-name": "list",
14403
- "x-fern-sdk-return-value": "climate_setting_schedules"
14816
+ "x-fern-sdk-group-name": ["thermostats"],
14817
+ "x-fern-sdk-method-name": "delete_climate_preset"
14404
14818
  }
14405
14819
  },
14406
- "/thermostats/climate_setting_schedules/update": {
14407
- patch: {
14408
- operationId: "thermostatsClimateSettingSchedulesUpdatePatch",
14820
+ "/thermostats/get": {
14821
+ post: {
14822
+ operationId: "thermostatsGetPost",
14409
14823
  requestBody: {
14410
14824
  content: {
14411
14825
  "application/json": {
14412
14826
  schema: {
14413
14827
  properties: {
14414
- climate_setting_schedule_id: {
14415
- format: "uuid",
14416
- type: "string"
14417
- },
14418
- cooling_set_point_celsius: {
14419
- format: "float",
14420
- type: "number"
14421
- },
14422
- cooling_set_point_fahrenheit: {
14423
- format: "float",
14424
- type: "number"
14425
- },
14426
- heating_set_point_celsius: {
14427
- format: "float",
14428
- type: "number"
14429
- },
14430
- heating_set_point_fahrenheit: {
14431
- format: "float",
14432
- type: "number"
14433
- },
14434
- hvac_mode_setting: {
14435
- enum: ["off", "heat", "cool", "heat_cool"],
14436
- type: "string"
14437
- },
14438
- manual_override_allowed: { type: "boolean" },
14439
- name: { type: "string" },
14440
- schedule_ends_at: { type: "string" },
14441
- schedule_starts_at: { type: "string" },
14442
- schedule_type: {
14443
- default: "time_bound",
14444
- enum: ["time_bound"],
14445
- type: "string"
14446
- }
14828
+ device_id: { format: "uuid", type: "string" },
14829
+ name: { type: "string" }
14447
14830
  },
14448
- required: ["climate_setting_schedule_id"],
14449
14831
  type: "object"
14450
14832
  }
14451
14833
  }
@@ -14457,12 +14839,10 @@ var openapi_default = {
14457
14839
  "application/json": {
14458
14840
  schema: {
14459
14841
  properties: {
14460
- climate_setting_schedule: {
14461
- $ref: "#/components/schemas/climate_setting_schedule"
14462
- },
14463
- ok: { type: "boolean" }
14842
+ ok: { type: "boolean" },
14843
+ thermostat: { $ref: "#/components/schemas/device" }
14464
14844
  },
14465
- required: ["climate_setting_schedule", "ok"],
14845
+ required: ["thermostat", "ok"],
14466
14846
  type: "object"
14467
14847
  }
14468
14848
  }
@@ -14478,29 +14858,23 @@ var openapi_default = {
14478
14858
  { console_session: [] },
14479
14859
  { api_key: [] }
14480
14860
  ],
14481
- summary: "/thermostats/climate_setting_schedules/update",
14861
+ summary: "/thermostats/get",
14482
14862
  tags: ["/thermostats"],
14483
- "x-fern-ignore": true
14484
- },
14863
+ "x-deprecated": "Use `/devices/get` instead.",
14864
+ "x-fern-sdk-group-name": ["thermostats"],
14865
+ "x-fern-sdk-method-name": "get",
14866
+ "x-fern-sdk-return-value": "thermostat"
14867
+ }
14868
+ },
14869
+ "/thermostats/heat": {
14485
14870
  post: {
14486
- operationId: "thermostatsClimateSettingSchedulesUpdatePost",
14871
+ operationId: "thermostatsHeatPost",
14487
14872
  requestBody: {
14488
14873
  content: {
14489
14874
  "application/json": {
14490
14875
  schema: {
14491
14876
  properties: {
14492
- climate_setting_schedule_id: {
14493
- format: "uuid",
14494
- type: "string"
14495
- },
14496
- cooling_set_point_celsius: {
14497
- format: "float",
14498
- type: "number"
14499
- },
14500
- cooling_set_point_fahrenheit: {
14501
- format: "float",
14502
- type: "number"
14503
- },
14877
+ device_id: { format: "uuid", type: "string" },
14504
14878
  heating_set_point_celsius: {
14505
14879
  format: "float",
14506
14880
  type: "number"
@@ -14509,21 +14883,9 @@ var openapi_default = {
14509
14883
  format: "float",
14510
14884
  type: "number"
14511
14885
  },
14512
- hvac_mode_setting: {
14513
- enum: ["off", "heat", "cool", "heat_cool"],
14514
- type: "string"
14515
- },
14516
- manual_override_allowed: { type: "boolean" },
14517
- name: { type: "string" },
14518
- schedule_ends_at: { type: "string" },
14519
- schedule_starts_at: { type: "string" },
14520
- schedule_type: {
14521
- default: "time_bound",
14522
- enum: ["time_bound"],
14523
- type: "string"
14524
- }
14886
+ sync: { default: false, type: "boolean" }
14525
14887
  },
14526
- required: ["climate_setting_schedule_id"],
14888
+ required: ["device_id"],
14527
14889
  type: "object"
14528
14890
  }
14529
14891
  }
@@ -14535,12 +14897,12 @@ var openapi_default = {
14535
14897
  "application/json": {
14536
14898
  schema: {
14537
14899
  properties: {
14538
- climate_setting_schedule: {
14539
- $ref: "#/components/schemas/climate_setting_schedule"
14900
+ action_attempt: {
14901
+ $ref: "#/components/schemas/action_attempt"
14540
14902
  },
14541
14903
  ok: { type: "boolean" }
14542
14904
  },
14543
- required: ["climate_setting_schedule", "ok"],
14905
+ required: ["action_attempt", "ok"],
14544
14906
  type: "object"
14545
14907
  }
14546
14908
  }
@@ -14556,22 +14918,21 @@ var openapi_default = {
14556
14918
  { console_session: [] },
14557
14919
  { api_key: [] }
14558
14920
  ],
14559
- summary: "/thermostats/climate_setting_schedules/update",
14921
+ summary: "/thermostats/heat",
14560
14922
  tags: ["/thermostats"],
14561
- "x-fern-sdk-group-name": ["thermostats", "climate_setting_schedules"],
14562
- "x-fern-sdk-method-name": "update"
14563
- },
14564
- put: {
14565
- operationId: "thermostatsClimateSettingSchedulesUpdatePut",
14923
+ "x-fern-sdk-group-name": ["thermostats"],
14924
+ "x-fern-sdk-method-name": "heat",
14925
+ "x-fern-sdk-return-value": "action_attempt"
14926
+ }
14927
+ },
14928
+ "/thermostats/heat_cool": {
14929
+ post: {
14930
+ operationId: "thermostatsHeatCoolPost",
14566
14931
  requestBody: {
14567
14932
  content: {
14568
14933
  "application/json": {
14569
14934
  schema: {
14570
14935
  properties: {
14571
- climate_setting_schedule_id: {
14572
- format: "uuid",
14573
- type: "string"
14574
- },
14575
14936
  cooling_set_point_celsius: {
14576
14937
  format: "float",
14577
14938
  type: "number"
@@ -14580,6 +14941,7 @@ var openapi_default = {
14580
14941
  format: "float",
14581
14942
  type: "number"
14582
14943
  },
14944
+ device_id: { format: "uuid", type: "string" },
14583
14945
  heating_set_point_celsius: {
14584
14946
  format: "float",
14585
14947
  type: "number"
@@ -14588,21 +14950,9 @@ var openapi_default = {
14588
14950
  format: "float",
14589
14951
  type: "number"
14590
14952
  },
14591
- hvac_mode_setting: {
14592
- enum: ["off", "heat", "cool", "heat_cool"],
14593
- type: "string"
14594
- },
14595
- manual_override_allowed: { type: "boolean" },
14596
- name: { type: "string" },
14597
- schedule_ends_at: { type: "string" },
14598
- schedule_starts_at: { type: "string" },
14599
- schedule_type: {
14600
- default: "time_bound",
14601
- enum: ["time_bound"],
14602
- type: "string"
14603
- }
14953
+ sync: { default: false, type: "boolean" }
14604
14954
  },
14605
- required: ["climate_setting_schedule_id"],
14955
+ required: ["device_id"],
14606
14956
  type: "object"
14607
14957
  }
14608
14958
  }
@@ -14614,12 +14964,12 @@ var openapi_default = {
14614
14964
  "application/json": {
14615
14965
  schema: {
14616
14966
  properties: {
14617
- climate_setting_schedule: {
14618
- $ref: "#/components/schemas/climate_setting_schedule"
14967
+ action_attempt: {
14968
+ $ref: "#/components/schemas/action_attempt"
14619
14969
  },
14620
14970
  ok: { type: "boolean" }
14621
14971
  },
14622
- required: ["climate_setting_schedule", "ok"],
14972
+ required: ["action_attempt", "ok"],
14623
14973
  type: "object"
14624
14974
  }
14625
14975
  }
@@ -14635,262 +14985,30 @@ var openapi_default = {
14635
14985
  { console_session: [] },
14636
14986
  { api_key: [] }
14637
14987
  ],
14638
- summary: "/thermostats/climate_setting_schedules/update",
14988
+ summary: "/thermostats/heat_cool",
14639
14989
  tags: ["/thermostats"],
14640
- "x-fern-ignore": true
14990
+ "x-fern-sdk-group-name": ["thermostats"],
14991
+ "x-fern-sdk-method-name": "heat_cool",
14992
+ "x-fern-sdk-return-value": "action_attempt"
14641
14993
  }
14642
14994
  },
14643
- "/thermostats/cool": {
14995
+ "/thermostats/list": {
14644
14996
  post: {
14645
- operationId: "thermostatsCoolPost",
14997
+ operationId: "thermostatsListPost",
14646
14998
  requestBody: {
14647
14999
  content: {
14648
15000
  "application/json": {
14649
15001
  schema: {
14650
15002
  properties: {
14651
- cooling_set_point_celsius: {
14652
- format: "float",
14653
- type: "number"
15003
+ connect_webview_id: { format: "uuid", type: "string" },
15004
+ connected_account_id: {
15005
+ description: "List all devices owned by this connected account",
15006
+ format: "uuid",
15007
+ type: "string"
14654
15008
  },
14655
- cooling_set_point_fahrenheit: {
14656
- format: "float",
14657
- type: "number"
14658
- },
14659
- device_id: { format: "uuid", type: "string" },
14660
- sync: { default: false, type: "boolean" }
14661
- },
14662
- required: ["device_id"],
14663
- type: "object"
14664
- }
14665
- }
14666
- }
14667
- },
14668
- responses: {
14669
- 200: {
14670
- content: {
14671
- "application/json": {
14672
- schema: {
14673
- properties: {
14674
- action_attempt: {
14675
- $ref: "#/components/schemas/action_attempt"
14676
- },
14677
- ok: { type: "boolean" }
14678
- },
14679
- required: ["action_attempt", "ok"],
14680
- type: "object"
14681
- }
14682
- }
14683
- },
14684
- description: "OK"
14685
- },
14686
- 400: { description: "Bad Request" },
14687
- 401: { description: "Unauthorized" }
14688
- },
14689
- security: [
14690
- { client_session: [] },
14691
- { pat_with_workspace: [] },
14692
- { console_session: [] },
14693
- { api_key: [] }
14694
- ],
14695
- summary: "/thermostats/cool",
14696
- tags: ["/thermostats"],
14697
- "x-fern-sdk-group-name": ["thermostats"],
14698
- "x-fern-sdk-method-name": "cool",
14699
- "x-fern-sdk-return-value": "action_attempt"
14700
- }
14701
- },
14702
- "/thermostats/get": {
14703
- post: {
14704
- operationId: "thermostatsGetPost",
14705
- requestBody: {
14706
- content: {
14707
- "application/json": {
14708
- schema: {
14709
- properties: {
14710
- device_id: { format: "uuid", type: "string" },
14711
- name: { type: "string" }
14712
- },
14713
- type: "object"
14714
- }
14715
- }
14716
- }
14717
- },
14718
- responses: {
14719
- 200: {
14720
- content: {
14721
- "application/json": {
14722
- schema: {
14723
- properties: {
14724
- ok: { type: "boolean" },
14725
- thermostat: { $ref: "#/components/schemas/device" }
14726
- },
14727
- required: ["thermostat", "ok"],
14728
- type: "object"
14729
- }
14730
- }
14731
- },
14732
- description: "OK"
14733
- },
14734
- 400: { description: "Bad Request" },
14735
- 401: { description: "Unauthorized" }
14736
- },
14737
- security: [
14738
- { client_session: [] },
14739
- { pat_with_workspace: [] },
14740
- { console_session: [] },
14741
- { api_key: [] }
14742
- ],
14743
- summary: "/thermostats/get",
14744
- tags: ["/thermostats"],
14745
- "x-deprecated": "Use `/devices/get` instead.",
14746
- "x-fern-sdk-group-name": ["thermostats"],
14747
- "x-fern-sdk-method-name": "get",
14748
- "x-fern-sdk-return-value": "thermostat"
14749
- }
14750
- },
14751
- "/thermostats/heat": {
14752
- post: {
14753
- operationId: "thermostatsHeatPost",
14754
- requestBody: {
14755
- content: {
14756
- "application/json": {
14757
- schema: {
14758
- properties: {
14759
- device_id: { format: "uuid", type: "string" },
14760
- heating_set_point_celsius: {
14761
- format: "float",
14762
- type: "number"
14763
- },
14764
- heating_set_point_fahrenheit: {
14765
- format: "float",
14766
- type: "number"
14767
- },
14768
- sync: { default: false, type: "boolean" }
14769
- },
14770
- required: ["device_id"],
14771
- type: "object"
14772
- }
14773
- }
14774
- }
14775
- },
14776
- responses: {
14777
- 200: {
14778
- content: {
14779
- "application/json": {
14780
- schema: {
14781
- properties: {
14782
- action_attempt: {
14783
- $ref: "#/components/schemas/action_attempt"
14784
- },
14785
- ok: { type: "boolean" }
14786
- },
14787
- required: ["action_attempt", "ok"],
14788
- type: "object"
14789
- }
14790
- }
14791
- },
14792
- description: "OK"
14793
- },
14794
- 400: { description: "Bad Request" },
14795
- 401: { description: "Unauthorized" }
14796
- },
14797
- security: [
14798
- { client_session: [] },
14799
- { pat_with_workspace: [] },
14800
- { console_session: [] },
14801
- { api_key: [] }
14802
- ],
14803
- summary: "/thermostats/heat",
14804
- tags: ["/thermostats"],
14805
- "x-fern-sdk-group-name": ["thermostats"],
14806
- "x-fern-sdk-method-name": "heat",
14807
- "x-fern-sdk-return-value": "action_attempt"
14808
- }
14809
- },
14810
- "/thermostats/heat_cool": {
14811
- post: {
14812
- operationId: "thermostatsHeatCoolPost",
14813
- requestBody: {
14814
- content: {
14815
- "application/json": {
14816
- schema: {
14817
- properties: {
14818
- cooling_set_point_celsius: {
14819
- format: "float",
14820
- type: "number"
14821
- },
14822
- cooling_set_point_fahrenheit: {
14823
- format: "float",
14824
- type: "number"
14825
- },
14826
- device_id: { format: "uuid", type: "string" },
14827
- heating_set_point_celsius: {
14828
- format: "float",
14829
- type: "number"
14830
- },
14831
- heating_set_point_fahrenheit: {
14832
- format: "float",
14833
- type: "number"
14834
- },
14835
- sync: { default: false, type: "boolean" }
14836
- },
14837
- required: ["device_id"],
14838
- type: "object"
14839
- }
14840
- }
14841
- }
14842
- },
14843
- responses: {
14844
- 200: {
14845
- content: {
14846
- "application/json": {
14847
- schema: {
14848
- properties: {
14849
- action_attempt: {
14850
- $ref: "#/components/schemas/action_attempt"
14851
- },
14852
- ok: { type: "boolean" }
14853
- },
14854
- required: ["action_attempt", "ok"],
14855
- type: "object"
14856
- }
14857
- }
14858
- },
14859
- description: "OK"
14860
- },
14861
- 400: { description: "Bad Request" },
14862
- 401: { description: "Unauthorized" }
14863
- },
14864
- security: [
14865
- { client_session: [] },
14866
- { pat_with_workspace: [] },
14867
- { console_session: [] },
14868
- { api_key: [] }
14869
- ],
14870
- summary: "/thermostats/heat_cool",
14871
- tags: ["/thermostats"],
14872
- "x-fern-sdk-group-name": ["thermostats"],
14873
- "x-fern-sdk-method-name": "heat_cool",
14874
- "x-fern-sdk-return-value": "action_attempt"
14875
- }
14876
- },
14877
- "/thermostats/list": {
14878
- post: {
14879
- operationId: "thermostatsListPost",
14880
- requestBody: {
14881
- content: {
14882
- "application/json": {
14883
- schema: {
14884
- properties: {
14885
- connect_webview_id: { format: "uuid", type: "string" },
14886
- connected_account_id: {
14887
- description: "List all devices owned by this connected account",
14888
- format: "uuid",
14889
- type: "string"
14890
- },
14891
- connected_account_ids: {
14892
- items: { format: "uuid", type: "string" },
14893
- type: "array"
15009
+ connected_account_ids: {
15010
+ items: { format: "uuid", type: "string" },
15011
+ type: "array"
14894
15012
  },
14895
15013
  created_before: { format: "date-time", type: "string" },
14896
15014
  custom_metadata_has: {
@@ -15176,20 +15294,31 @@ var openapi_default = {
15176
15294
  "x-fern-sdk-return-value": "action_attempt"
15177
15295
  }
15178
15296
  },
15179
- "/thermostats/set_fan_mode": {
15297
+ "/thermostats/schedules/create": {
15180
15298
  post: {
15181
- operationId: "thermostatsSetFanModePost",
15299
+ operationId: "thermostatsSchedulesCreatePost",
15182
15300
  requestBody: {
15183
15301
  content: {
15184
15302
  "application/json": {
15185
15303
  schema: {
15186
15304
  properties: {
15187
- device_id: { format: "uuid", type: "string" },
15188
- fan_mode: { enum: ["auto", "on"], type: "string" },
15189
- fan_mode_setting: { enum: ["auto", "on"], type: "string" },
15190
- sync: { default: false, type: "boolean" }
15305
+ climate_preset_key: { type: "string" },
15306
+ device_id: { type: "string" },
15307
+ ends_at: { type: "string" },
15308
+ max_override_period_minutes: {
15309
+ default: 0,
15310
+ minimum: 0,
15311
+ type: "integer"
15312
+ },
15313
+ name: { type: "string" },
15314
+ starts_at: { type: "string" }
15191
15315
  },
15192
- required: ["device_id"],
15316
+ required: [
15317
+ "device_id",
15318
+ "climate_preset_key",
15319
+ "starts_at",
15320
+ "ends_at"
15321
+ ],
15193
15322
  type: "object"
15194
15323
  }
15195
15324
  }
@@ -15201,12 +15330,12 @@ var openapi_default = {
15201
15330
  "application/json": {
15202
15331
  schema: {
15203
15332
  properties: {
15204
- action_attempt: {
15205
- $ref: "#/components/schemas/action_attempt"
15206
- },
15207
- ok: { type: "boolean" }
15333
+ ok: { type: "boolean" },
15334
+ thermostat_schedule: {
15335
+ $ref: "#/components/schemas/thermostat_schedule"
15336
+ }
15208
15337
  },
15209
- required: ["action_attempt", "ok"],
15338
+ required: ["thermostat_schedule", "ok"],
15210
15339
  type: "object"
15211
15340
  }
15212
15341
  }
@@ -15222,50 +15351,24 @@ var openapi_default = {
15222
15351
  { console_session: [] },
15223
15352
  { api_key: [] }
15224
15353
  ],
15225
- summary: "/thermostats/set_fan_mode",
15354
+ summary: "/thermostats/schedules/create",
15226
15355
  tags: ["/thermostats"],
15227
- "x-fern-sdk-group-name": ["thermostats"],
15228
- "x-fern-sdk-method-name": "set_fan_mode",
15229
- "x-fern-sdk-return-value": "action_attempt"
15356
+ "x-fern-sdk-group-name": ["thermostats", "schedules"],
15357
+ "x-fern-sdk-method-name": "create",
15358
+ "x-fern-sdk-return-value": "thermostat_schedule"
15230
15359
  }
15231
15360
  },
15232
- "/thermostats/update": {
15233
- patch: {
15234
- operationId: "thermostatsUpdatePatch",
15361
+ "/thermostats/schedules/delete": {
15362
+ post: {
15363
+ operationId: "thermostatsSchedulesDeletePost",
15235
15364
  requestBody: {
15236
15365
  content: {
15237
15366
  "application/json": {
15238
15367
  schema: {
15239
15368
  properties: {
15240
- default_climate_setting: {
15241
- properties: {
15242
- cooling_set_point_celsius: {
15243
- format: "float",
15244
- type: "number"
15245
- },
15246
- cooling_set_point_fahrenheit: {
15247
- format: "float",
15248
- type: "number"
15249
- },
15250
- heating_set_point_celsius: {
15251
- format: "float",
15252
- type: "number"
15253
- },
15254
- heating_set_point_fahrenheit: {
15255
- format: "float",
15256
- type: "number"
15257
- },
15258
- hvac_mode_setting: {
15259
- enum: ["off", "heat", "cool", "heat_cool"],
15260
- type: "string"
15261
- },
15262
- manual_override_allowed: { type: "boolean" }
15263
- },
15264
- type: "object"
15265
- },
15266
- device_id: { format: "uuid", type: "string" }
15369
+ thermostat_schedule_id: { format: "uuid", type: "string" }
15267
15370
  },
15268
- required: ["device_id", "default_climate_setting"],
15371
+ required: ["thermostat_schedule_id"],
15269
15372
  type: "object"
15270
15373
  }
15271
15374
  }
@@ -15287,52 +15390,239 @@ var openapi_default = {
15287
15390
  400: { description: "Bad Request" },
15288
15391
  401: { description: "Unauthorized" }
15289
15392
  },
15393
+ security: [
15394
+ { client_session: [] },
15395
+ { pat_with_workspace: [] },
15396
+ { console_session: [] },
15397
+ { api_key: [] }
15398
+ ],
15399
+ summary: "/thermostats/schedules/delete",
15400
+ tags: ["/thermostats"],
15401
+ "x-fern-sdk-group-name": ["thermostats", "schedules"],
15402
+ "x-fern-sdk-method-name": "delete"
15403
+ }
15404
+ },
15405
+ "/thermostats/schedules/get": {
15406
+ post: {
15407
+ operationId: "thermostatsSchedulesGetPost",
15408
+ requestBody: {
15409
+ content: {
15410
+ "application/json": {
15411
+ schema: {
15412
+ properties: {
15413
+ thermostat_schedule_id: { format: "uuid", type: "string" }
15414
+ },
15415
+ required: ["thermostat_schedule_id"],
15416
+ type: "object"
15417
+ }
15418
+ }
15419
+ }
15420
+ },
15421
+ responses: {
15422
+ 200: {
15423
+ content: {
15424
+ "application/json": {
15425
+ schema: {
15426
+ properties: {
15427
+ ok: { type: "boolean" },
15428
+ thermostat_schedule: {
15429
+ $ref: "#/components/schemas/thermostat_schedule"
15430
+ }
15431
+ },
15432
+ required: ["thermostat_schedule", "ok"],
15433
+ type: "object"
15434
+ }
15435
+ }
15436
+ },
15437
+ description: "OK"
15438
+ },
15439
+ 400: { description: "Bad Request" },
15440
+ 401: { description: "Unauthorized" }
15441
+ },
15442
+ security: [
15443
+ { client_session: [] },
15444
+ { pat_with_workspace: [] },
15445
+ { console_session: [] },
15446
+ { api_key: [] }
15447
+ ],
15448
+ summary: "/thermostats/schedules/get",
15449
+ tags: ["/thermostats"],
15450
+ "x-fern-sdk-group-name": ["thermostats", "schedules"],
15451
+ "x-fern-sdk-method-name": "get",
15452
+ "x-fern-sdk-return-value": "thermostat_schedule"
15453
+ }
15454
+ },
15455
+ "/thermostats/schedules/list": {
15456
+ post: {
15457
+ operationId: "thermostatsSchedulesListPost",
15458
+ requestBody: {
15459
+ content: {
15460
+ "application/json": {
15461
+ schema: {
15462
+ properties: {
15463
+ device_id: { format: "uuid", type: "string" },
15464
+ user_identifier_key: { type: "string" }
15465
+ },
15466
+ required: ["device_id"],
15467
+ type: "object"
15468
+ }
15469
+ }
15470
+ }
15471
+ },
15472
+ responses: {
15473
+ 200: {
15474
+ content: {
15475
+ "application/json": {
15476
+ schema: {
15477
+ properties: {
15478
+ ok: { type: "boolean" },
15479
+ thermostat_schedules: {
15480
+ items: {
15481
+ $ref: "#/components/schemas/thermostat_schedule"
15482
+ },
15483
+ type: "array"
15484
+ }
15485
+ },
15486
+ required: ["thermostat_schedules", "ok"],
15487
+ type: "object"
15488
+ }
15489
+ }
15490
+ },
15491
+ description: "OK"
15492
+ },
15493
+ 400: { description: "Bad Request" },
15494
+ 401: { description: "Unauthorized" }
15495
+ },
15290
15496
  security: [
15291
15497
  { api_key: [] },
15498
+ { client_session: [] },
15499
+ { pat_with_workspace: [] },
15500
+ { console_session: [] }
15501
+ ],
15502
+ summary: "/thermostats/schedules/list",
15503
+ tags: ["/thermostats"],
15504
+ "x-fern-sdk-group-name": ["thermostats", "schedules"],
15505
+ "x-fern-sdk-method-name": "list",
15506
+ "x-fern-sdk-return-value": "thermostat_schedules"
15507
+ }
15508
+ },
15509
+ "/thermostats/schedules/update": {
15510
+ patch: {
15511
+ operationId: "thermostatsSchedulesUpdatePatch",
15512
+ requestBody: {
15513
+ content: {
15514
+ "application/json": {
15515
+ schema: {
15516
+ properties: {
15517
+ climate_preset_key: { type: "string" },
15518
+ ends_at: { type: "string" },
15519
+ max_override_period_minutes: { minimum: 0, type: "integer" },
15520
+ name: { type: "string" },
15521
+ starts_at: { type: "string" },
15522
+ thermostat_schedule_id: { format: "uuid", type: "string" }
15523
+ },
15524
+ required: ["thermostat_schedule_id"],
15525
+ type: "object"
15526
+ }
15527
+ }
15528
+ }
15529
+ },
15530
+ responses: {
15531
+ 200: {
15532
+ content: {
15533
+ "application/json": {
15534
+ schema: {
15535
+ properties: {
15536
+ ok: { type: "boolean" },
15537
+ thermostat_schedule: {
15538
+ $ref: "#/components/schemas/thermostat_schedule"
15539
+ }
15540
+ },
15541
+ required: ["thermostat_schedule", "ok"],
15542
+ type: "object"
15543
+ }
15544
+ }
15545
+ },
15546
+ description: "OK"
15547
+ },
15548
+ 400: { description: "Bad Request" },
15549
+ 401: { description: "Unauthorized" }
15550
+ },
15551
+ security: [
15552
+ { client_session: [] },
15292
15553
  { pat_with_workspace: [] },
15293
15554
  { console_session: [] },
15294
- { client_session: [] }
15555
+ { api_key: [] }
15295
15556
  ],
15296
- summary: "/thermostats/update",
15557
+ summary: "/thermostats/schedules/update",
15297
15558
  tags: ["/thermostats"],
15298
15559
  "x-fern-ignore": true
15299
15560
  },
15300
15561
  post: {
15301
- operationId: "thermostatsUpdatePost",
15562
+ operationId: "thermostatsSchedulesUpdatePost",
15302
15563
  requestBody: {
15303
15564
  content: {
15304
15565
  "application/json": {
15305
15566
  schema: {
15306
15567
  properties: {
15307
- default_climate_setting: {
15308
- properties: {
15309
- cooling_set_point_celsius: {
15310
- format: "float",
15311
- type: "number"
15312
- },
15313
- cooling_set_point_fahrenheit: {
15314
- format: "float",
15315
- type: "number"
15316
- },
15317
- heating_set_point_celsius: {
15318
- format: "float",
15319
- type: "number"
15320
- },
15321
- heating_set_point_fahrenheit: {
15322
- format: "float",
15323
- type: "number"
15324
- },
15325
- hvac_mode_setting: {
15326
- enum: ["off", "heat", "cool", "heat_cool"],
15327
- type: "string"
15328
- },
15329
- manual_override_allowed: { type: "boolean" }
15330
- },
15331
- type: "object"
15568
+ climate_preset_key: { type: "string" },
15569
+ ends_at: { type: "string" },
15570
+ max_override_period_minutes: { minimum: 0, type: "integer" },
15571
+ name: { type: "string" },
15572
+ starts_at: { type: "string" },
15573
+ thermostat_schedule_id: { format: "uuid", type: "string" }
15574
+ },
15575
+ required: ["thermostat_schedule_id"],
15576
+ type: "object"
15577
+ }
15578
+ }
15579
+ }
15580
+ },
15581
+ responses: {
15582
+ 200: {
15583
+ content: {
15584
+ "application/json": {
15585
+ schema: {
15586
+ properties: {
15587
+ ok: { type: "boolean" },
15588
+ thermostat_schedule: {
15589
+ $ref: "#/components/schemas/thermostat_schedule"
15590
+ }
15332
15591
  },
15592
+ required: ["thermostat_schedule", "ok"],
15593
+ type: "object"
15594
+ }
15595
+ }
15596
+ },
15597
+ description: "OK"
15598
+ },
15599
+ 400: { description: "Bad Request" },
15600
+ 401: { description: "Unauthorized" }
15601
+ },
15602
+ security: [
15603
+ { client_session: [] },
15604
+ { pat_with_workspace: [] },
15605
+ { console_session: [] },
15606
+ { api_key: [] }
15607
+ ],
15608
+ summary: "/thermostats/schedules/update",
15609
+ tags: ["/thermostats"],
15610
+ "x-fern-sdk-group-name": ["thermostats", "schedules"],
15611
+ "x-fern-sdk-method-name": "update"
15612
+ }
15613
+ },
15614
+ "/thermostats/set_fallback_climate_preset": {
15615
+ post: {
15616
+ operationId: "thermostatsSetFallbackClimatePresetPost",
15617
+ requestBody: {
15618
+ content: {
15619
+ "application/json": {
15620
+ schema: {
15621
+ properties: {
15622
+ climate_preset_key: { type: "string" },
15333
15623
  device_id: { format: "uuid", type: "string" }
15334
15624
  },
15335
- required: ["device_id", "default_climate_setting"],
15625
+ required: ["device_id", "climate_preset_key"],
15336
15626
  type: "object"
15337
15627
  }
15338
15628
  }
@@ -15355,15 +15645,304 @@ var openapi_default = {
15355
15645
  401: { description: "Unauthorized" }
15356
15646
  },
15357
15647
  security: [
15358
- { api_key: [] },
15359
15648
  { pat_with_workspace: [] },
15360
15649
  { console_session: [] },
15361
- { client_session: [] }
15650
+ { api_key: [] }
15362
15651
  ],
15363
- summary: "/thermostats/update",
15652
+ summary: "/thermostats/set_fallback_climate_preset",
15364
15653
  tags: ["/thermostats"],
15365
15654
  "x-fern-sdk-group-name": ["thermostats"],
15366
- "x-fern-sdk-method-name": "update"
15655
+ "x-fern-sdk-method-name": "set_fallback_climate_preset"
15656
+ }
15657
+ },
15658
+ "/thermostats/set_fan_mode": {
15659
+ post: {
15660
+ operationId: "thermostatsSetFanModePost",
15661
+ requestBody: {
15662
+ content: {
15663
+ "application/json": {
15664
+ schema: {
15665
+ properties: {
15666
+ device_id: { format: "uuid", type: "string" },
15667
+ fan_mode: {
15668
+ deprecated: true,
15669
+ enum: ["auto", "on"],
15670
+ type: "string",
15671
+ "x-deprecated": "use fan_mode_setting instead."
15672
+ },
15673
+ fan_mode_setting: { enum: ["auto", "on"], type: "string" },
15674
+ sync: { default: false, type: "boolean" }
15675
+ },
15676
+ required: ["device_id"],
15677
+ type: "object"
15678
+ }
15679
+ }
15680
+ }
15681
+ },
15682
+ responses: {
15683
+ 200: {
15684
+ content: {
15685
+ "application/json": {
15686
+ schema: {
15687
+ properties: {
15688
+ action_attempt: {
15689
+ $ref: "#/components/schemas/action_attempt"
15690
+ },
15691
+ ok: { type: "boolean" }
15692
+ },
15693
+ required: ["action_attempt", "ok"],
15694
+ type: "object"
15695
+ }
15696
+ }
15697
+ },
15698
+ description: "OK"
15699
+ },
15700
+ 400: { description: "Bad Request" },
15701
+ 401: { description: "Unauthorized" }
15702
+ },
15703
+ security: [
15704
+ { client_session: [] },
15705
+ { pat_with_workspace: [] },
15706
+ { console_session: [] },
15707
+ { api_key: [] }
15708
+ ],
15709
+ summary: "/thermostats/set_fan_mode",
15710
+ tags: ["/thermostats"],
15711
+ "x-fern-sdk-group-name": ["thermostats"],
15712
+ "x-fern-sdk-method-name": "set_fan_mode",
15713
+ "x-fern-sdk-return-value": "action_attempt"
15714
+ }
15715
+ },
15716
+ "/thermostats/update_climate_preset": {
15717
+ patch: {
15718
+ operationId: "thermostatsUpdateClimatePresetPatch",
15719
+ requestBody: {
15720
+ content: {
15721
+ "application/json": {
15722
+ schema: {
15723
+ properties: {
15724
+ climate_preset_key: { type: "string" },
15725
+ cooling_set_point_celsius: {
15726
+ format: "float",
15727
+ type: "number"
15728
+ },
15729
+ cooling_set_point_fahrenheit: {
15730
+ format: "float",
15731
+ type: "number"
15732
+ },
15733
+ device_id: { format: "uuid", type: "string" },
15734
+ fan_mode_setting: { enum: ["auto", "on"], type: "string" },
15735
+ heating_set_point_celsius: {
15736
+ format: "float",
15737
+ type: "number"
15738
+ },
15739
+ heating_set_point_fahrenheit: {
15740
+ format: "float",
15741
+ type: "number"
15742
+ },
15743
+ hvac_mode_setting: {
15744
+ enum: ["off", "heat", "cool", "heat_cool"],
15745
+ type: "string"
15746
+ },
15747
+ manual_override_allowed: { type: "boolean" },
15748
+ name: { nullable: true, type: "string" }
15749
+ },
15750
+ required: [
15751
+ "device_id",
15752
+ "climate_preset_key",
15753
+ "name",
15754
+ "manual_override_allowed"
15755
+ ],
15756
+ type: "object"
15757
+ }
15758
+ }
15759
+ }
15760
+ },
15761
+ responses: {
15762
+ 200: {
15763
+ content: {
15764
+ "application/json": {
15765
+ schema: {
15766
+ properties: {
15767
+ climate_preset: {
15768
+ properties: {
15769
+ can_delete: { type: "boolean" },
15770
+ can_edit: { type: "boolean" },
15771
+ climate_preset_key: { type: "string" },
15772
+ cooling_set_point_celsius: {
15773
+ format: "float",
15774
+ type: "number"
15775
+ },
15776
+ cooling_set_point_fahrenheit: {
15777
+ format: "float",
15778
+ type: "number"
15779
+ },
15780
+ display_name: { type: "string" },
15781
+ fan_mode_setting: {
15782
+ enum: ["auto", "on"],
15783
+ type: "string"
15784
+ },
15785
+ heating_set_point_celsius: {
15786
+ format: "float",
15787
+ type: "number"
15788
+ },
15789
+ heating_set_point_fahrenheit: {
15790
+ format: "float",
15791
+ type: "number"
15792
+ },
15793
+ hvac_mode_setting: {
15794
+ enum: ["off", "heat", "cool", "heat_cool"],
15795
+ type: "string"
15796
+ },
15797
+ manual_override_allowed: { type: "boolean" },
15798
+ name: { nullable: true, type: "string" }
15799
+ },
15800
+ required: [
15801
+ "climate_preset_key",
15802
+ "can_edit",
15803
+ "can_delete",
15804
+ "name",
15805
+ "display_name",
15806
+ "manual_override_allowed"
15807
+ ],
15808
+ type: "object"
15809
+ },
15810
+ ok: { type: "boolean" }
15811
+ },
15812
+ required: ["climate_preset", "ok"],
15813
+ type: "object"
15814
+ }
15815
+ }
15816
+ },
15817
+ description: "OK"
15818
+ },
15819
+ 400: { description: "Bad Request" },
15820
+ 401: { description: "Unauthorized" }
15821
+ },
15822
+ security: [
15823
+ { pat_with_workspace: [] },
15824
+ { console_session: [] },
15825
+ { api_key: [] }
15826
+ ],
15827
+ summary: "/thermostats/update_climate_preset",
15828
+ tags: ["/thermostats"],
15829
+ "x-fern-ignore": true
15830
+ },
15831
+ post: {
15832
+ operationId: "thermostatsUpdateClimatePresetPost",
15833
+ requestBody: {
15834
+ content: {
15835
+ "application/json": {
15836
+ schema: {
15837
+ properties: {
15838
+ climate_preset_key: { type: "string" },
15839
+ cooling_set_point_celsius: {
15840
+ format: "float",
15841
+ type: "number"
15842
+ },
15843
+ cooling_set_point_fahrenheit: {
15844
+ format: "float",
15845
+ type: "number"
15846
+ },
15847
+ device_id: { format: "uuid", type: "string" },
15848
+ fan_mode_setting: { enum: ["auto", "on"], type: "string" },
15849
+ heating_set_point_celsius: {
15850
+ format: "float",
15851
+ type: "number"
15852
+ },
15853
+ heating_set_point_fahrenheit: {
15854
+ format: "float",
15855
+ type: "number"
15856
+ },
15857
+ hvac_mode_setting: {
15858
+ enum: ["off", "heat", "cool", "heat_cool"],
15859
+ type: "string"
15860
+ },
15861
+ manual_override_allowed: { type: "boolean" },
15862
+ name: { nullable: true, type: "string" }
15863
+ },
15864
+ required: [
15865
+ "device_id",
15866
+ "climate_preset_key",
15867
+ "name",
15868
+ "manual_override_allowed"
15869
+ ],
15870
+ type: "object"
15871
+ }
15872
+ }
15873
+ }
15874
+ },
15875
+ responses: {
15876
+ 200: {
15877
+ content: {
15878
+ "application/json": {
15879
+ schema: {
15880
+ properties: {
15881
+ climate_preset: {
15882
+ properties: {
15883
+ can_delete: { type: "boolean" },
15884
+ can_edit: { type: "boolean" },
15885
+ climate_preset_key: { type: "string" },
15886
+ cooling_set_point_celsius: {
15887
+ format: "float",
15888
+ type: "number"
15889
+ },
15890
+ cooling_set_point_fahrenheit: {
15891
+ format: "float",
15892
+ type: "number"
15893
+ },
15894
+ display_name: { type: "string" },
15895
+ fan_mode_setting: {
15896
+ enum: ["auto", "on"],
15897
+ type: "string"
15898
+ },
15899
+ heating_set_point_celsius: {
15900
+ format: "float",
15901
+ type: "number"
15902
+ },
15903
+ heating_set_point_fahrenheit: {
15904
+ format: "float",
15905
+ type: "number"
15906
+ },
15907
+ hvac_mode_setting: {
15908
+ enum: ["off", "heat", "cool", "heat_cool"],
15909
+ type: "string"
15910
+ },
15911
+ manual_override_allowed: { type: "boolean" },
15912
+ name: { nullable: true, type: "string" }
15913
+ },
15914
+ required: [
15915
+ "climate_preset_key",
15916
+ "can_edit",
15917
+ "can_delete",
15918
+ "name",
15919
+ "display_name",
15920
+ "manual_override_allowed"
15921
+ ],
15922
+ type: "object"
15923
+ },
15924
+ ok: { type: "boolean" }
15925
+ },
15926
+ required: ["climate_preset", "ok"],
15927
+ type: "object"
15928
+ }
15929
+ }
15930
+ },
15931
+ description: "OK"
15932
+ },
15933
+ 400: { description: "Bad Request" },
15934
+ 401: { description: "Unauthorized" }
15935
+ },
15936
+ security: [
15937
+ { pat_with_workspace: [] },
15938
+ { console_session: [] },
15939
+ { api_key: [] }
15940
+ ],
15941
+ summary: "/thermostats/update_climate_preset",
15942
+ tags: ["/thermostats"],
15943
+ "x-fern-sdk-group-name": ["thermostats"],
15944
+ "x-fern-sdk-method-name": "update_climate_preset",
15945
+ "x-fern-sdk-return-value": "climate_preset"
15367
15946
  }
15368
15947
  },
15369
15948
  "/user_identities/add_acs_user": {