@seamapi/types 1.1084.0 → 1.1086.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 (52) hide show
  1. package/lib/seam/connect/model-types.d.ts +1 -1
  2. package/lib/seam/connect/models/cameras/camera-live-view-answer.d.ts +9 -0
  3. package/lib/seam/connect/models/cameras/camera-live-view-answer.js +12 -0
  4. package/lib/seam/connect/models/cameras/camera-live-view-answer.js.map +1 -0
  5. package/lib/seam/connect/models/cameras/camera-live-view-session.d.ts +18 -0
  6. package/lib/seam/connect/models/cameras/camera-live-view-session.js +21 -0
  7. package/lib/seam/connect/models/cameras/camera-live-view-session.js.map +1 -0
  8. package/lib/seam/connect/models/cameras/index.d.ts +2 -0
  9. package/lib/seam/connect/models/cameras/index.js +3 -0
  10. package/lib/seam/connect/models/cameras/index.js.map +1 -0
  11. package/lib/seam/connect/models/devices/device-provider.d.ts +4 -1
  12. package/lib/seam/connect/models/devices/device-provider.js +2 -2
  13. package/lib/seam/connect/models/devices/device-provider.js.map +1 -1
  14. package/lib/seam/connect/models/devices/device.d.ts +6 -0
  15. package/lib/seam/connect/models/devices/device.js +3 -0
  16. package/lib/seam/connect/models/devices/device.js.map +1 -1
  17. package/lib/seam/connect/models/devices/unmanaged-device.d.ts +4 -0
  18. package/lib/seam/connect/models/events/devices.d.ts +12 -6
  19. package/lib/seam/connect/models/events/devices.js +7 -3
  20. package/lib/seam/connect/models/events/devices.js.map +1 -1
  21. package/lib/seam/connect/models/events/seam-event.d.ts +6 -3
  22. package/lib/seam/connect/models/index.d.ts +2 -0
  23. package/lib/seam/connect/models/index.js +2 -0
  24. package/lib/seam/connect/models/index.js.map +1 -1
  25. package/lib/seam/connect/models/instant-keys/instant-key-preview.d.ts +6 -6
  26. package/lib/seam/connect/models/media/index.d.ts +1 -0
  27. package/lib/seam/connect/models/media/index.js +2 -0
  28. package/lib/seam/connect/models/media/index.js.map +1 -0
  29. package/lib/seam/connect/models/media/media.d.ts +36 -0
  30. package/lib/seam/connect/models/media/media.js +44 -0
  31. package/lib/seam/connect/models/media/media.js.map +1 -0
  32. package/lib/seam/connect/openapi.js +244 -39
  33. package/lib/seam/connect/openapi.js.map +1 -1
  34. package/lib/seam/connect/route-types.d.ts +124 -18
  35. package/lib/seam/connect/schemas.d.ts +1 -1
  36. package/lib/seam/connect/schemas.js +1 -1
  37. package/lib/seam/connect/schemas.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/lib/seam/connect/internal/schemas.ts +3 -0
  40. package/src/lib/seam/connect/model-types.ts +3 -0
  41. package/src/lib/seam/connect/models/cameras/camera-live-view-answer.ts +16 -0
  42. package/src/lib/seam/connect/models/cameras/camera-live-view-session.ts +28 -0
  43. package/src/lib/seam/connect/models/cameras/index.ts +2 -0
  44. package/src/lib/seam/connect/models/devices/device-provider.ts +2 -2
  45. package/src/lib/seam/connect/models/devices/device.ts +5 -0
  46. package/src/lib/seam/connect/models/events/devices.ts +9 -3
  47. package/src/lib/seam/connect/models/index.ts +2 -0
  48. package/src/lib/seam/connect/models/media/index.ts +1 -0
  49. package/src/lib/seam/connect/models/media/media.ts +55 -0
  50. package/src/lib/seam/connect/openapi.ts +266 -40
  51. package/src/lib/seam/connect/route-types.ts +124 -21
  52. package/src/lib/seam/connect/schemas.ts +3 -0
@@ -5,6 +5,7 @@ export * from './action-attempts/index.js';
5
5
  export * from './batch.js';
6
6
  export * from './bridges/index.js';
7
7
  export * from './bridges/index.js';
8
+ export * from './cameras/index.js';
8
9
  export * from './client-sessions/index.js';
9
10
  export * from './connect-webviews/index.js';
10
11
  export * from './connected-accounts/index.js';
@@ -19,6 +20,7 @@ export * from './datetime.js';
19
20
  export * from './devices/index.js';
20
21
  export * from './events/index.js';
21
22
  export * from './instant-keys/index.js';
23
+ export * from './media/index.js';
22
24
  export * from './noise-sensors/index.js';
23
25
  export * from './pagination.js';
24
26
  export * from './partner/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sCAAsC,CAAA;AACpD,cAAc,oCAAoC,CAAA;AAClD,cAAc,qBAAqB,CAAA;AACnC,cAAc,kCAAkC,CAAA;AAChD,cAAc,uCAAuC,CAAA;AACrD,cAAc,mCAAmC,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/seam/connect/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sCAAsC,CAAA;AACpD,cAAc,oCAAoC,CAAA;AAClD,cAAc,qBAAqB,CAAA;AACnC,cAAc,kCAAkC,CAAA;AAChD,cAAc,uCAAuC,CAAA;AACrD,cAAc,mCAAmC,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA"}
@@ -64,14 +64,14 @@ declare const instant_key_preview_access: z.ZodObject<{
64
64
  available: z.ZodBoolean;
65
65
  }, "strip", z.ZodTypeAny, {
66
66
  name: string;
67
- available: boolean;
68
67
  icon: string;
68
+ available: boolean;
69
69
  location?: string | undefined;
70
70
  hours?: string | undefined;
71
71
  }, {
72
72
  name: string;
73
- available: boolean;
74
73
  icon: string;
74
+ available: boolean;
75
75
  location?: string | undefined;
76
76
  hours?: string | undefined;
77
77
  }>;
@@ -142,14 +142,14 @@ export declare const instant_key_preview: z.ZodObject<{
142
142
  available: z.ZodBoolean;
143
143
  }, "strip", z.ZodTypeAny, {
144
144
  name: string;
145
- available: boolean;
146
145
  icon: string;
146
+ available: boolean;
147
147
  location?: string | undefined;
148
148
  hours?: string | undefined;
149
149
  }, {
150
150
  name: string;
151
- available: boolean;
152
151
  icon: string;
152
+ available: boolean;
153
153
  location?: string | undefined;
154
154
  hours?: string | undefined;
155
155
  }>, "many">;
@@ -186,8 +186,8 @@ export declare const instant_key_preview: z.ZodObject<{
186
186
  };
187
187
  access: {
188
188
  name: string;
189
- available: boolean;
190
189
  icon: string;
190
+ available: boolean;
191
191
  location?: string | undefined;
192
192
  hours?: string | undefined;
193
193
  }[];
@@ -222,8 +222,8 @@ export declare const instant_key_preview: z.ZodObject<{
222
222
  };
223
223
  access: {
224
224
  name: string;
225
- available: boolean;
226
225
  icon: string;
226
+ available: boolean;
227
227
  location?: string | undefined;
228
228
  hours?: string | undefined;
229
229
  }[];
@@ -0,0 +1 @@
1
+ export * from './media.js';
@@ -0,0 +1,2 @@
1
+ export * from './media.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/seam/connect/models/media/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
@@ -0,0 +1,36 @@
1
+ import * as z from 'zod/v3';
2
+ export declare const media: z.ZodObject<{
3
+ media_id: z.ZodString;
4
+ workspace_id: z.ZodString;
5
+ device_id: z.ZodNullable<z.ZodString>;
6
+ event_id: z.ZodNullable<z.ZodString>;
7
+ media_type: z.ZodEnum<["video", "image"]>;
8
+ content_type: z.ZodNullable<z.ZodString>;
9
+ status: z.ZodEnum<["pending", "available", "unavailable", "failed"]>;
10
+ url: z.ZodNullable<z.ZodString>;
11
+ expires_at: z.ZodNullable<z.ZodString>;
12
+ created_at: z.ZodString;
13
+ }, "strip", z.ZodTypeAny, {
14
+ status: "pending" | "failed" | "available" | "unavailable";
15
+ device_id: string | null;
16
+ workspace_id: string;
17
+ created_at: string;
18
+ expires_at: string | null;
19
+ url: string | null;
20
+ event_id: string | null;
21
+ media_id: string;
22
+ media_type: "video" | "image";
23
+ content_type: string | null;
24
+ }, {
25
+ status: "pending" | "failed" | "available" | "unavailable";
26
+ device_id: string | null;
27
+ workspace_id: string;
28
+ created_at: string;
29
+ expires_at: string | null;
30
+ url: string | null;
31
+ event_id: string | null;
32
+ media_id: string;
33
+ media_type: "video" | "image";
34
+ content_type: string | null;
35
+ }>;
36
+ export type Media = z.infer<typeof media>;
@@ -0,0 +1,44 @@
1
+ import * as z from 'zod/v3';
2
+ import { datetime } from '../datetime.js';
3
+ export const media = z.object({
4
+ media_id: z.string().uuid().describe('ID of the media.'),
5
+ workspace_id: z
6
+ .string()
7
+ .uuid()
8
+ .describe('ID of the workspace that contains the media.'),
9
+ device_id: z
10
+ .string()
11
+ .uuid()
12
+ .nullable()
13
+ .describe('ID of the device that captured the media.'),
14
+ event_id: z
15
+ .string()
16
+ .uuid()
17
+ .nullable()
18
+ .describe('ID of the event that the media belongs to.'),
19
+ media_type: z
20
+ .enum(['video', 'image'])
21
+ .describe('Type of the media: a video clip or a still image.'),
22
+ content_type: z
23
+ .string()
24
+ .nullable()
25
+ .describe('MIME type of the media, such as `video/mp4` or `image/jpeg`.'),
26
+ status: z
27
+ .enum(['pending', 'available', 'unavailable', 'failed'])
28
+ .describe('Status of the media. `pending` means that Seam is still retrieving the media. `available` means that `url` can be used to download it. `unavailable` means that no media exists for the event, and `failed` means that Seam could not retrieve it.'),
29
+ url: z
30
+ .string()
31
+ .url()
32
+ .nullable()
33
+ .describe('Short-lived URL from which you can download the media. Null unless `status` is `available`. The URL expires after about five minutes. Call `/media/get` again for a new URL.'),
34
+ expires_at: datetime
35
+ .nullable()
36
+ .describe('Date and time at which the media stops being available. Null when Seam does not know when the media expires.'),
37
+ created_at: datetime.describe('Date and time at which the media was created.'),
38
+ }).describe(`
39
+ ---
40
+ route_path: /media
41
+ ---
42
+ Represents a piece of media, such as a video clip or a thumbnail image, that a device captured for an event. Media is in beta.
43
+ `);
44
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../../../src/lib/seam/connect/models/media/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACxD,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,2CAA2C,CAAC;IACxD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,4CAA4C,CAAC;IACzD,UAAU,EAAE,CAAC;SACV,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACxB,QAAQ,CAAC,mDAAmD,CAAC;IAChE,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;SACvD,QAAQ,CACP,oPAAoP,CACrP;IACH,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,CACP,8KAA8K,CAC/K;IACH,UAAU,EAAE,QAAQ;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,8GAA8G,CAC/G;IACH,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAC3B,+CAA+C,CAChD;CACF,CAAC,CAAC,QAAQ,CAAC;;;;;CAKX,CAAC,CAAA"}
@@ -11192,6 +11192,52 @@ const openapi = {
11192
11192
  'x-route-path': '/seam/bridge/v1/bridge_connected_systems',
11193
11193
  'x-undocumented': 'Seam Bridge client only.',
11194
11194
  },
11195
+ camera_live_view_answer: {
11196
+ description: 'Represents the WebRTC SDP answer that starts streaming video from a camera for a live view session.',
11197
+ properties: {
11198
+ sdp_answer: {
11199
+ description: 'WebRTC SDP answer for the offer, limited to 64 KiB of UTF-8 data.',
11200
+ type: 'string',
11201
+ },
11202
+ },
11203
+ required: ['sdp_answer'],
11204
+ type: 'object',
11205
+ 'x-route-path': '/cameras/live_views',
11206
+ },
11207
+ camera_live_view_session: {
11208
+ description: 'Represents a short-lived live view session for a single camera. Use the session ID and token to start a WebRTC stream and to stop the session.',
11209
+ properties: {
11210
+ camera_live_view_session_id: {
11211
+ description: 'ID of the camera live view session.',
11212
+ format: 'uuid',
11213
+ type: 'string',
11214
+ },
11215
+ device_id: {
11216
+ description: 'ID of the camera.',
11217
+ format: 'uuid',
11218
+ type: 'string',
11219
+ },
11220
+ expires_at: {
11221
+ description: 'Date and time at which the live view session expires.',
11222
+ format: 'date-time',
11223
+ type: 'string',
11224
+ },
11225
+ token: {
11226
+ description: 'Token that authorizes the offer and stop requests for this session.',
11227
+ maxLength: 512,
11228
+ minLength: 1,
11229
+ type: 'string',
11230
+ },
11231
+ },
11232
+ required: [
11233
+ 'camera_live_view_session_id',
11234
+ 'device_id',
11235
+ 'token',
11236
+ 'expires_at',
11237
+ ],
11238
+ type: 'object',
11239
+ 'x-route-path': '/cameras/live_views',
11240
+ },
11195
11241
  client_session: {
11196
11242
  description: "Represents a [client session](https://www.seam.co/docs/core-concepts/authentication/client-session-tokens). If you want to restrict your users' access to their own devices, use client sessions.\n\nYou create each client session with a custom `user_identifier_key`. Normally, the `user_identifier_key` is a user ID that your application provides.\n\nWhen calling the Seam API from your backend using an API key, you can pass the `user_identifier_key` as a parameter to limit results to the associated client session. For example, `/devices/list?user_identifier_key=123` only returns devices associated with the client session created with the `user_identifier_key` `123`.\n\nA client session has a token that you can use with the Seam JavaScript SDK to make requests from the client (browser) directly to the Seam API. The token restricts the user's access to only the devices that they own.\n\nSee also [Get Started with React](https://www.seam.co/docs/ui-components/overview/getting-started-with-seam-components/get-started-with-react-components-and-client-session-tokens).",
11197
11243
  properties: {
@@ -12106,6 +12152,10 @@ const openapi = {
12106
12152
  description: 'Indicates whether the device supports simulating removal in a sandbox.',
12107
12153
  type: 'boolean',
12108
12154
  },
12155
+ can_stream_live_video: {
12156
+ description: 'Indicates whether the camera supports streaming live video through a camera live view session.',
12157
+ type: 'boolean',
12158
+ },
12109
12159
  can_turn_off_hvac: {
12110
12160
  description: 'Indicates whether the thermostat can be turned off.',
12111
12161
  type: 'boolean',
@@ -16143,6 +16193,10 @@ const openapi = {
16143
16193
  description: 'Indicates whether the device supports simulating removal in a sandbox.',
16144
16194
  type: 'boolean',
16145
16195
  },
16196
+ can_stream_live_video: {
16197
+ description: 'Indicates whether the camera supports streaming live video through a camera live view session.',
16198
+ type: 'boolean',
16199
+ },
16146
16200
  can_turn_off_hvac: {
16147
16201
  description: 'Indicates whether the thermostat can be turned off.',
16148
16202
  type: 'boolean',
@@ -26069,10 +26123,10 @@ const openapi = {
26069
26123
  format: 'uri',
26070
26124
  type: 'string',
26071
26125
  },
26072
- media_status: {
26073
- description: 'Status of the recorded clip and thumbnail for this activation, when the camera supports event recordings. `pending` while Seam retrieves the recording, `available` once it is stored, `unavailable` if no recording covers the activation, and `failed` if retrieval failed.',
26074
- enum: ['pending', 'available', 'unavailable', 'failed'],
26075
- type: 'string',
26126
+ media_ids: {
26127
+ description: 'IDs of the media, such as a video clip and a thumbnail image, captured for this activation. Use `/media/get` to retrieve each one.',
26128
+ items: { format: 'uuid', type: 'string' },
26129
+ type: 'array',
26076
26130
  },
26077
26131
  motion_sub_type: {
26078
26132
  description: 'Sub-type of motion detected, if available.',
@@ -26159,6 +26213,11 @@ const openapi = {
26159
26213
  format: 'uri',
26160
26214
  type: 'string',
26161
26215
  },
26216
+ media_ids: {
26217
+ description: 'IDs of the media, such as a video clip and a thumbnail image, captured when the doorbell was pressed. Use `/media/get` to retrieve each one.',
26218
+ items: { format: 'uuid', type: 'string' },
26219
+ type: 'array',
26220
+ },
26162
26221
  occurred_at: {
26163
26222
  description: 'Date and time at which the event occurred.',
26164
26223
  format: 'date-time',
@@ -26600,6 +26659,79 @@ const openapi = {
26600
26659
  'x-route-path': '/unstable_partner/building_blocks',
26601
26660
  'x-undocumented': 'Unreleased.',
26602
26661
  },
26662
+ media: {
26663
+ description: 'Represents a piece of media, such as a video clip or a thumbnail image, that a device captured for an event. Media is in beta.',
26664
+ properties: {
26665
+ content_type: {
26666
+ description: 'MIME type of the media, such as `video/mp4` or `image/jpeg`.',
26667
+ nullable: true,
26668
+ type: 'string',
26669
+ },
26670
+ created_at: {
26671
+ description: 'Date and time at which the media was created.',
26672
+ format: 'date-time',
26673
+ type: 'string',
26674
+ },
26675
+ device_id: {
26676
+ description: 'ID of the device that captured the media.',
26677
+ format: 'uuid',
26678
+ nullable: true,
26679
+ type: 'string',
26680
+ },
26681
+ event_id: {
26682
+ description: 'ID of the event that the media belongs to.',
26683
+ format: 'uuid',
26684
+ nullable: true,
26685
+ type: 'string',
26686
+ },
26687
+ expires_at: {
26688
+ description: 'Date and time at which the media stops being available. Null when Seam does not know when the media expires.',
26689
+ format: 'date-time',
26690
+ nullable: true,
26691
+ type: 'string',
26692
+ },
26693
+ media_id: {
26694
+ description: 'ID of the media.',
26695
+ format: 'uuid',
26696
+ type: 'string',
26697
+ },
26698
+ media_type: {
26699
+ description: 'Type of the media: a video clip or a still image.',
26700
+ enum: ['video', 'image'],
26701
+ type: 'string',
26702
+ },
26703
+ status: {
26704
+ description: 'Status of the media. `pending` means that Seam is still retrieving the media. `available` means that `url` can be used to download it. `unavailable` means that no media exists for the event, and `failed` means that Seam could not retrieve it.',
26705
+ enum: ['pending', 'available', 'unavailable', 'failed'],
26706
+ type: 'string',
26707
+ },
26708
+ url: {
26709
+ description: 'Short-lived URL from which you can download the media. Null unless `status` is `available`. The URL expires after about five minutes. Call `/media/get` again for a new URL.',
26710
+ format: 'uri',
26711
+ nullable: true,
26712
+ type: 'string',
26713
+ },
26714
+ workspace_id: {
26715
+ description: 'ID of the workspace that contains the media.',
26716
+ format: 'uuid',
26717
+ type: 'string',
26718
+ },
26719
+ },
26720
+ required: [
26721
+ 'media_id',
26722
+ 'workspace_id',
26723
+ 'device_id',
26724
+ 'event_id',
26725
+ 'media_type',
26726
+ 'content_type',
26727
+ 'status',
26728
+ 'url',
26729
+ 'expires_at',
26730
+ 'created_at',
26731
+ ],
26732
+ type: 'object',
26733
+ 'x-route-path': '/media',
26734
+ },
26603
26735
  noise_threshold: {
26604
26736
  description: 'Represents a [noise threshold](https://www.seam.co/docs/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://www.seam.co/docs/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them.',
26605
26737
  properties: {
@@ -32472,6 +32604,10 @@ const openapi = {
32472
32604
  description: 'Indicates whether the device supports simulating removal in a sandbox.',
32473
32605
  type: 'boolean',
32474
32606
  },
32607
+ can_stream_live_video: {
32608
+ description: 'Indicates whether the camera supports streaming live video through a camera live view session.',
32609
+ type: 'boolean',
32610
+ },
32475
32611
  can_turn_off_hvac: {
32476
32612
  description: 'Indicates whether the thermostat can be turned off.',
32477
32613
  type: 'boolean',
@@ -41928,7 +42064,7 @@ const openapi = {
41928
42064
  },
41929
42065
  '/cameras/live_views/create': {
41930
42066
  post: {
41931
- description: 'Creates a short-lived, single-camera live view session.',
42067
+ description: 'Creates a short-lived live view session for a single camera. Pass the returned session ID and token to `/cameras/live_views/offer` to start a WebRTC stream, and to `/cameras/live_views/stop` to end the session.\n\nCamera live view is in beta. To enable it for your workspace, contact Seam support. To check whether a camera supports live view, use `device.can_stream_live_video`.',
41932
42068
  operationId: 'camerasLiveViewsCreatePost',
41933
42069
  requestBody: {
41934
42070
  content: {
@@ -41936,14 +42072,23 @@ const openapi = {
41936
42072
  schema: {
41937
42073
  additionalProperties: false,
41938
42074
  properties: {
41939
- device_id: { format: 'uuid', type: 'string' },
42075
+ device_id: {
42076
+ description: 'ID of the camera to view.',
42077
+ format: 'uuid',
42078
+ type: 'string',
42079
+ },
41940
42080
  duration_seconds: {
41941
42081
  default: 600,
42082
+ description: 'Number of seconds for which the live view session is valid, up to 600.',
41942
42083
  maximum: 600,
41943
42084
  minimum: 1,
41944
42085
  type: 'integer',
41945
42086
  },
41946
- include_audio: { default: false, type: 'boolean' },
42087
+ include_audio: {
42088
+ default: false,
42089
+ description: "Indicates whether to include the camera's audio.",
42090
+ type: 'boolean',
42091
+ },
41947
42092
  },
41948
42093
  required: ['device_id'],
41949
42094
  type: 'object',
@@ -41958,22 +42103,7 @@ const openapi = {
41958
42103
  schema: {
41959
42104
  properties: {
41960
42105
  camera_live_view_session: {
41961
- properties: {
41962
- camera_live_view_session_id: {
41963
- format: 'uuid',
41964
- type: 'string',
41965
- },
41966
- device_id: { format: 'uuid', type: 'string' },
41967
- expires_at: { format: 'date-time', type: 'string' },
41968
- token: { maxLength: 512, minLength: 1, type: 'string' },
41969
- },
41970
- required: [
41971
- 'camera_live_view_session_id',
41972
- 'device_id',
41973
- 'expires_at',
41974
- 'token',
41975
- ],
41976
- type: 'object',
42106
+ $ref: '#/components/schemas/camera_live_view_session',
41977
42107
  },
41978
42108
  ok: { type: 'boolean' },
41979
42109
  },
@@ -41995,12 +42125,11 @@ const openapi = {
41995
42125
  'x-fern-sdk-return-value': 'camera_live_view_session',
41996
42126
  'x-response-key': 'camera_live_view_session',
41997
42127
  'x-title': 'Create a Camera Live View Session',
41998
- 'x-undocumented': 'Camera pilot; not yet for customer use.',
41999
42128
  },
42000
42129
  },
42001
42130
  '/cameras/live_views/offer': {
42002
42131
  post: {
42003
- description: 'Exchanges one WebRTC offer for an authorized camera live view session.',
42132
+ description: 'Exchanges a WebRTC SDP offer for an SDP answer that starts streaming video from the camera, for a live view session that you created using `/cameras/live_views/create`.\n\nCamera live view is in beta. To enable it for your workspace, contact Seam support.',
42004
42133
  operationId: 'camerasLiveViewsOfferPost',
42005
42134
  requestBody: {
42006
42135
  content: {
@@ -42009,16 +42138,22 @@ const openapi = {
42009
42138
  additionalProperties: false,
42010
42139
  properties: {
42011
42140
  camera_live_view_session_id: {
42141
+ description: 'ID of the camera live view session.',
42012
42142
  format: 'uuid',
42013
42143
  type: 'string',
42014
42144
  },
42015
42145
  sdp_offer: {
42016
- description: 'WebRTC SDP, limited to 64 KiB of UTF-8 data.',
42146
+ description: 'WebRTC SDP offer from the viewer, limited to 64 KiB of UTF-8 data.',
42017
42147
  maxLength: 65_536,
42018
42148
  minLength: 1,
42019
42149
  type: 'string',
42020
42150
  },
42021
- token: { maxLength: 512, minLength: 1, type: 'string' },
42151
+ token: {
42152
+ description: 'Token returned when the camera live view session was created.',
42153
+ maxLength: 512,
42154
+ minLength: 1,
42155
+ type: 'string',
42156
+ },
42022
42157
  },
42023
42158
  required: ['camera_live_view_session_id', 'token', 'sdp_offer'],
42024
42159
  type: 'object',
@@ -42032,15 +42167,12 @@ const openapi = {
42032
42167
  'application/json': {
42033
42168
  schema: {
42034
42169
  properties: {
42035
- ok: { type: 'boolean' },
42036
- sdp_answer: {
42037
- description: 'WebRTC SDP, limited to 64 KiB of UTF-8 data.',
42038
- maxLength: 65_536,
42039
- minLength: 1,
42040
- type: 'string',
42170
+ camera_live_view_answer: {
42171
+ $ref: '#/components/schemas/camera_live_view_answer',
42041
42172
  },
42173
+ ok: { type: 'boolean' },
42042
42174
  },
42043
- required: ['sdp_answer', 'ok'],
42175
+ required: ['camera_live_view_answer', 'ok'],
42044
42176
  type: 'object',
42045
42177
  },
42046
42178
  },
@@ -42055,14 +42187,14 @@ const openapi = {
42055
42187
  tags: [],
42056
42188
  'x-fern-sdk-group-name': ['cameras', 'live_views'],
42057
42189
  'x-fern-sdk-method-name': 'offer',
42058
- 'x-response-key': null,
42190
+ 'x-fern-sdk-return-value': 'camera_live_view_answer',
42191
+ 'x-response-key': 'camera_live_view_answer',
42059
42192
  'x-title': 'Negotiate a Camera Live View',
42060
- 'x-undocumented': 'Camera pilot; not yet for customer use.',
42061
42193
  },
42062
42194
  },
42063
42195
  '/cameras/live_views/stop': {
42064
42196
  post: {
42065
- description: 'Stops a camera live view session owned by the current client session.',
42197
+ description: 'Stops a camera live view session that the current client session owns.\n\nCamera live view is in beta. To enable it for your workspace, contact Seam support.',
42066
42198
  operationId: 'camerasLiveViewsStopPost',
42067
42199
  requestBody: {
42068
42200
  content: {
@@ -42071,10 +42203,16 @@ const openapi = {
42071
42203
  additionalProperties: false,
42072
42204
  properties: {
42073
42205
  camera_live_view_session_id: {
42206
+ description: 'ID of the camera live view session.',
42074
42207
  format: 'uuid',
42075
42208
  type: 'string',
42076
42209
  },
42077
- token: { maxLength: 512, minLength: 1, type: 'string' },
42210
+ token: {
42211
+ description: 'Token returned when the camera live view session was created.',
42212
+ maxLength: 512,
42213
+ minLength: 1,
42214
+ type: 'string',
42215
+ },
42078
42216
  },
42079
42217
  required: ['camera_live_view_session_id', 'token'],
42080
42218
  type: 'object',
@@ -42105,7 +42243,6 @@ const openapi = {
42105
42243
  'x-fern-sdk-method-name': 'stop',
42106
42244
  'x-response-key': null,
42107
42245
  'x-title': 'Stop a Camera Live View Session',
42108
- 'x-undocumented': 'Camera pilot; not yet for customer use.',
42109
42246
  },
42110
42247
  },
42111
42248
  '/client_sessions/create': {
@@ -46270,6 +46407,7 @@ const openapi = {
46270
46407
  'can_simulate_hub_disconnection',
46271
46408
  'can_simulate_paid_subscription',
46272
46409
  'can_configure_auto_lock',
46410
+ 'can_stream_live_video',
46273
46411
  ],
46274
46412
  type: 'string',
46275
46413
  },
@@ -46304,6 +46442,7 @@ const openapi = {
46304
46442
  'can_simulate_hub_disconnection',
46305
46443
  'can_simulate_paid_subscription',
46306
46444
  'can_configure_auto_lock',
46445
+ 'can_stream_live_video',
46307
46446
  ],
46308
46447
  type: 'string',
46309
46448
  },
@@ -48514,6 +48653,7 @@ const openapi = {
48514
48653
  'can_simulate_hub_disconnection',
48515
48654
  'can_simulate_paid_subscription',
48516
48655
  'can_configure_auto_lock',
48656
+ 'can_stream_live_video',
48517
48657
  ],
48518
48658
  type: 'string',
48519
48659
  },
@@ -48548,6 +48688,7 @@ const openapi = {
48548
48688
  'can_simulate_hub_disconnection',
48549
48689
  'can_simulate_paid_subscription',
48550
48690
  'can_configure_auto_lock',
48691
+ 'can_stream_live_video',
48551
48692
  ],
48552
48693
  type: 'string',
48553
48694
  },
@@ -50117,6 +50258,70 @@ const openapi = {
50117
50258
  'x-title': 'Unlock a Lock',
50118
50259
  },
50119
50260
  },
50261
+ '/media/get': {
50262
+ get: {
50263
+ description: 'Returns a specified piece of media, such as a video clip or thumbnail image captured for a camera event, with a short-lived URL from which you can download it. Camera events list their media in `media_ids`. This endpoint is in beta.',
50264
+ operationId: 'mediaGetGet',
50265
+ parameters: [
50266
+ {
50267
+ in: 'query',
50268
+ name: 'media_id',
50269
+ required: true,
50270
+ schema: {
50271
+ description: 'ID of the media that you want to get.',
50272
+ format: 'uuid',
50273
+ type: 'string',
50274
+ },
50275
+ },
50276
+ {
50277
+ in: 'query',
50278
+ name: 'format',
50279
+ required: false,
50280
+ schema: {
50281
+ default: 'json',
50282
+ description: "Response format. `json` returns the media object. `redirect` responds with a `302` redirect to the media's download URL, so you can use this endpoint directly as the source of an image or video.",
50283
+ enum: ['json', 'redirect'],
50284
+ type: 'string',
50285
+ },
50286
+ },
50287
+ ],
50288
+ responses: {
50289
+ '200': {
50290
+ content: {
50291
+ 'application/json': {
50292
+ schema: {
50293
+ properties: {
50294
+ media: { $ref: '#/components/schemas/media' },
50295
+ ok: { type: 'boolean' },
50296
+ },
50297
+ required: ['media', 'ok'],
50298
+ type: 'object',
50299
+ },
50300
+ },
50301
+ },
50302
+ description: 'OK',
50303
+ },
50304
+ '400': { description: 'Bad Request' },
50305
+ '401': { description: 'Unauthorized' },
50306
+ },
50307
+ security: [
50308
+ { api_key: [] },
50309
+ { pat_with_workspace: [] },
50310
+ { console_session_with_workspace: [] },
50311
+ { client_session: [] },
50312
+ { client_session_with_customer: [] },
50313
+ { client_session_with_customer_ro: [] },
50314
+ { support_read_only_token: [] },
50315
+ ],
50316
+ summary: '/media/get',
50317
+ tags: [],
50318
+ 'x-fern-sdk-group-name': ['media'],
50319
+ 'x-fern-sdk-method-name': 'get',
50320
+ 'x-fern-sdk-return-value': 'media',
50321
+ 'x-response-key': 'media',
50322
+ 'x-title': 'Get Media',
50323
+ },
50324
+ },
50120
50325
  '/noise_sensors/list': {
50121
50326
  get: {
50122
50327
  description: 'Returns a list of all [noise sensors](https://www.seam.co/docs/capability-guides/noise-sensors).',