@seamapi/types 1.239.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 +1412 -774
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +3622 -1409
  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 +289 -7
  12. package/lib/seam/connect/models/acs/acs-user.js +61 -8
  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 +1218 -657
  38. package/lib/seam/connect/openapi.js.map +1 -1
  39. package/lib/seam/connect/route-types.d.ts +1759 -453
  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 +88 -13
  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 +1252 -652
  57. package/src/lib/seam/connect/route-types.ts +2058 -498
  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,29 +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
- });
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
+ );
1316
1371
  var acs_users_salto_site_user_suspended = common_acs_users_warning.extend({
1317
1372
  warning_code: zod.z.literal("salto_site_user_suspended")
1318
1373
  });
1319
1374
  zod.z.object({
1320
1375
  being_deleted: acs_users_being_deleted.optional().nullable(),
1376
+ failed_to_update_on_acs_system: acs_users_failed_to_update_on_acs_system.optional().nullable(),
1321
1377
  salto_ks_user_not_subscribed: acs_users_salto_ks_user_not_subscribed.optional().nullable(),
1322
1378
  salto_site_user_suspended: acs_users_salto_site_user_suspended.optional().nullable()
1323
1379
  });
1324
- var acs_users_warning = zod.z.union([
1380
+ var acs_users_warnings = zod.z.union([
1325
1381
  acs_users_being_deleted,
1382
+ acs_users_failed_to_update_on_acs_system,
1326
1383
  acs_users_salto_ks_user_not_subscribed,
1327
1384
  acs_users_salto_site_user_suspended
1328
- ]);
1385
+ ]).describe("Warning associated with the `acs_user`.");
1329
1386
  var user_fields = zod.z.object({
1330
1387
  full_name: zod.z.string().optional(),
1331
1388
  email: zod.z.string().email().optional().describe(`
@@ -1353,8 +1410,8 @@ var common_acs_user = zod.z.object({
1353
1410
  user_identity_phone_number: zod.z.string().nullable().optional(),
1354
1411
  latest_desired_state_synced_with_provider_at: zod.z.string().datetime().optional(),
1355
1412
  is_latest_desired_state_synced_with_provider: zod.z.boolean().optional(),
1356
- warnings: zod.z.array(acs_users_warning),
1357
- errors: zod.z.any()
1413
+ warnings: zod.z.array(acs_users_warnings),
1414
+ errors: zod.z.array(acs_user_errors)
1358
1415
  }).merge(user_fields);
1359
1416
  var acs_user = common_acs_user.merge(
1360
1417
  zod.z.object({
@@ -1389,23 +1446,42 @@ var common_failed_action_attempt = common_action_attempt.extend({
1389
1446
  result: zod.z.null()
1390
1447
  });
1391
1448
 
1392
- // 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");
1393
1451
  var error = zod.z.object({
1394
1452
  type: zod.z.string(),
1395
1453
  message: zod.z.string()
1396
1454
  });
1397
- 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();
1398
1474
  var sync_access_codes_action_attempt = zod.z.discriminatedUnion("status", [
1399
1475
  common_pending_action_attempt.extend({
1400
1476
  action_type: zod.z.literal("SYNC_ACCESS_CODES")
1401
1477
  }),
1402
1478
  common_succeeded_action_attempt.extend({
1403
1479
  action_type: zod.z.literal("SYNC_ACCESS_CODES"),
1404
- result
1480
+ result: result2
1405
1481
  }),
1406
1482
  common_failed_action_attempt.extend({
1407
1483
  action_type: zod.z.literal("SYNC_ACCESS_CODES"),
1408
- error
1484
+ error: error2
1409
1485
  })
1410
1486
  ]);
1411
1487
  var create_access_code_action_attempt = zod.z.discriminatedUnion("status", [
@@ -1414,11 +1490,11 @@ var create_access_code_action_attempt = zod.z.discriminatedUnion("status", [
1414
1490
  }),
1415
1491
  common_succeeded_action_attempt.extend({
1416
1492
  action_type: zod.z.literal("CREATE_ACCESS_CODE"),
1417
- result
1493
+ result: result2
1418
1494
  }),
1419
1495
  common_failed_action_attempt.extend({
1420
1496
  action_type: zod.z.literal("CREATE_ACCESS_CODE"),
1421
- error
1497
+ error: error2
1422
1498
  })
1423
1499
  ]);
1424
1500
  var delete_access_code_action_attempt = zod.z.discriminatedUnion("status", [
@@ -1427,11 +1503,11 @@ var delete_access_code_action_attempt = zod.z.discriminatedUnion("status", [
1427
1503
  }),
1428
1504
  common_succeeded_action_attempt.extend({
1429
1505
  action_type: zod.z.literal("DELETE_ACCESS_CODE"),
1430
- result
1506
+ result: result2
1431
1507
  }),
1432
1508
  common_failed_action_attempt.extend({
1433
1509
  action_type: zod.z.literal("DELETE_ACCESS_CODE"),
1434
- error
1510
+ error: error2
1435
1511
  })
1436
1512
  ]);
1437
1513
  var update_access_code_action_attempt = zod.z.discriminatedUnion("status", [
@@ -1440,11 +1516,11 @@ var update_access_code_action_attempt = zod.z.discriminatedUnion("status", [
1440
1516
  }),
1441
1517
  common_succeeded_action_attempt.extend({
1442
1518
  action_type: zod.z.literal("UPDATE_ACCESS_CODE"),
1443
- result
1519
+ result: result2
1444
1520
  }),
1445
1521
  common_failed_action_attempt.extend({
1446
1522
  action_type: zod.z.literal("UPDATE_ACCESS_CODE"),
1447
- error
1523
+ error: error2
1448
1524
  })
1449
1525
  ]);
1450
1526
  var create_noise_threshold_action_attempt = zod.z.discriminatedUnion("status", [
@@ -1453,11 +1529,11 @@ var create_noise_threshold_action_attempt = zod.z.discriminatedUnion("status", [
1453
1529
  }),
1454
1530
  common_succeeded_action_attempt.extend({
1455
1531
  action_type: zod.z.literal("CREATE_NOISE_THRESHOLD"),
1456
- result
1532
+ result: result2
1457
1533
  }),
1458
1534
  common_failed_action_attempt.extend({
1459
1535
  action_type: zod.z.literal("CREATE_NOISE_THRESHOLD"),
1460
- error
1536
+ error: error2
1461
1537
  })
1462
1538
  ]);
1463
1539
  var delete_noise_threshold_action_attempt = zod.z.discriminatedUnion("status", [
@@ -1466,11 +1542,11 @@ var delete_noise_threshold_action_attempt = zod.z.discriminatedUnion("status", [
1466
1542
  }),
1467
1543
  common_succeeded_action_attempt.extend({
1468
1544
  action_type: zod.z.literal("DELETE_NOISE_THRESHOLD"),
1469
- result
1545
+ result: result2
1470
1546
  }),
1471
1547
  common_failed_action_attempt.extend({
1472
1548
  action_type: zod.z.literal("DELETE_NOISE_THRESHOLD"),
1473
- error
1549
+ error: error2
1474
1550
  })
1475
1551
  ]);
1476
1552
  var update_noise_threshold_action_attempt = zod.z.discriminatedUnion("status", [
@@ -1479,11 +1555,11 @@ var update_noise_threshold_action_attempt = zod.z.discriminatedUnion("status", [
1479
1555
  }),
1480
1556
  common_succeeded_action_attempt.extend({
1481
1557
  action_type: zod.z.literal("UPDATE_NOISE_THRESHOLD"),
1482
- result
1558
+ result: result2
1483
1559
  }),
1484
1560
  common_failed_action_attempt.extend({
1485
1561
  action_type: zod.z.literal("UPDATE_NOISE_THRESHOLD"),
1486
- error
1562
+ error: error2
1487
1563
  })
1488
1564
  ]);
1489
1565
  var deprecated_action_attempts = [
@@ -1495,142 +1571,142 @@ var deprecated_action_attempts = [
1495
1571
  ...delete_noise_threshold_action_attempt.options,
1496
1572
  ...update_noise_threshold_action_attempt.options
1497
1573
  ];
1498
- var action_type = zod.z.literal("LOCK_DOOR");
1499
- var error2 = zod.z.object({
1574
+ var action_type2 = zod.z.literal("LOCK_DOOR");
1575
+ var error3 = zod.z.object({
1500
1576
  type: zod.z.string(),
1501
1577
  message: zod.z.string()
1502
1578
  });
1503
- var result2 = zod.z.object({});
1579
+ var result3 = zod.z.object({});
1504
1580
  var lock_door_action_attempt = zod.z.discriminatedUnion("status", [
1505
1581
  common_pending_action_attempt.extend({
1506
- action_type
1582
+ action_type: action_type2
1507
1583
  }).describe("Locking door."),
1508
1584
  common_succeeded_action_attempt.extend({
1509
- action_type,
1510
- result: result2
1585
+ action_type: action_type2,
1586
+ result: result3
1511
1587
  }).describe("Locking door succeeded."),
1512
- 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.")
1513
1589
  ]);
1514
- var action_type2 = zod.z.literal("RESET_SANDBOX_WORKSPACE");
1515
- var error3 = zod.z.object({
1590
+ var action_type3 = zod.z.literal("RESET_SANDBOX_WORKSPACE");
1591
+ var error4 = zod.z.object({
1516
1592
  type: zod.z.string(),
1517
1593
  message: zod.z.string()
1518
1594
  });
1519
- var result3 = zod.z.object({});
1595
+ var result4 = zod.z.object({});
1520
1596
  var reset_sandbox_workspace_action_attempt = zod.z.discriminatedUnion(
1521
1597
  "status",
1522
1598
  [
1523
1599
  common_pending_action_attempt.extend({
1524
- action_type: action_type2
1600
+ action_type: action_type3
1525
1601
  }).describe("Resetting sandbox workspace."),
1526
1602
  common_succeeded_action_attempt.extend({
1527
- action_type: action_type2,
1528
- result: result3
1603
+ action_type: action_type3,
1604
+ result: result4
1529
1605
  }).describe("Resetting sandbox workspace succeeded."),
1530
1606
  common_failed_action_attempt.extend({
1531
- action_type: action_type2,
1532
- error: error3
1607
+ action_type: action_type3,
1608
+ error: error4
1533
1609
  }).describe("Resetting sandbox workspace failed.")
1534
1610
  ]
1535
1611
  );
1536
- var action_type3 = zod.z.literal("SET_COOL");
1537
- var error4 = zod.z.object({
1612
+ var action_type4 = zod.z.literal("SET_COOL");
1613
+ var error5 = zod.z.object({
1538
1614
  type: zod.z.string(),
1539
1615
  message: zod.z.string()
1540
1616
  });
1541
- var result4 = zod.z.object({});
1617
+ var result5 = zod.z.object({});
1542
1618
  var set_cool_action_attempt = zod.z.discriminatedUnion("status", [
1543
1619
  common_pending_action_attempt.extend({
1544
- action_type: action_type3
1620
+ action_type: action_type4
1545
1621
  }).describe("Setting HVAC to cool."),
1546
1622
  common_succeeded_action_attempt.extend({
1547
- action_type: action_type3,
1548
- result: result4
1623
+ action_type: action_type4,
1624
+ result: result5
1549
1625
  }).describe("Setting HVAC to cool succeeded."),
1550
- 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.")
1551
1627
  ]);
1552
- var action_type4 = zod.z.literal("SET_FAN_MODE");
1553
- var error5 = zod.z.object({
1628
+ var action_type5 = zod.z.literal("SET_FAN_MODE");
1629
+ var error6 = zod.z.object({
1554
1630
  type: zod.z.string(),
1555
1631
  message: zod.z.string()
1556
1632
  });
1557
- var result5 = zod.z.object({});
1633
+ var result6 = zod.z.object({});
1558
1634
  var set_fan_mode_action_attempt = zod.z.discriminatedUnion("status", [
1559
1635
  common_pending_action_attempt.extend({
1560
- action_type: action_type4
1636
+ action_type: action_type5
1561
1637
  }).describe("Setting fan mode."),
1562
1638
  common_succeeded_action_attempt.extend({
1563
- action_type: action_type4,
1564
- result: result5
1639
+ action_type: action_type5,
1640
+ result: result6
1565
1641
  }).describe("Setting fan mode succeeded."),
1566
- 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.")
1567
1643
  ]);
1568
- var action_type5 = zod.z.literal("SET_HEAT");
1569
- var error6 = zod.z.object({
1644
+ var action_type6 = zod.z.literal("SET_HEAT");
1645
+ var error7 = zod.z.object({
1570
1646
  type: zod.z.string(),
1571
1647
  message: zod.z.string()
1572
1648
  });
1573
- var result6 = zod.z.object({});
1649
+ var result7 = zod.z.object({});
1574
1650
  var set_heat_action_attempt = zod.z.discriminatedUnion("status", [
1575
1651
  common_pending_action_attempt.extend({
1576
- action_type: action_type5
1652
+ action_type: action_type6
1577
1653
  }).describe("Setting HVAC to heat mode."),
1578
1654
  common_succeeded_action_attempt.extend({
1579
- action_type: action_type5,
1580
- result: result6
1655
+ action_type: action_type6,
1656
+ result: result7
1581
1657
  }).describe("Setting HVAC to heat mode succeeded."),
1582
- 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.")
1583
1659
  ]);
1584
- var action_type6 = zod.z.literal("SET_HEAT_COOL");
1585
- var error7 = zod.z.object({
1660
+ var action_type7 = zod.z.literal("SET_HEAT_COOL");
1661
+ var error8 = zod.z.object({
1586
1662
  type: zod.z.string(),
1587
1663
  message: zod.z.string()
1588
1664
  });
1589
- var result7 = zod.z.object({});
1665
+ var result8 = zod.z.object({});
1590
1666
  var set_heat_cool_action_attempt = zod.z.discriminatedUnion("status", [
1591
1667
  common_pending_action_attempt.extend({
1592
- action_type: action_type6
1668
+ action_type: action_type7
1593
1669
  }).describe("Setting HVAC to heat-cool mode."),
1594
1670
  common_succeeded_action_attempt.extend({
1595
- action_type: action_type6,
1596
- result: result7
1671
+ action_type: action_type7,
1672
+ result: result8
1597
1673
  }).describe("Setting HVAC to heat-cool mode succeeded."),
1598
- 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.")
1599
1675
  ]);
1600
- var action_type7 = zod.z.literal("SET_THERMOSTAT_OFF");
1601
- var error8 = zod.z.object({
1676
+ var action_type8 = zod.z.literal("SET_THERMOSTAT_OFF");
1677
+ var error9 = zod.z.object({
1602
1678
  type: zod.z.string(),
1603
1679
  message: zod.z.string()
1604
1680
  });
1605
- var result8 = zod.z.object({});
1681
+ var result9 = zod.z.object({});
1606
1682
  var set_thermostat_off_action_attempt = zod.z.discriminatedUnion(
1607
1683
  "status",
1608
1684
  [
1609
1685
  common_pending_action_attempt.extend({
1610
- action_type: action_type7
1686
+ action_type: action_type8
1611
1687
  }).describe("Turning HVAC off."),
1612
1688
  common_succeeded_action_attempt.extend({
1613
- action_type: action_type7,
1614
- result: result8
1689
+ action_type: action_type8,
1690
+ result: result9
1615
1691
  }).describe("Turning HVAC off succeeded."),
1616
- 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.")
1617
1693
  ]
1618
1694
  );
1619
- var action_type8 = zod.z.literal("UNLOCK_DOOR");
1620
- var error9 = zod.z.object({
1695
+ var action_type9 = zod.z.literal("UNLOCK_DOOR");
1696
+ var error10 = zod.z.object({
1621
1697
  type: zod.z.string(),
1622
1698
  message: zod.z.string()
1623
1699
  });
1624
- var result9 = zod.z.object({});
1700
+ var result10 = zod.z.object({});
1625
1701
  var unlock_door_action_attempt = zod.z.discriminatedUnion("status", [
1626
1702
  common_pending_action_attempt.extend({
1627
- action_type: action_type8
1703
+ action_type: action_type9
1628
1704
  }).describe("Unlocking door."),
1629
1705
  common_succeeded_action_attempt.extend({
1630
- action_type: action_type8,
1631
- result: result9
1706
+ action_type: action_type9,
1707
+ result: result10
1632
1708
  }).describe("Unlocking door succeeded."),
1633
- 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.")
1634
1710
  ]);
1635
1711
 
1636
1712
  // src/lib/seam/connect/models/action-attempts/action-attempt.ts
@@ -1643,6 +1719,7 @@ var action_attempt = zod.z.union([
1643
1719
  ...set_heat_cool_action_attempt.options,
1644
1720
  ...set_fan_mode_action_attempt.options,
1645
1721
  ...set_thermostat_off_action_attempt.options,
1722
+ ...activate_climate_preset_action_attempt.options,
1646
1723
  ...deprecated_action_attempts
1647
1724
  ]);
1648
1725
  var client_session = zod.z.object({
@@ -2931,7 +3008,73 @@ var openapi_default = {
2931
3008
  "x-deprecated": "use email_address."
2932
3009
  },
2933
3010
  email_address: { format: "email", type: "string" },
2934
- 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
+ },
2935
3078
  external_type: {
2936
3079
  enum: [
2937
3080
  "pti_user",
@@ -2959,8 +3102,10 @@ var openapi_default = {
2959
3102
  user_identity_phone_number: { nullable: true, type: "string" },
2960
3103
  warnings: {
2961
3104
  items: {
3105
+ description: "Warning associated with the `acs_user`.",
2962
3106
  oneOf: [
2963
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.",
2964
3109
  properties: {
2965
3110
  created_at: { format: "date-time", type: "string" },
2966
3111
  message: { type: "string" },
@@ -2970,6 +3115,20 @@ var openapi_default = {
2970
3115
  type: "object"
2971
3116
  },
2972
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.",
3119
+ properties: {
3120
+ created_at: { format: "date-time", type: "string" },
3121
+ message: { type: "string" },
3122
+ warning_code: {
3123
+ enum: ["failed_to_update_on_acs_system"],
3124
+ type: "string"
3125
+ }
3126
+ },
3127
+ required: ["created_at", "message", "warning_code"],
3128
+ type: "object"
3129
+ },
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.",
2973
3132
  properties: {
2974
3133
  created_at: { format: "date-time", type: "string" },
2975
3134
  message: { type: "string" },
@@ -3007,6 +3166,7 @@ var openapi_default = {
3007
3166
  "display_name",
3008
3167
  "is_suspended",
3009
3168
  "warnings",
3169
+ "errors",
3010
3170
  "is_managed"
3011
3171
  ],
3012
3172
  type: "object"
@@ -3630,6 +3790,91 @@ var openapi_default = {
3630
3790
  ],
3631
3791
  type: "object"
3632
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
+ },
3633
3878
  {
3634
3879
  properties: {
3635
3880
  action_attempt_id: {
@@ -4135,39 +4380,7 @@ var openapi_default = {
4135
4380
  ],
4136
4381
  type: "object"
4137
4382
  },
4138
- climate_setting_schedule: {
4139
- properties: {
4140
- climate_setting_schedule_id: { format: "uuid", type: "string" },
4141
- cooling_set_point_celsius: { format: "float", type: "number" },
4142
- cooling_set_point_fahrenheit: { format: "float", type: "number" },
4143
- created_at: { format: "date-time", type: "string" },
4144
- device_id: { format: "uuid", type: "string" },
4145
- errors: {
4146
- 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.'
4147
- },
4148
- heating_set_point_celsius: { format: "float", type: "number" },
4149
- heating_set_point_fahrenheit: { format: "float", type: "number" },
4150
- hvac_mode_setting: {
4151
- enum: ["off", "heat", "cool", "heat_cool"],
4152
- type: "string"
4153
- },
4154
- manual_override_allowed: { type: "boolean" },
4155
- name: { type: "string" },
4156
- schedule_ends_at: { type: "string" },
4157
- schedule_starts_at: { type: "string" },
4158
- schedule_type: { enum: ["time_bound"], type: "string" }
4159
- },
4160
- required: [
4161
- "climate_setting_schedule_id",
4162
- "schedule_type",
4163
- "device_id",
4164
- "schedule_starts_at",
4165
- "schedule_ends_at",
4166
- "created_at"
4167
- ],
4168
- type: "object"
4169
- },
4170
- connect_webview: {
4383
+ connect_webview: {
4171
4384
  properties: {
4172
4385
  accepted_devices: {
4173
4386
  deprecated: true,
@@ -5171,56 +5384,85 @@ var openapi_default = {
5171
5384
  },
5172
5385
  {
5173
5386
  properties: {
5174
- active_climate_setting_schedule: {
5387
+ active_thermostat_schedule: {
5388
+ default: null,
5389
+ nullable: true,
5175
5390
  properties: {
5176
- climate_setting_schedule_id: {
5177
- format: "uuid",
5178
- type: "string"
5179
- },
5180
- cooling_set_point_celsius: {
5181
- format: "float",
5182
- type: "number"
5183
- },
5184
- cooling_set_point_fahrenheit: {
5185
- format: "float",
5186
- type: "number"
5187
- },
5391
+ climate_preset_key: { type: "string" },
5188
5392
  created_at: { format: "date-time", type: "string" },
5189
5393
  device_id: { format: "uuid", type: "string" },
5394
+ ends_at: { format: "date-time", type: "string" },
5190
5395
  errors: {
5191
- 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.'
5192
- },
5193
- heating_set_point_celsius: {
5194
- format: "float",
5195
- type: "number"
5196
- },
5197
- heating_set_point_fahrenheit: {
5198
- format: "float",
5199
- 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.'
5200
5397
  },
5201
- hvac_mode_setting: {
5202
- enum: ["off", "heat", "cool", "heat_cool"],
5203
- type: "string"
5398
+ max_override_period_minutes: {
5399
+ default: 0,
5400
+ minimum: 0,
5401
+ type: "integer"
5204
5402
  },
5205
- manual_override_allowed: { type: "boolean" },
5206
5403
  name: { type: "string" },
5207
- schedule_ends_at: { type: "string" },
5208
- schedule_starts_at: { type: "string" },
5209
- schedule_type: {
5210
- enum: ["time_bound"],
5404
+ starts_at: { format: "date-time", type: "string" },
5405
+ thermostat_schedule_id: {
5406
+ format: "uuid",
5211
5407
  type: "string"
5212
5408
  }
5213
5409
  },
5214
5410
  required: [
5215
- "climate_setting_schedule_id",
5216
- "schedule_type",
5411
+ "thermostat_schedule_id",
5217
5412
  "device_id",
5218
- "schedule_starts_at",
5219
- "schedule_ends_at",
5413
+ "climate_preset_key",
5414
+ "starts_at",
5415
+ "ends_at",
5220
5416
  "created_at"
5221
5417
  ],
5222
5418
  type: "object"
5223
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
+ },
5224
5466
  available_hvac_mode_settings: {
5225
5467
  items: {
5226
5468
  enum: ["off", "heat", "cool", "heat_cool"],
@@ -5230,6 +5472,9 @@ var openapi_default = {
5230
5472
  },
5231
5473
  current_climate_setting: {
5232
5474
  properties: {
5475
+ can_delete: { type: "boolean" },
5476
+ can_edit: { type: "boolean" },
5477
+ climate_preset_key: { type: "string" },
5233
5478
  cooling_set_point_celsius: {
5234
5479
  format: "float",
5235
5480
  type: "number"
@@ -5238,6 +5483,11 @@ var openapi_default = {
5238
5483
  format: "float",
5239
5484
  type: "number"
5240
5485
  },
5486
+ display_name: { type: "string" },
5487
+ fan_mode_setting: {
5488
+ enum: ["auto", "on"],
5489
+ type: "string"
5490
+ },
5241
5491
  heating_set_point_celsius: {
5242
5492
  format: "float",
5243
5493
  type: "number"
@@ -5250,16 +5500,17 @@ var openapi_default = {
5250
5500
  enum: ["off", "heat", "cool", "heat_cool"],
5251
5501
  type: "string"
5252
5502
  },
5253
- manual_override_allowed: { type: "boolean" }
5503
+ manual_override_allowed: { type: "boolean" },
5504
+ name: { nullable: true, type: "string" }
5254
5505
  },
5255
- required: [
5256
- "hvac_mode_setting",
5257
- "manual_override_allowed"
5258
- ],
5259
5506
  type: "object"
5260
5507
  },
5261
5508
  default_climate_setting: {
5509
+ deprecated: true,
5262
5510
  properties: {
5511
+ can_delete: { type: "boolean" },
5512
+ can_edit: { type: "boolean" },
5513
+ climate_preset_key: { type: "string" },
5263
5514
  cooling_set_point_celsius: {
5264
5515
  format: "float",
5265
5516
  type: "number"
@@ -5268,6 +5519,11 @@ var openapi_default = {
5268
5519
  format: "float",
5269
5520
  type: "number"
5270
5521
  },
5522
+ display_name: { type: "string" },
5523
+ fan_mode_setting: {
5524
+ enum: ["auto", "on"],
5525
+ type: "string"
5526
+ },
5271
5527
  heating_set_point_celsius: {
5272
5528
  format: "float",
5273
5529
  type: "number"
@@ -5280,19 +5536,24 @@ var openapi_default = {
5280
5536
  enum: ["off", "heat", "cool", "heat_cool"],
5281
5537
  type: "string"
5282
5538
  },
5283
- manual_override_allowed: { type: "boolean" }
5539
+ manual_override_allowed: { type: "boolean" },
5540
+ name: { nullable: true, type: "string" }
5284
5541
  },
5285
- required: [
5286
- "hvac_mode_setting",
5287
- "manual_override_allowed"
5288
- ],
5289
- 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"
5290
5550
  },
5291
5551
  fan_mode_setting: {
5552
+ deprecated: true,
5292
5553
  enum: ["auto", "on"],
5293
- type: "string"
5554
+ type: "string",
5555
+ "x-deprecated": "use current_climate_setting.fan_mode_setting instead."
5294
5556
  },
5295
- is_climate_setting_schedule_active: { type: "boolean" },
5296
5557
  is_cooling: { type: "boolean" },
5297
5558
  is_fan_running: { type: "boolean" },
5298
5559
  is_heating: { type: "boolean" },
@@ -5716,6 +5977,34 @@ var openapi_default = {
5716
5977
  required: ["service", "status", "description"],
5717
5978
  type: "object"
5718
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
+ },
5719
6008
  unmanaged_access_code: {
5720
6009
  properties: {
5721
6010
  access_code_id: {
@@ -9810,12 +10099,7 @@ var openapi_default = {
9810
10099
  acs_user: {
9811
10100
  properties: {
9812
10101
  access_schedule: {
9813
- properties: {
9814
- ends_at: { format: "date-time", type: "string" },
9815
- starts_at: { format: "date-time", type: "string" }
9816
- },
9817
- required: ["starts_at", "ends_at"],
9818
- type: "object"
10102
+ $ref: "#/components/schemas/thermostat_schedule"
9819
10103
  },
9820
10104
  acs_system_id: { format: "uuid", type: "string" },
9821
10105
  acs_user_id: { format: "uuid", type: "string" },
@@ -9828,7 +10112,87 @@ var openapi_default = {
9828
10112
  "x-deprecated": "use email_address."
9829
10113
  },
9830
10114
  email_address: { format: "email", type: "string" },
9831
- 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
+ },
9832
10196
  external_type: {
9833
10197
  enum: [
9834
10198
  "pti_user",
@@ -9867,8 +10231,10 @@ var openapi_default = {
9867
10231
  },
9868
10232
  warnings: {
9869
10233
  items: {
10234
+ description: "Warning associated with the `acs_user`.",
9870
10235
  oneOf: [
9871
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.",
9872
10238
  properties: {
9873
10239
  created_at: {
9874
10240
  format: "date-time",
@@ -9888,6 +10254,27 @@ var openapi_default = {
9888
10254
  type: "object"
9889
10255
  },
9890
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.",
10258
+ properties: {
10259
+ created_at: {
10260
+ format: "date-time",
10261
+ type: "string"
10262
+ },
10263
+ message: { type: "string" },
10264
+ warning_code: {
10265
+ enum: ["failed_to_update_on_acs_system"],
10266
+ type: "string"
10267
+ }
10268
+ },
10269
+ required: [
10270
+ "created_at",
10271
+ "message",
10272
+ "warning_code"
10273
+ ],
10274
+ type: "object"
10275
+ },
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.",
9891
10278
  properties: {
9892
10279
  created_at: {
9893
10280
  format: "date-time",
@@ -9939,6 +10326,7 @@ var openapi_default = {
9939
10326
  "display_name",
9940
10327
  "is_suspended",
9941
10328
  "warnings",
10329
+ "errors",
9942
10330
  "is_managed"
9943
10331
  ],
9944
10332
  type: "object"
@@ -9996,15 +10384,7 @@ var openapi_default = {
9996
10384
  items: {
9997
10385
  properties: {
9998
10386
  access_schedule: {
9999
- properties: {
10000
- ends_at: { format: "date-time", type: "string" },
10001
- starts_at: {
10002
- format: "date-time",
10003
- type: "string"
10004
- }
10005
- },
10006
- required: ["starts_at", "ends_at"],
10007
- type: "object"
10387
+ $ref: "#/components/schemas/thermostat_schedule"
10008
10388
  },
10009
10389
  acs_system_id: { format: "uuid", type: "string" },
10010
10390
  acs_user_id: { format: "uuid", type: "string" },
@@ -10017,7 +10397,87 @@ var openapi_default = {
10017
10397
  "x-deprecated": "use email_address."
10018
10398
  },
10019
10399
  email_address: { format: "email", type: "string" },
10020
- 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
+ },
10021
10481
  external_type: {
10022
10482
  enum: [
10023
10483
  "pti_user",
@@ -10056,8 +10516,10 @@ var openapi_default = {
10056
10516
  },
10057
10517
  warnings: {
10058
10518
  items: {
10519
+ description: "Warning associated with the `acs_user`.",
10059
10520
  oneOf: [
10060
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.",
10061
10523
  properties: {
10062
10524
  created_at: {
10063
10525
  format: "date-time",
@@ -10077,6 +10539,27 @@ var openapi_default = {
10077
10539
  type: "object"
10078
10540
  },
10079
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.",
10543
+ properties: {
10544
+ created_at: {
10545
+ format: "date-time",
10546
+ type: "string"
10547
+ },
10548
+ message: { type: "string" },
10549
+ warning_code: {
10550
+ enum: ["failed_to_update_on_acs_system"],
10551
+ type: "string"
10552
+ }
10553
+ },
10554
+ required: [
10555
+ "created_at",
10556
+ "message",
10557
+ "warning_code"
10558
+ ],
10559
+ type: "object"
10560
+ },
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.",
10080
10563
  properties: {
10081
10564
  created_at: {
10082
10565
  format: "date-time",
@@ -10128,6 +10611,7 @@ var openapi_default = {
10128
10611
  "display_name",
10129
10612
  "is_suspended",
10130
10613
  "warnings",
10614
+ "errors",
10131
10615
  "is_managed"
10132
10616
  ],
10133
10617
  type: "object"
@@ -14063,50 +14547,18 @@ var openapi_default = {
14063
14547
  "x-fern-sdk-return-value": "phone"
14064
14548
  }
14065
14549
  },
14066
- "/thermostats/climate_setting_schedules/create": {
14550
+ "/thermostats/activate_climate_preset": {
14067
14551
  post: {
14068
- operationId: "thermostatsClimateSettingSchedulesCreatePost",
14552
+ operationId: "thermostatsActivateClimatePresetPost",
14069
14553
  requestBody: {
14070
14554
  content: {
14071
14555
  "application/json": {
14072
14556
  schema: {
14073
14557
  properties: {
14074
- cooling_set_point_celsius: {
14075
- format: "float",
14076
- type: "number"
14077
- },
14078
- cooling_set_point_fahrenheit: {
14079
- format: "float",
14080
- type: "number"
14081
- },
14082
- device_id: { type: "string" },
14083
- heating_set_point_celsius: {
14084
- format: "float",
14085
- type: "number"
14086
- },
14087
- heating_set_point_fahrenheit: {
14088
- format: "float",
14089
- type: "number"
14090
- },
14091
- hvac_mode_setting: {
14092
- enum: ["off", "heat", "cool", "heat_cool"],
14093
- type: "string"
14094
- },
14095
- manual_override_allowed: { type: "boolean" },
14096
- name: { type: "string" },
14097
- schedule_ends_at: { type: "string" },
14098
- schedule_starts_at: { type: "string" },
14099
- schedule_type: {
14100
- default: "time_bound",
14101
- enum: ["time_bound"],
14102
- type: "string"
14103
- }
14558
+ climate_preset_key: { type: "string" },
14559
+ device_id: { format: "uuid", type: "string" }
14104
14560
  },
14105
- required: [
14106
- "device_id",
14107
- "schedule_starts_at",
14108
- "schedule_ends_at"
14109
- ],
14561
+ required: ["device_id", "climate_preset_key"],
14110
14562
  type: "object"
14111
14563
  }
14112
14564
  }
@@ -14118,12 +14570,12 @@ var openapi_default = {
14118
14570
  "application/json": {
14119
14571
  schema: {
14120
14572
  properties: {
14121
- climate_setting_schedule: {
14122
- $ref: "#/components/schemas/climate_setting_schedule"
14573
+ action_attempt: {
14574
+ $ref: "#/components/schemas/action_attempt"
14123
14575
  },
14124
14576
  ok: { type: "boolean" }
14125
14577
  },
14126
- required: ["climate_setting_schedule", "ok"],
14578
+ required: ["action_attempt", "ok"],
14127
14579
  type: "object"
14128
14580
  }
14129
14581
  }
@@ -14134,32 +14586,37 @@ var openapi_default = {
14134
14586
  401: { description: "Unauthorized" }
14135
14587
  },
14136
14588
  security: [
14137
- { client_session: [] },
14138
14589
  { pat_with_workspace: [] },
14139
14590
  { console_session: [] },
14140
14591
  { api_key: [] }
14141
14592
  ],
14142
- summary: "/thermostats/climate_setting_schedules/create",
14593
+ summary: "/thermostats/activate_climate_preset",
14143
14594
  tags: ["/thermostats"],
14144
- "x-fern-sdk-group-name": ["thermostats", "climate_setting_schedules"],
14145
- "x-fern-sdk-method-name": "create",
14146
- "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"
14147
14598
  }
14148
14599
  },
14149
- "/thermostats/climate_setting_schedules/delete": {
14600
+ "/thermostats/cool": {
14150
14601
  post: {
14151
- operationId: "thermostatsClimateSettingSchedulesDeletePost",
14602
+ operationId: "thermostatsCoolPost",
14152
14603
  requestBody: {
14153
14604
  content: {
14154
14605
  "application/json": {
14155
14606
  schema: {
14156
14607
  properties: {
14157
- climate_setting_schedule_id: {
14158
- format: "uuid",
14159
- type: "string"
14160
- }
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" }
14161
14618
  },
14162
- required: ["climate_setting_schedule_id"],
14619
+ required: ["device_id"],
14163
14620
  type: "object"
14164
14621
  }
14165
14622
  }
@@ -14170,8 +14627,13 @@ var openapi_default = {
14170
14627
  content: {
14171
14628
  "application/json": {
14172
14629
  schema: {
14173
- properties: { ok: { type: "boolean" } },
14174
- required: ["ok"],
14630
+ properties: {
14631
+ action_attempt: {
14632
+ $ref: "#/components/schemas/action_attempt"
14633
+ },
14634
+ ok: { type: "boolean" }
14635
+ },
14636
+ required: ["action_attempt", "ok"],
14175
14637
  type: "object"
14176
14638
  }
14177
14639
  }
@@ -14187,24 +14649,53 @@ var openapi_default = {
14187
14649
  { console_session: [] },
14188
14650
  { api_key: [] }
14189
14651
  ],
14190
- summary: "/thermostats/climate_setting_schedules/delete",
14652
+ summary: "/thermostats/cool",
14191
14653
  tags: ["/thermostats"],
14192
- "x-fern-sdk-group-name": ["thermostats", "climate_setting_schedules"],
14193
- "x-fern-sdk-method-name": "delete"
14194
- },
14195
- put: {
14196
- operationId: "thermostatsClimateSettingSchedulesDeletePut",
14654
+ "x-fern-sdk-group-name": ["thermostats"],
14655
+ "x-fern-sdk-method-name": "cool",
14656
+ "x-fern-sdk-return-value": "action_attempt"
14657
+ }
14658
+ },
14659
+ "/thermostats/create_climate_preset": {
14660
+ post: {
14661
+ operationId: "thermostatsCreateClimatePresetPost",
14197
14662
  requestBody: {
14198
14663
  content: {
14199
14664
  "application/json": {
14200
14665
  schema: {
14201
14666
  properties: {
14202
- climate_setting_schedule_id: {
14203
- 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"],
14204
14688
  type: "string"
14205
- }
14689
+ },
14690
+ manual_override_allowed: { type: "boolean" },
14691
+ name: { nullable: true, type: "string" }
14206
14692
  },
14207
- required: ["climate_setting_schedule_id"],
14693
+ required: [
14694
+ "device_id",
14695
+ "climate_preset_key",
14696
+ "name",
14697
+ "manual_override_allowed"
14698
+ ],
14208
14699
  type: "object"
14209
14700
  }
14210
14701
  }
@@ -14215,8 +14706,53 @@ var openapi_default = {
14215
14706
  content: {
14216
14707
  "application/json": {
14217
14708
  schema: {
14218
- properties: { ok: { type: "boolean" } },
14219
- required: ["ok"],
14709
+ properties: {
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"
14752
+ },
14753
+ ok: { type: "boolean" }
14754
+ },
14755
+ required: ["climate_preset", "ok"],
14220
14756
  type: "object"
14221
14757
  }
14222
14758
  }
@@ -14227,30 +14763,28 @@ var openapi_default = {
14227
14763
  401: { description: "Unauthorized" }
14228
14764
  },
14229
14765
  security: [
14230
- { client_session: [] },
14231
14766
  { pat_with_workspace: [] },
14232
14767
  { console_session: [] },
14233
14768
  { api_key: [] }
14234
14769
  ],
14235
- summary: "/thermostats/climate_setting_schedules/delete",
14770
+ summary: "/thermostats/create_climate_preset",
14236
14771
  tags: ["/thermostats"],
14237
- "x-fern-ignore": true
14772
+ "x-fern-sdk-group-name": ["thermostats"],
14773
+ "x-fern-sdk-method-name": "create_climate_preset"
14238
14774
  }
14239
14775
  },
14240
- "/thermostats/climate_setting_schedules/get": {
14776
+ "/thermostats/delete_climate_preset": {
14241
14777
  post: {
14242
- operationId: "thermostatsClimateSettingSchedulesGetPost",
14778
+ operationId: "thermostatsDeleteClimatePresetPost",
14243
14779
  requestBody: {
14244
14780
  content: {
14245
14781
  "application/json": {
14246
14782
  schema: {
14247
14783
  properties: {
14248
- climate_setting_schedule_id: {
14249
- format: "uuid",
14250
- type: "string"
14251
- },
14784
+ climate_preset_key: { type: "string" },
14252
14785
  device_id: { format: "uuid", type: "string" }
14253
14786
  },
14787
+ required: ["device_id", "climate_preset_key"],
14254
14788
  type: "object"
14255
14789
  }
14256
14790
  }
@@ -14261,13 +14795,8 @@ var openapi_default = {
14261
14795
  content: {
14262
14796
  "application/json": {
14263
14797
  schema: {
14264
- properties: {
14265
- climate_setting_schedule: {
14266
- $ref: "#/components/schemas/climate_setting_schedule"
14267
- },
14268
- ok: { type: "boolean" }
14269
- },
14270
- required: ["climate_setting_schedule", "ok"],
14798
+ properties: { ok: { type: "boolean" } },
14799
+ required: ["ok"],
14271
14800
  type: "object"
14272
14801
  }
14273
14802
  }
@@ -14278,30 +14807,27 @@ var openapi_default = {
14278
14807
  401: { description: "Unauthorized" }
14279
14808
  },
14280
14809
  security: [
14281
- { client_session: [] },
14282
14810
  { pat_with_workspace: [] },
14283
14811
  { console_session: [] },
14284
14812
  { api_key: [] }
14285
14813
  ],
14286
- summary: "/thermostats/climate_setting_schedules/get",
14814
+ summary: "/thermostats/delete_climate_preset",
14287
14815
  tags: ["/thermostats"],
14288
- "x-fern-sdk-group-name": ["thermostats", "climate_setting_schedules"],
14289
- "x-fern-sdk-method-name": "get",
14290
- "x-fern-sdk-return-value": "climate_setting_schedule"
14816
+ "x-fern-sdk-group-name": ["thermostats"],
14817
+ "x-fern-sdk-method-name": "delete_climate_preset"
14291
14818
  }
14292
14819
  },
14293
- "/thermostats/climate_setting_schedules/list": {
14820
+ "/thermostats/get": {
14294
14821
  post: {
14295
- operationId: "thermostatsClimateSettingSchedulesListPost",
14822
+ operationId: "thermostatsGetPost",
14296
14823
  requestBody: {
14297
14824
  content: {
14298
14825
  "application/json": {
14299
14826
  schema: {
14300
14827
  properties: {
14301
14828
  device_id: { format: "uuid", type: "string" },
14302
- user_identifier_key: { type: "string" }
14829
+ name: { type: "string" }
14303
14830
  },
14304
- required: ["device_id"],
14305
14831
  type: "object"
14306
14832
  }
14307
14833
  }
@@ -14313,15 +14839,10 @@ var openapi_default = {
14313
14839
  "application/json": {
14314
14840
  schema: {
14315
14841
  properties: {
14316
- climate_setting_schedules: {
14317
- items: {
14318
- $ref: "#/components/schemas/climate_setting_schedule"
14319
- },
14320
- type: "array"
14321
- },
14322
- ok: { type: "boolean" }
14842
+ ok: { type: "boolean" },
14843
+ thermostat: { $ref: "#/components/schemas/device" }
14323
14844
  },
14324
- required: ["climate_setting_schedules", "ok"],
14845
+ required: ["thermostat", "ok"],
14325
14846
  type: "object"
14326
14847
  }
14327
14848
  }
@@ -14332,38 +14853,28 @@ var openapi_default = {
14332
14853
  401: { description: "Unauthorized" }
14333
14854
  },
14334
14855
  security: [
14335
- { api_key: [] },
14336
14856
  { client_session: [] },
14337
14857
  { pat_with_workspace: [] },
14338
- { console_session: [] }
14858
+ { console_session: [] },
14859
+ { api_key: [] }
14339
14860
  ],
14340
- summary: "/thermostats/climate_setting_schedules/list",
14861
+ summary: "/thermostats/get",
14341
14862
  tags: ["/thermostats"],
14342
- "x-fern-sdk-group-name": ["thermostats", "climate_setting_schedules"],
14343
- "x-fern-sdk-method-name": "list",
14344
- "x-fern-sdk-return-value": "climate_setting_schedules"
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"
14345
14867
  }
14346
14868
  },
14347
- "/thermostats/climate_setting_schedules/update": {
14348
- patch: {
14349
- operationId: "thermostatsClimateSettingSchedulesUpdatePatch",
14869
+ "/thermostats/heat": {
14870
+ post: {
14871
+ operationId: "thermostatsHeatPost",
14350
14872
  requestBody: {
14351
14873
  content: {
14352
14874
  "application/json": {
14353
14875
  schema: {
14354
14876
  properties: {
14355
- climate_setting_schedule_id: {
14356
- format: "uuid",
14357
- type: "string"
14358
- },
14359
- cooling_set_point_celsius: {
14360
- format: "float",
14361
- type: "number"
14362
- },
14363
- cooling_set_point_fahrenheit: {
14364
- format: "float",
14365
- type: "number"
14366
- },
14877
+ device_id: { format: "uuid", type: "string" },
14367
14878
  heating_set_point_celsius: {
14368
14879
  format: "float",
14369
14880
  type: "number"
@@ -14372,21 +14883,9 @@ var openapi_default = {
14372
14883
  format: "float",
14373
14884
  type: "number"
14374
14885
  },
14375
- hvac_mode_setting: {
14376
- enum: ["off", "heat", "cool", "heat_cool"],
14377
- type: "string"
14378
- },
14379
- manual_override_allowed: { type: "boolean" },
14380
- name: { type: "string" },
14381
- schedule_ends_at: { type: "string" },
14382
- schedule_starts_at: { type: "string" },
14383
- schedule_type: {
14384
- default: "time_bound",
14385
- enum: ["time_bound"],
14386
- type: "string"
14387
- }
14886
+ sync: { default: false, type: "boolean" }
14388
14887
  },
14389
- required: ["climate_setting_schedule_id"],
14888
+ required: ["device_id"],
14390
14889
  type: "object"
14391
14890
  }
14392
14891
  }
@@ -14398,12 +14897,12 @@ var openapi_default = {
14398
14897
  "application/json": {
14399
14898
  schema: {
14400
14899
  properties: {
14401
- climate_setting_schedule: {
14402
- $ref: "#/components/schemas/climate_setting_schedule"
14900
+ action_attempt: {
14901
+ $ref: "#/components/schemas/action_attempt"
14403
14902
  },
14404
14903
  ok: { type: "boolean" }
14405
14904
  },
14406
- required: ["climate_setting_schedule", "ok"],
14905
+ required: ["action_attempt", "ok"],
14407
14906
  type: "object"
14408
14907
  }
14409
14908
  }
@@ -14419,21 +14918,21 @@ var openapi_default = {
14419
14918
  { console_session: [] },
14420
14919
  { api_key: [] }
14421
14920
  ],
14422
- summary: "/thermostats/climate_setting_schedules/update",
14921
+ summary: "/thermostats/heat",
14423
14922
  tags: ["/thermostats"],
14424
- "x-fern-ignore": true
14425
- },
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": {
14426
14929
  post: {
14427
- operationId: "thermostatsClimateSettingSchedulesUpdatePost",
14930
+ operationId: "thermostatsHeatCoolPost",
14428
14931
  requestBody: {
14429
14932
  content: {
14430
14933
  "application/json": {
14431
14934
  schema: {
14432
14935
  properties: {
14433
- climate_setting_schedule_id: {
14434
- format: "uuid",
14435
- type: "string"
14436
- },
14437
14936
  cooling_set_point_celsius: {
14438
14937
  format: "float",
14439
14938
  type: "number"
@@ -14442,6 +14941,7 @@ var openapi_default = {
14442
14941
  format: "float",
14443
14942
  type: "number"
14444
14943
  },
14944
+ device_id: { format: "uuid", type: "string" },
14445
14945
  heating_set_point_celsius: {
14446
14946
  format: "float",
14447
14947
  type: "number"
@@ -14450,21 +14950,9 @@ var openapi_default = {
14450
14950
  format: "float",
14451
14951
  type: "number"
14452
14952
  },
14453
- hvac_mode_setting: {
14454
- enum: ["off", "heat", "cool", "heat_cool"],
14455
- type: "string"
14456
- },
14457
- manual_override_allowed: { type: "boolean" },
14458
- name: { type: "string" },
14459
- schedule_ends_at: { type: "string" },
14460
- schedule_starts_at: { type: "string" },
14461
- schedule_type: {
14462
- default: "time_bound",
14463
- enum: ["time_bound"],
14464
- type: "string"
14465
- }
14953
+ sync: { default: false, type: "boolean" }
14466
14954
  },
14467
- required: ["climate_setting_schedule_id"],
14955
+ required: ["device_id"],
14468
14956
  type: "object"
14469
14957
  }
14470
14958
  }
@@ -14476,12 +14964,12 @@ var openapi_default = {
14476
14964
  "application/json": {
14477
14965
  schema: {
14478
14966
  properties: {
14479
- climate_setting_schedule: {
14480
- $ref: "#/components/schemas/climate_setting_schedule"
14967
+ action_attempt: {
14968
+ $ref: "#/components/schemas/action_attempt"
14481
14969
  },
14482
14970
  ok: { type: "boolean" }
14483
14971
  },
14484
- required: ["climate_setting_schedule", "ok"],
14972
+ required: ["action_attempt", "ok"],
14485
14973
  type: "object"
14486
14974
  }
14487
14975
  }
@@ -14497,56 +14985,227 @@ var openapi_default = {
14497
14985
  { console_session: [] },
14498
14986
  { api_key: [] }
14499
14987
  ],
14500
- summary: "/thermostats/climate_setting_schedules/update",
14988
+ summary: "/thermostats/heat_cool",
14501
14989
  tags: ["/thermostats"],
14502
- "x-fern-sdk-group-name": ["thermostats", "climate_setting_schedules"],
14503
- "x-fern-sdk-method-name": "update"
14504
- },
14505
- put: {
14506
- operationId: "thermostatsClimateSettingSchedulesUpdatePut",
14990
+ "x-fern-sdk-group-name": ["thermostats"],
14991
+ "x-fern-sdk-method-name": "heat_cool",
14992
+ "x-fern-sdk-return-value": "action_attempt"
14993
+ }
14994
+ },
14995
+ "/thermostats/list": {
14996
+ post: {
14997
+ operationId: "thermostatsListPost",
14507
14998
  requestBody: {
14508
14999
  content: {
14509
15000
  "application/json": {
14510
15001
  schema: {
14511
15002
  properties: {
14512
- climate_setting_schedule_id: {
15003
+ connect_webview_id: { format: "uuid", type: "string" },
15004
+ connected_account_id: {
15005
+ description: "List all devices owned by this connected account",
14513
15006
  format: "uuid",
14514
15007
  type: "string"
14515
15008
  },
14516
- cooling_set_point_celsius: {
14517
- format: "float",
14518
- type: "number"
14519
- },
14520
- cooling_set_point_fahrenheit: {
14521
- format: "float",
14522
- type: "number"
14523
- },
14524
- heating_set_point_celsius: {
14525
- format: "float",
14526
- type: "number"
15009
+ connected_account_ids: {
15010
+ items: { format: "uuid", type: "string" },
15011
+ type: "array"
14527
15012
  },
14528
- heating_set_point_fahrenheit: {
14529
- format: "float",
14530
- type: "number"
15013
+ created_before: { format: "date-time", type: "string" },
15014
+ custom_metadata_has: {
15015
+ additionalProperties: {
15016
+ oneOf: [{ type: "string" }, { type: "boolean" }]
15017
+ },
15018
+ type: "object"
14531
15019
  },
14532
- hvac_mode_setting: {
14533
- enum: ["off", "heat", "cool", "heat_cool"],
14534
- type: "string"
15020
+ device_ids: {
15021
+ items: { format: "uuid", type: "string" },
15022
+ type: "array"
14535
15023
  },
14536
- manual_override_allowed: { type: "boolean" },
14537
- name: { type: "string" },
14538
- schedule_ends_at: { type: "string" },
14539
- schedule_starts_at: { type: "string" },
14540
- schedule_type: {
14541
- default: "time_bound",
14542
- enum: ["time_bound"],
14543
- type: "string"
14544
- }
14545
- },
14546
- required: ["climate_setting_schedule_id"],
14547
- type: "object"
14548
- }
14549
- }
15024
+ device_type: {
15025
+ oneOf: [
15026
+ {
15027
+ enum: [
15028
+ "akuvox_lock",
15029
+ "august_lock",
15030
+ "brivo_access_point",
15031
+ "butterflymx_panel",
15032
+ "avigilon_alta_entry",
15033
+ "doorking_lock",
15034
+ "genie_door",
15035
+ "igloo_lock",
15036
+ "linear_lock",
15037
+ "lockly_lock",
15038
+ "kwikset_lock",
15039
+ "nuki_lock",
15040
+ "salto_lock",
15041
+ "schlage_lock",
15042
+ "seam_relay",
15043
+ "smartthings_lock",
15044
+ "wyze_lock",
15045
+ "yale_lock",
15046
+ "two_n_intercom",
15047
+ "controlbyweb_device",
15048
+ "ttlock_lock",
15049
+ "igloohome_lock",
15050
+ "hubitat_lock",
15051
+ "four_suites_door",
15052
+ "dormakaba_oracode_door",
15053
+ "tedee_lock"
15054
+ ],
15055
+ type: "string"
15056
+ },
15057
+ {
15058
+ enum: ["noiseaware_activity_zone", "minut_sensor"],
15059
+ type: "string"
15060
+ },
15061
+ {
15062
+ enum: [
15063
+ "ecobee_thermostat",
15064
+ "nest_thermostat",
15065
+ "honeywell_resideo_thermostat"
15066
+ ],
15067
+ type: "string"
15068
+ },
15069
+ { enum: ["ios_phone", "android_phone"], type: "string" }
15070
+ ]
15071
+ },
15072
+ device_types: {
15073
+ items: {
15074
+ oneOf: [
15075
+ {
15076
+ enum: [
15077
+ "akuvox_lock",
15078
+ "august_lock",
15079
+ "brivo_access_point",
15080
+ "butterflymx_panel",
15081
+ "avigilon_alta_entry",
15082
+ "doorking_lock",
15083
+ "genie_door",
15084
+ "igloo_lock",
15085
+ "linear_lock",
15086
+ "lockly_lock",
15087
+ "kwikset_lock",
15088
+ "nuki_lock",
15089
+ "salto_lock",
15090
+ "schlage_lock",
15091
+ "seam_relay",
15092
+ "smartthings_lock",
15093
+ "wyze_lock",
15094
+ "yale_lock",
15095
+ "two_n_intercom",
15096
+ "controlbyweb_device",
15097
+ "ttlock_lock",
15098
+ "igloohome_lock",
15099
+ "hubitat_lock",
15100
+ "four_suites_door",
15101
+ "dormakaba_oracode_door",
15102
+ "tedee_lock"
15103
+ ],
15104
+ type: "string"
15105
+ },
15106
+ {
15107
+ enum: ["noiseaware_activity_zone", "minut_sensor"],
15108
+ type: "string"
15109
+ },
15110
+ {
15111
+ enum: [
15112
+ "ecobee_thermostat",
15113
+ "nest_thermostat",
15114
+ "honeywell_resideo_thermostat"
15115
+ ],
15116
+ type: "string"
15117
+ },
15118
+ {
15119
+ enum: ["ios_phone", "android_phone"],
15120
+ type: "string"
15121
+ }
15122
+ ]
15123
+ },
15124
+ type: "array"
15125
+ },
15126
+ exclude_if: {
15127
+ items: {
15128
+ enum: [
15129
+ "can_remotely_unlock",
15130
+ "can_remotely_lock",
15131
+ "can_program_offline_access_codes",
15132
+ "can_program_online_access_codes",
15133
+ "can_hvac_heat",
15134
+ "can_hvac_cool",
15135
+ "can_hvac_heat_cool",
15136
+ "can_turn_off_hvac",
15137
+ "can_simulate_removal",
15138
+ "can_simulate_connection",
15139
+ "can_simulate_disconnection"
15140
+ ],
15141
+ type: "string"
15142
+ },
15143
+ type: "array"
15144
+ },
15145
+ include_if: {
15146
+ items: {
15147
+ enum: [
15148
+ "can_remotely_unlock",
15149
+ "can_remotely_lock",
15150
+ "can_program_offline_access_codes",
15151
+ "can_program_online_access_codes",
15152
+ "can_hvac_heat",
15153
+ "can_hvac_cool",
15154
+ "can_hvac_heat_cool",
15155
+ "can_turn_off_hvac",
15156
+ "can_simulate_removal",
15157
+ "can_simulate_connection",
15158
+ "can_simulate_disconnection"
15159
+ ],
15160
+ type: "string"
15161
+ },
15162
+ type: "array"
15163
+ },
15164
+ limit: { default: 500, format: "float", type: "number" },
15165
+ manufacturer: {
15166
+ enum: [
15167
+ "akuvox",
15168
+ "august",
15169
+ "avigilon_alta",
15170
+ "brivo",
15171
+ "butterflymx",
15172
+ "doorking",
15173
+ "four_suites",
15174
+ "genie",
15175
+ "igloo",
15176
+ "keywe",
15177
+ "kwikset",
15178
+ "linear",
15179
+ "lockly",
15180
+ "nuki",
15181
+ "philia",
15182
+ "salto",
15183
+ "samsung",
15184
+ "schlage",
15185
+ "seam",
15186
+ "unknown",
15187
+ "wyze",
15188
+ "yale",
15189
+ "minut",
15190
+ "two_n",
15191
+ "ttlock",
15192
+ "nest",
15193
+ "igloohome",
15194
+ "ecobee",
15195
+ "hubitat",
15196
+ "controlbyweb",
15197
+ "smartthings",
15198
+ "dormakaba_oracode",
15199
+ "tedee",
15200
+ "honeywell_resideo"
15201
+ ],
15202
+ type: "string"
15203
+ },
15204
+ user_identifier_key: { type: "string" }
15205
+ },
15206
+ type: "object"
15207
+ }
15208
+ }
14550
15209
  }
14551
15210
  },
14552
15211
  responses: {
@@ -14555,12 +15214,13 @@ var openapi_default = {
14555
15214
  "application/json": {
14556
15215
  schema: {
14557
15216
  properties: {
14558
- climate_setting_schedule: {
14559
- $ref: "#/components/schemas/climate_setting_schedule"
14560
- },
14561
- ok: { type: "boolean" }
15217
+ ok: { type: "boolean" },
15218
+ thermostats: {
15219
+ items: { $ref: "#/components/schemas/device" },
15220
+ type: "array"
15221
+ }
14562
15222
  },
14563
- required: ["climate_setting_schedule", "ok"],
15223
+ required: ["thermostats", "ok"],
14564
15224
  type: "object"
14565
15225
  }
14566
15226
  }
@@ -14571,32 +15231,26 @@ var openapi_default = {
14571
15231
  401: { description: "Unauthorized" }
14572
15232
  },
14573
15233
  security: [
14574
- { client_session: [] },
15234
+ { api_key: [] },
14575
15235
  { pat_with_workspace: [] },
14576
15236
  { console_session: [] },
14577
- { api_key: [] }
15237
+ { client_session: [] }
14578
15238
  ],
14579
- summary: "/thermostats/climate_setting_schedules/update",
15239
+ summary: "/thermostats/list",
14580
15240
  tags: ["/thermostats"],
14581
- "x-fern-ignore": true
15241
+ "x-fern-sdk-group-name": ["thermostats"],
15242
+ "x-fern-sdk-method-name": "list",
15243
+ "x-fern-sdk-return-value": "thermostats"
14582
15244
  }
14583
15245
  },
14584
- "/thermostats/cool": {
15246
+ "/thermostats/off": {
14585
15247
  post: {
14586
- operationId: "thermostatsCoolPost",
15248
+ operationId: "thermostatsOffPost",
14587
15249
  requestBody: {
14588
15250
  content: {
14589
15251
  "application/json": {
14590
15252
  schema: {
14591
15253
  properties: {
14592
- cooling_set_point_celsius: {
14593
- format: "float",
14594
- type: "number"
14595
- },
14596
- cooling_set_point_fahrenheit: {
14597
- format: "float",
14598
- type: "number"
14599
- },
14600
15254
  device_id: { format: "uuid", type: "string" },
14601
15255
  sync: { default: false, type: "boolean" }
14602
15256
  },
@@ -14633,24 +15287,38 @@ var openapi_default = {
14633
15287
  { console_session: [] },
14634
15288
  { api_key: [] }
14635
15289
  ],
14636
- summary: "/thermostats/cool",
15290
+ summary: "/thermostats/off",
14637
15291
  tags: ["/thermostats"],
14638
15292
  "x-fern-sdk-group-name": ["thermostats"],
14639
- "x-fern-sdk-method-name": "cool",
15293
+ "x-fern-sdk-method-name": "off",
14640
15294
  "x-fern-sdk-return-value": "action_attempt"
14641
15295
  }
14642
15296
  },
14643
- "/thermostats/get": {
15297
+ "/thermostats/schedules/create": {
14644
15298
  post: {
14645
- operationId: "thermostatsGetPost",
15299
+ operationId: "thermostatsSchedulesCreatePost",
14646
15300
  requestBody: {
14647
15301
  content: {
14648
15302
  "application/json": {
14649
15303
  schema: {
14650
15304
  properties: {
14651
- device_id: { format: "uuid", type: "string" },
14652
- name: { type: "string" }
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" }
14653
15315
  },
15316
+ required: [
15317
+ "device_id",
15318
+ "climate_preset_key",
15319
+ "starts_at",
15320
+ "ends_at"
15321
+ ],
14654
15322
  type: "object"
14655
15323
  }
14656
15324
  }
@@ -14663,9 +15331,11 @@ var openapi_default = {
14663
15331
  schema: {
14664
15332
  properties: {
14665
15333
  ok: { type: "boolean" },
14666
- thermostat: { $ref: "#/components/schemas/device" }
15334
+ thermostat_schedule: {
15335
+ $ref: "#/components/schemas/thermostat_schedule"
15336
+ }
14667
15337
  },
14668
- required: ["thermostat", "ok"],
15338
+ required: ["thermostat_schedule", "ok"],
14669
15339
  type: "object"
14670
15340
  }
14671
15341
  }
@@ -14681,34 +15351,24 @@ var openapi_default = {
14681
15351
  { console_session: [] },
14682
15352
  { api_key: [] }
14683
15353
  ],
14684
- summary: "/thermostats/get",
15354
+ summary: "/thermostats/schedules/create",
14685
15355
  tags: ["/thermostats"],
14686
- "x-deprecated": "Use `/devices/get` instead.",
14687
- "x-fern-sdk-group-name": ["thermostats"],
14688
- "x-fern-sdk-method-name": "get",
14689
- "x-fern-sdk-return-value": "thermostat"
15356
+ "x-fern-sdk-group-name": ["thermostats", "schedules"],
15357
+ "x-fern-sdk-method-name": "create",
15358
+ "x-fern-sdk-return-value": "thermostat_schedule"
14690
15359
  }
14691
15360
  },
14692
- "/thermostats/heat": {
15361
+ "/thermostats/schedules/delete": {
14693
15362
  post: {
14694
- operationId: "thermostatsHeatPost",
15363
+ operationId: "thermostatsSchedulesDeletePost",
14695
15364
  requestBody: {
14696
15365
  content: {
14697
15366
  "application/json": {
14698
15367
  schema: {
14699
15368
  properties: {
14700
- device_id: { format: "uuid", type: "string" },
14701
- heating_set_point_celsius: {
14702
- format: "float",
14703
- type: "number"
14704
- },
14705
- heating_set_point_fahrenheit: {
14706
- format: "float",
14707
- type: "number"
14708
- },
14709
- sync: { default: false, type: "boolean" }
15369
+ thermostat_schedule_id: { format: "uuid", type: "string" }
14710
15370
  },
14711
- required: ["device_id"],
15371
+ required: ["thermostat_schedule_id"],
14712
15372
  type: "object"
14713
15373
  }
14714
15374
  }
@@ -14719,13 +15379,8 @@ var openapi_default = {
14719
15379
  content: {
14720
15380
  "application/json": {
14721
15381
  schema: {
14722
- properties: {
14723
- action_attempt: {
14724
- $ref: "#/components/schemas/action_attempt"
14725
- },
14726
- ok: { type: "boolean" }
14727
- },
14728
- required: ["action_attempt", "ok"],
15382
+ properties: { ok: { type: "boolean" } },
15383
+ required: ["ok"],
14729
15384
  type: "object"
14730
15385
  }
14731
15386
  }
@@ -14741,41 +15396,23 @@ var openapi_default = {
14741
15396
  { console_session: [] },
14742
15397
  { api_key: [] }
14743
15398
  ],
14744
- summary: "/thermostats/heat",
15399
+ summary: "/thermostats/schedules/delete",
14745
15400
  tags: ["/thermostats"],
14746
- "x-fern-sdk-group-name": ["thermostats"],
14747
- "x-fern-sdk-method-name": "heat",
14748
- "x-fern-sdk-return-value": "action_attempt"
15401
+ "x-fern-sdk-group-name": ["thermostats", "schedules"],
15402
+ "x-fern-sdk-method-name": "delete"
14749
15403
  }
14750
15404
  },
14751
- "/thermostats/heat_cool": {
15405
+ "/thermostats/schedules/get": {
14752
15406
  post: {
14753
- operationId: "thermostatsHeatCoolPost",
15407
+ operationId: "thermostatsSchedulesGetPost",
14754
15408
  requestBody: {
14755
15409
  content: {
14756
15410
  "application/json": {
14757
15411
  schema: {
14758
15412
  properties: {
14759
- cooling_set_point_celsius: {
14760
- format: "float",
14761
- type: "number"
14762
- },
14763
- cooling_set_point_fahrenheit: {
14764
- format: "float",
14765
- type: "number"
14766
- },
14767
- device_id: { format: "uuid", type: "string" },
14768
- heating_set_point_celsius: {
14769
- format: "float",
14770
- type: "number"
14771
- },
14772
- heating_set_point_fahrenheit: {
14773
- format: "float",
14774
- type: "number"
14775
- },
14776
- sync: { default: false, type: "boolean" }
15413
+ thermostat_schedule_id: { format: "uuid", type: "string" }
14777
15414
  },
14778
- required: ["device_id"],
15415
+ required: ["thermostat_schedule_id"],
14779
15416
  type: "object"
14780
15417
  }
14781
15418
  }
@@ -14787,12 +15424,12 @@ var openapi_default = {
14787
15424
  "application/json": {
14788
15425
  schema: {
14789
15426
  properties: {
14790
- action_attempt: {
14791
- $ref: "#/components/schemas/action_attempt"
14792
- },
14793
- ok: { type: "boolean" }
15427
+ ok: { type: "boolean" },
15428
+ thermostat_schedule: {
15429
+ $ref: "#/components/schemas/thermostat_schedule"
15430
+ }
14794
15431
  },
14795
- required: ["action_attempt", "ok"],
15432
+ required: ["thermostat_schedule", "ok"],
14796
15433
  type: "object"
14797
15434
  }
14798
15435
  }
@@ -14808,224 +15445,25 @@ var openapi_default = {
14808
15445
  { console_session: [] },
14809
15446
  { api_key: [] }
14810
15447
  ],
14811
- summary: "/thermostats/heat_cool",
15448
+ summary: "/thermostats/schedules/get",
14812
15449
  tags: ["/thermostats"],
14813
- "x-fern-sdk-group-name": ["thermostats"],
14814
- "x-fern-sdk-method-name": "heat_cool",
14815
- "x-fern-sdk-return-value": "action_attempt"
15450
+ "x-fern-sdk-group-name": ["thermostats", "schedules"],
15451
+ "x-fern-sdk-method-name": "get",
15452
+ "x-fern-sdk-return-value": "thermostat_schedule"
14816
15453
  }
14817
15454
  },
14818
- "/thermostats/list": {
15455
+ "/thermostats/schedules/list": {
14819
15456
  post: {
14820
- operationId: "thermostatsListPost",
15457
+ operationId: "thermostatsSchedulesListPost",
14821
15458
  requestBody: {
14822
15459
  content: {
14823
15460
  "application/json": {
14824
- schema: {
14825
- properties: {
14826
- connect_webview_id: { format: "uuid", type: "string" },
14827
- connected_account_id: {
14828
- description: "List all devices owned by this connected account",
14829
- format: "uuid",
14830
- type: "string"
14831
- },
14832
- connected_account_ids: {
14833
- items: { format: "uuid", type: "string" },
14834
- type: "array"
14835
- },
14836
- created_before: { format: "date-time", type: "string" },
14837
- custom_metadata_has: {
14838
- additionalProperties: {
14839
- oneOf: [{ type: "string" }, { type: "boolean" }]
14840
- },
14841
- type: "object"
14842
- },
14843
- device_ids: {
14844
- items: { format: "uuid", type: "string" },
14845
- type: "array"
14846
- },
14847
- device_type: {
14848
- oneOf: [
14849
- {
14850
- enum: [
14851
- "akuvox_lock",
14852
- "august_lock",
14853
- "brivo_access_point",
14854
- "butterflymx_panel",
14855
- "avigilon_alta_entry",
14856
- "doorking_lock",
14857
- "genie_door",
14858
- "igloo_lock",
14859
- "linear_lock",
14860
- "lockly_lock",
14861
- "kwikset_lock",
14862
- "nuki_lock",
14863
- "salto_lock",
14864
- "schlage_lock",
14865
- "seam_relay",
14866
- "smartthings_lock",
14867
- "wyze_lock",
14868
- "yale_lock",
14869
- "two_n_intercom",
14870
- "controlbyweb_device",
14871
- "ttlock_lock",
14872
- "igloohome_lock",
14873
- "hubitat_lock",
14874
- "four_suites_door",
14875
- "dormakaba_oracode_door",
14876
- "tedee_lock"
14877
- ],
14878
- type: "string"
14879
- },
14880
- {
14881
- enum: ["noiseaware_activity_zone", "minut_sensor"],
14882
- type: "string"
14883
- },
14884
- {
14885
- enum: [
14886
- "ecobee_thermostat",
14887
- "nest_thermostat",
14888
- "honeywell_resideo_thermostat"
14889
- ],
14890
- type: "string"
14891
- },
14892
- { enum: ["ios_phone", "android_phone"], type: "string" }
14893
- ]
14894
- },
14895
- device_types: {
14896
- items: {
14897
- oneOf: [
14898
- {
14899
- enum: [
14900
- "akuvox_lock",
14901
- "august_lock",
14902
- "brivo_access_point",
14903
- "butterflymx_panel",
14904
- "avigilon_alta_entry",
14905
- "doorking_lock",
14906
- "genie_door",
14907
- "igloo_lock",
14908
- "linear_lock",
14909
- "lockly_lock",
14910
- "kwikset_lock",
14911
- "nuki_lock",
14912
- "salto_lock",
14913
- "schlage_lock",
14914
- "seam_relay",
14915
- "smartthings_lock",
14916
- "wyze_lock",
14917
- "yale_lock",
14918
- "two_n_intercom",
14919
- "controlbyweb_device",
14920
- "ttlock_lock",
14921
- "igloohome_lock",
14922
- "hubitat_lock",
14923
- "four_suites_door",
14924
- "dormakaba_oracode_door",
14925
- "tedee_lock"
14926
- ],
14927
- type: "string"
14928
- },
14929
- {
14930
- enum: ["noiseaware_activity_zone", "minut_sensor"],
14931
- type: "string"
14932
- },
14933
- {
14934
- enum: [
14935
- "ecobee_thermostat",
14936
- "nest_thermostat",
14937
- "honeywell_resideo_thermostat"
14938
- ],
14939
- type: "string"
14940
- },
14941
- {
14942
- enum: ["ios_phone", "android_phone"],
14943
- type: "string"
14944
- }
14945
- ]
14946
- },
14947
- type: "array"
14948
- },
14949
- exclude_if: {
14950
- items: {
14951
- enum: [
14952
- "can_remotely_unlock",
14953
- "can_remotely_lock",
14954
- "can_program_offline_access_codes",
14955
- "can_program_online_access_codes",
14956
- "can_hvac_heat",
14957
- "can_hvac_cool",
14958
- "can_hvac_heat_cool",
14959
- "can_turn_off_hvac",
14960
- "can_simulate_removal",
14961
- "can_simulate_connection",
14962
- "can_simulate_disconnection"
14963
- ],
14964
- type: "string"
14965
- },
14966
- type: "array"
14967
- },
14968
- include_if: {
14969
- items: {
14970
- enum: [
14971
- "can_remotely_unlock",
14972
- "can_remotely_lock",
14973
- "can_program_offline_access_codes",
14974
- "can_program_online_access_codes",
14975
- "can_hvac_heat",
14976
- "can_hvac_cool",
14977
- "can_hvac_heat_cool",
14978
- "can_turn_off_hvac",
14979
- "can_simulate_removal",
14980
- "can_simulate_connection",
14981
- "can_simulate_disconnection"
14982
- ],
14983
- type: "string"
14984
- },
14985
- type: "array"
14986
- },
14987
- limit: { default: 500, format: "float", type: "number" },
14988
- manufacturer: {
14989
- enum: [
14990
- "akuvox",
14991
- "august",
14992
- "avigilon_alta",
14993
- "brivo",
14994
- "butterflymx",
14995
- "doorking",
14996
- "four_suites",
14997
- "genie",
14998
- "igloo",
14999
- "keywe",
15000
- "kwikset",
15001
- "linear",
15002
- "lockly",
15003
- "nuki",
15004
- "philia",
15005
- "salto",
15006
- "samsung",
15007
- "schlage",
15008
- "seam",
15009
- "unknown",
15010
- "wyze",
15011
- "yale",
15012
- "minut",
15013
- "two_n",
15014
- "ttlock",
15015
- "nest",
15016
- "igloohome",
15017
- "ecobee",
15018
- "hubitat",
15019
- "controlbyweb",
15020
- "smartthings",
15021
- "dormakaba_oracode",
15022
- "tedee",
15023
- "honeywell_resideo"
15024
- ],
15025
- type: "string"
15026
- },
15461
+ schema: {
15462
+ properties: {
15463
+ device_id: { format: "uuid", type: "string" },
15027
15464
  user_identifier_key: { type: "string" }
15028
15465
  },
15466
+ required: ["device_id"],
15029
15467
  type: "object"
15030
15468
  }
15031
15469
  }
@@ -15038,12 +15476,14 @@ var openapi_default = {
15038
15476
  schema: {
15039
15477
  properties: {
15040
15478
  ok: { type: "boolean" },
15041
- thermostats: {
15042
- items: { $ref: "#/components/schemas/device" },
15479
+ thermostat_schedules: {
15480
+ items: {
15481
+ $ref: "#/components/schemas/thermostat_schedule"
15482
+ },
15043
15483
  type: "array"
15044
15484
  }
15045
15485
  },
15046
- required: ["thermostats", "ok"],
15486
+ required: ["thermostat_schedules", "ok"],
15047
15487
  type: "object"
15048
15488
  }
15049
15489
  }
@@ -15055,29 +15495,84 @@ var openapi_default = {
15055
15495
  },
15056
15496
  security: [
15057
15497
  { api_key: [] },
15498
+ { client_session: [] },
15058
15499
  { pat_with_workspace: [] },
15059
- { console_session: [] },
15060
- { client_session: [] }
15500
+ { console_session: [] }
15061
15501
  ],
15062
- summary: "/thermostats/list",
15502
+ summary: "/thermostats/schedules/list",
15063
15503
  tags: ["/thermostats"],
15064
- "x-fern-sdk-group-name": ["thermostats"],
15504
+ "x-fern-sdk-group-name": ["thermostats", "schedules"],
15065
15505
  "x-fern-sdk-method-name": "list",
15066
- "x-fern-sdk-return-value": "thermostats"
15506
+ "x-fern-sdk-return-value": "thermostat_schedules"
15067
15507
  }
15068
15508
  },
15069
- "/thermostats/off": {
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: [] },
15553
+ { pat_with_workspace: [] },
15554
+ { console_session: [] },
15555
+ { api_key: [] }
15556
+ ],
15557
+ summary: "/thermostats/schedules/update",
15558
+ tags: ["/thermostats"],
15559
+ "x-fern-ignore": true
15560
+ },
15070
15561
  post: {
15071
- operationId: "thermostatsOffPost",
15562
+ operationId: "thermostatsSchedulesUpdatePost",
15072
15563
  requestBody: {
15073
15564
  content: {
15074
15565
  "application/json": {
15075
15566
  schema: {
15076
15567
  properties: {
15077
- device_id: { format: "uuid", type: "string" },
15078
- sync: { default: false, type: "boolean" }
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" }
15079
15574
  },
15080
- required: ["device_id"],
15575
+ required: ["thermostat_schedule_id"],
15081
15576
  type: "object"
15082
15577
  }
15083
15578
  }
@@ -15089,12 +15584,12 @@ var openapi_default = {
15089
15584
  "application/json": {
15090
15585
  schema: {
15091
15586
  properties: {
15092
- action_attempt: {
15093
- $ref: "#/components/schemas/action_attempt"
15094
- },
15095
- ok: { type: "boolean" }
15587
+ ok: { type: "boolean" },
15588
+ thermostat_schedule: {
15589
+ $ref: "#/components/schemas/thermostat_schedule"
15590
+ }
15096
15591
  },
15097
- required: ["action_attempt", "ok"],
15592
+ required: ["thermostat_schedule", "ok"],
15098
15593
  type: "object"
15099
15594
  }
15100
15595
  }
@@ -15110,11 +15605,54 @@ var openapi_default = {
15110
15605
  { console_session: [] },
15111
15606
  { api_key: [] }
15112
15607
  ],
15113
- summary: "/thermostats/off",
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" },
15623
+ device_id: { format: "uuid", type: "string" }
15624
+ },
15625
+ required: ["device_id", "climate_preset_key"],
15626
+ type: "object"
15627
+ }
15628
+ }
15629
+ }
15630
+ },
15631
+ responses: {
15632
+ 200: {
15633
+ content: {
15634
+ "application/json": {
15635
+ schema: {
15636
+ properties: { ok: { type: "boolean" } },
15637
+ required: ["ok"],
15638
+ type: "object"
15639
+ }
15640
+ }
15641
+ },
15642
+ description: "OK"
15643
+ },
15644
+ 400: { description: "Bad Request" },
15645
+ 401: { description: "Unauthorized" }
15646
+ },
15647
+ security: [
15648
+ { pat_with_workspace: [] },
15649
+ { console_session: [] },
15650
+ { api_key: [] }
15651
+ ],
15652
+ summary: "/thermostats/set_fallback_climate_preset",
15114
15653
  tags: ["/thermostats"],
15115
15654
  "x-fern-sdk-group-name": ["thermostats"],
15116
- "x-fern-sdk-method-name": "off",
15117
- "x-fern-sdk-return-value": "action_attempt"
15655
+ "x-fern-sdk-method-name": "set_fallback_climate_preset"
15118
15656
  }
15119
15657
  },
15120
15658
  "/thermostats/set_fan_mode": {
@@ -15126,7 +15664,12 @@ var openapi_default = {
15126
15664
  schema: {
15127
15665
  properties: {
15128
15666
  device_id: { format: "uuid", type: "string" },
15129
- fan_mode: { enum: ["auto", "on"], type: "string" },
15667
+ fan_mode: {
15668
+ deprecated: true,
15669
+ enum: ["auto", "on"],
15670
+ type: "string",
15671
+ "x-deprecated": "use fan_mode_setting instead."
15672
+ },
15130
15673
  fan_mode_setting: { enum: ["auto", "on"], type: "string" },
15131
15674
  sync: { default: false, type: "boolean" }
15132
15675
  },
@@ -15170,43 +15713,46 @@ var openapi_default = {
15170
15713
  "x-fern-sdk-return-value": "action_attempt"
15171
15714
  }
15172
15715
  },
15173
- "/thermostats/update": {
15716
+ "/thermostats/update_climate_preset": {
15174
15717
  patch: {
15175
- operationId: "thermostatsUpdatePatch",
15718
+ operationId: "thermostatsUpdateClimatePresetPatch",
15176
15719
  requestBody: {
15177
15720
  content: {
15178
15721
  "application/json": {
15179
15722
  schema: {
15180
15723
  properties: {
15181
- default_climate_setting: {
15182
- properties: {
15183
- cooling_set_point_celsius: {
15184
- format: "float",
15185
- type: "number"
15186
- },
15187
- cooling_set_point_fahrenheit: {
15188
- format: "float",
15189
- type: "number"
15190
- },
15191
- heating_set_point_celsius: {
15192
- format: "float",
15193
- type: "number"
15194
- },
15195
- heating_set_point_fahrenheit: {
15196
- format: "float",
15197
- type: "number"
15198
- },
15199
- hvac_mode_setting: {
15200
- enum: ["off", "heat", "cool", "heat_cool"],
15201
- type: "string"
15202
- },
15203
- manual_override_allowed: { type: "boolean" }
15204
- },
15205
- type: "object"
15724
+ climate_preset_key: { type: "string" },
15725
+ cooling_set_point_celsius: {
15726
+ format: "float",
15727
+ type: "number"
15206
15728
  },
15207
- device_id: { format: "uuid", type: "string" }
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" }
15208
15749
  },
15209
- required: ["device_id", "default_climate_setting"],
15750
+ required: [
15751
+ "device_id",
15752
+ "climate_preset_key",
15753
+ "name",
15754
+ "manual_override_allowed"
15755
+ ],
15210
15756
  type: "object"
15211
15757
  }
15212
15758
  }
@@ -15217,8 +15763,53 @@ var openapi_default = {
15217
15763
  content: {
15218
15764
  "application/json": {
15219
15765
  schema: {
15220
- properties: { ok: { type: "boolean" } },
15221
- required: ["ok"],
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"],
15222
15813
  type: "object"
15223
15814
  }
15224
15815
  }
@@ -15229,51 +15820,53 @@ var openapi_default = {
15229
15820
  401: { description: "Unauthorized" }
15230
15821
  },
15231
15822
  security: [
15232
- { api_key: [] },
15233
15823
  { pat_with_workspace: [] },
15234
15824
  { console_session: [] },
15235
- { client_session: [] }
15825
+ { api_key: [] }
15236
15826
  ],
15237
- summary: "/thermostats/update",
15827
+ summary: "/thermostats/update_climate_preset",
15238
15828
  tags: ["/thermostats"],
15239
15829
  "x-fern-ignore": true
15240
15830
  },
15241
15831
  post: {
15242
- operationId: "thermostatsUpdatePost",
15832
+ operationId: "thermostatsUpdateClimatePresetPost",
15243
15833
  requestBody: {
15244
15834
  content: {
15245
15835
  "application/json": {
15246
15836
  schema: {
15247
15837
  properties: {
15248
- default_climate_setting: {
15249
- properties: {
15250
- cooling_set_point_celsius: {
15251
- format: "float",
15252
- type: "number"
15253
- },
15254
- cooling_set_point_fahrenheit: {
15255
- format: "float",
15256
- type: "number"
15257
- },
15258
- heating_set_point_celsius: {
15259
- format: "float",
15260
- type: "number"
15261
- },
15262
- heating_set_point_fahrenheit: {
15263
- format: "float",
15264
- type: "number"
15265
- },
15266
- hvac_mode_setting: {
15267
- enum: ["off", "heat", "cool", "heat_cool"],
15268
- type: "string"
15269
- },
15270
- manual_override_allowed: { type: "boolean" }
15271
- },
15272
- type: "object"
15838
+ climate_preset_key: { type: "string" },
15839
+ cooling_set_point_celsius: {
15840
+ format: "float",
15841
+ type: "number"
15273
15842
  },
15274
- device_id: { format: "uuid", type: "string" }
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" }
15275
15863
  },
15276
- required: ["device_id", "default_climate_setting"],
15864
+ required: [
15865
+ "device_id",
15866
+ "climate_preset_key",
15867
+ "name",
15868
+ "manual_override_allowed"
15869
+ ],
15277
15870
  type: "object"
15278
15871
  }
15279
15872
  }
@@ -15284,8 +15877,53 @@ var openapi_default = {
15284
15877
  content: {
15285
15878
  "application/json": {
15286
15879
  schema: {
15287
- properties: { ok: { type: "boolean" } },
15288
- required: ["ok"],
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"],
15289
15927
  type: "object"
15290
15928
  }
15291
15929
  }
@@ -15296,15 +15934,15 @@ var openapi_default = {
15296
15934
  401: { description: "Unauthorized" }
15297
15935
  },
15298
15936
  security: [
15299
- { api_key: [] },
15300
15937
  { pat_with_workspace: [] },
15301
15938
  { console_session: [] },
15302
- { client_session: [] }
15939
+ { api_key: [] }
15303
15940
  ],
15304
- summary: "/thermostats/update",
15941
+ summary: "/thermostats/update_climate_preset",
15305
15942
  tags: ["/thermostats"],
15306
15943
  "x-fern-sdk-group-name": ["thermostats"],
15307
- "x-fern-sdk-method-name": "update"
15944
+ "x-fern-sdk-method-name": "update_climate_preset",
15945
+ "x-fern-sdk-return-value": "climate_preset"
15308
15946
  }
15309
15947
  },
15310
15948
  "/user_identities/add_acs_user": {