@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
@@ -0,0 +1,55 @@
1
+ import * as z from 'zod/v3'
2
+
3
+ import { datetime } from '../datetime.js'
4
+
5
+ export const media = z.object({
6
+ media_id: z.string().uuid().describe('ID of the media.'),
7
+ workspace_id: z
8
+ .string()
9
+ .uuid()
10
+ .describe('ID of the workspace that contains the media.'),
11
+ device_id: z
12
+ .string()
13
+ .uuid()
14
+ .nullable()
15
+ .describe('ID of the device that captured the media.'),
16
+ event_id: z
17
+ .string()
18
+ .uuid()
19
+ .nullable()
20
+ .describe('ID of the event that the media belongs to.'),
21
+ media_type: z
22
+ .enum(['video', 'image'])
23
+ .describe('Type of the media: a video clip or a still image.'),
24
+ content_type: z
25
+ .string()
26
+ .nullable()
27
+ .describe('MIME type of the media, such as `video/mp4` or `image/jpeg`.'),
28
+ status: z
29
+ .enum(['pending', 'available', 'unavailable', 'failed'])
30
+ .describe(
31
+ '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.',
32
+ ),
33
+ url: z
34
+ .string()
35
+ .url()
36
+ .nullable()
37
+ .describe(
38
+ '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.',
39
+ ),
40
+ expires_at: datetime
41
+ .nullable()
42
+ .describe(
43
+ 'Date and time at which the media stops being available. Null when Seam does not know when the media expires.',
44
+ ),
45
+ created_at: datetime.describe(
46
+ 'Date and time at which the media was created.',
47
+ ),
48
+ }).describe(`
49
+ ---
50
+ route_path: /media
51
+ ---
52
+ 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.
53
+ `)
54
+
55
+ export type Media = z.infer<typeof media>
@@ -12644,6 +12644,57 @@ const openapi: OpenAPISpec = {
12644
12644
  'x-route-path': '/seam/bridge/v1/bridge_connected_systems',
12645
12645
  'x-undocumented': 'Seam Bridge client only.',
12646
12646
  },
12647
+ camera_live_view_answer: {
12648
+ description:
12649
+ 'Represents the WebRTC SDP answer that starts streaming video from a camera for a live view session.',
12650
+ properties: {
12651
+ sdp_answer: {
12652
+ description:
12653
+ 'WebRTC SDP answer for the offer, limited to 64 KiB of UTF-8 data.',
12654
+ type: 'string',
12655
+ },
12656
+ },
12657
+ required: ['sdp_answer'],
12658
+ type: 'object',
12659
+ 'x-route-path': '/cameras/live_views',
12660
+ },
12661
+ camera_live_view_session: {
12662
+ description:
12663
+ '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.',
12664
+ properties: {
12665
+ camera_live_view_session_id: {
12666
+ description: 'ID of the camera live view session.',
12667
+ format: 'uuid',
12668
+ type: 'string',
12669
+ },
12670
+ device_id: {
12671
+ description: 'ID of the camera.',
12672
+ format: 'uuid',
12673
+ type: 'string',
12674
+ },
12675
+ expires_at: {
12676
+ description:
12677
+ 'Date and time at which the live view session expires.',
12678
+ format: 'date-time',
12679
+ type: 'string',
12680
+ },
12681
+ token: {
12682
+ description:
12683
+ 'Token that authorizes the offer and stop requests for this session.',
12684
+ maxLength: 512,
12685
+ minLength: 1,
12686
+ type: 'string',
12687
+ },
12688
+ },
12689
+ required: [
12690
+ 'camera_live_view_session_id',
12691
+ 'device_id',
12692
+ 'token',
12693
+ 'expires_at',
12694
+ ],
12695
+ type: 'object',
12696
+ 'x-route-path': '/cameras/live_views',
12697
+ },
12647
12698
  client_session: {
12648
12699
  description:
12649
12700
  "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).",
@@ -13699,6 +13750,11 @@ const openapi: OpenAPISpec = {
13699
13750
  'Indicates whether the device supports simulating removal in a sandbox.',
13700
13751
  type: 'boolean',
13701
13752
  },
13753
+ can_stream_live_video: {
13754
+ description:
13755
+ 'Indicates whether the camera supports streaming live video through a camera live view session.',
13756
+ type: 'boolean',
13757
+ },
13702
13758
  can_turn_off_hvac: {
13703
13759
  description: 'Indicates whether the thermostat can be turned off.',
13704
13760
  type: 'boolean',
@@ -18278,6 +18334,11 @@ const openapi: OpenAPISpec = {
18278
18334
  'Indicates whether the device supports simulating removal in a sandbox.',
18279
18335
  type: 'boolean',
18280
18336
  },
18337
+ can_stream_live_video: {
18338
+ description:
18339
+ 'Indicates whether the camera supports streaming live video through a camera live view session.',
18340
+ type: 'boolean',
18341
+ },
18281
18342
  can_turn_off_hvac: {
18282
18343
  description: 'Indicates whether the thermostat can be turned off.',
18283
18344
  type: 'boolean',
@@ -29111,11 +29172,11 @@ const openapi: OpenAPISpec = {
29111
29172
  format: 'uri',
29112
29173
  type: 'string',
29113
29174
  },
29114
- media_status: {
29175
+ media_ids: {
29115
29176
  description:
29116
- '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.',
29117
- enum: ['pending', 'available', 'unavailable', 'failed'],
29118
- type: 'string',
29177
+ 'IDs of the media, such as a video clip and a thumbnail image, captured for this activation. Use `/media/get` to retrieve each one.',
29178
+ items: { format: 'uuid', type: 'string' },
29179
+ type: 'array',
29119
29180
  },
29120
29181
  motion_sub_type: {
29121
29182
  description: 'Sub-type of motion detected, if available.',
@@ -29209,6 +29270,12 @@ const openapi: OpenAPISpec = {
29209
29270
  format: 'uri',
29210
29271
  type: 'string',
29211
29272
  },
29273
+ media_ids: {
29274
+ description:
29275
+ '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.',
29276
+ items: { format: 'uuid', type: 'string' },
29277
+ type: 'array',
29278
+ },
29212
29279
  occurred_at: {
29213
29280
  description: 'Date and time at which the event occurred.',
29214
29281
  format: 'date-time',
@@ -29671,6 +29738,84 @@ const openapi: OpenAPISpec = {
29671
29738
  'x-route-path': '/unstable_partner/building_blocks',
29672
29739
  'x-undocumented': 'Unreleased.',
29673
29740
  },
29741
+ media: {
29742
+ description:
29743
+ '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.',
29744
+ properties: {
29745
+ content_type: {
29746
+ description:
29747
+ 'MIME type of the media, such as `video/mp4` or `image/jpeg`.',
29748
+ nullable: true,
29749
+ type: 'string',
29750
+ },
29751
+ created_at: {
29752
+ description: 'Date and time at which the media was created.',
29753
+ format: 'date-time',
29754
+ type: 'string',
29755
+ },
29756
+ device_id: {
29757
+ description: 'ID of the device that captured the media.',
29758
+ format: 'uuid',
29759
+ nullable: true,
29760
+ type: 'string',
29761
+ },
29762
+ event_id: {
29763
+ description: 'ID of the event that the media belongs to.',
29764
+ format: 'uuid',
29765
+ nullable: true,
29766
+ type: 'string',
29767
+ },
29768
+ expires_at: {
29769
+ description:
29770
+ 'Date and time at which the media stops being available. Null when Seam does not know when the media expires.',
29771
+ format: 'date-time',
29772
+ nullable: true,
29773
+ type: 'string',
29774
+ },
29775
+ media_id: {
29776
+ description: 'ID of the media.',
29777
+ format: 'uuid',
29778
+ type: 'string',
29779
+ },
29780
+ media_type: {
29781
+ description: 'Type of the media: a video clip or a still image.',
29782
+ enum: ['video', 'image'],
29783
+ type: 'string',
29784
+ },
29785
+ status: {
29786
+ description:
29787
+ '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.',
29788
+ enum: ['pending', 'available', 'unavailable', 'failed'],
29789
+ type: 'string',
29790
+ },
29791
+ url: {
29792
+ description:
29793
+ '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.',
29794
+ format: 'uri',
29795
+ nullable: true,
29796
+ type: 'string',
29797
+ },
29798
+ workspace_id: {
29799
+ description: 'ID of the workspace that contains the media.',
29800
+ format: 'uuid',
29801
+ type: 'string',
29802
+ },
29803
+ },
29804
+ required: [
29805
+ 'media_id',
29806
+ 'workspace_id',
29807
+ 'device_id',
29808
+ 'event_id',
29809
+ 'media_type',
29810
+ 'content_type',
29811
+ 'status',
29812
+ 'url',
29813
+ 'expires_at',
29814
+ 'created_at',
29815
+ ],
29816
+ type: 'object',
29817
+ 'x-route-path': '/media',
29818
+ },
29674
29819
  noise_threshold: {
29675
29820
  description:
29676
29821
  '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.',
@@ -36343,6 +36488,11 @@ const openapi: OpenAPISpec = {
36343
36488
  'Indicates whether the device supports simulating removal in a sandbox.',
36344
36489
  type: 'boolean',
36345
36490
  },
36491
+ can_stream_live_video: {
36492
+ description:
36493
+ 'Indicates whether the camera supports streaming live video through a camera live view session.',
36494
+ type: 'boolean',
36495
+ },
36346
36496
  can_turn_off_hvac: {
36347
36497
  description: 'Indicates whether the thermostat can be turned off.',
36348
36498
  type: 'boolean',
@@ -46486,7 +46636,8 @@ const openapi: OpenAPISpec = {
46486
46636
  },
46487
46637
  '/cameras/live_views/create': {
46488
46638
  post: {
46489
- description: 'Creates a short-lived, single-camera live view session.',
46639
+ description:
46640
+ '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`.',
46490
46641
  operationId: 'camerasLiveViewsCreatePost',
46491
46642
  requestBody: {
46492
46643
  content: {
@@ -46494,14 +46645,25 @@ const openapi: OpenAPISpec = {
46494
46645
  schema: {
46495
46646
  additionalProperties: false,
46496
46647
  properties: {
46497
- device_id: { format: 'uuid', type: 'string' },
46648
+ device_id: {
46649
+ description: 'ID of the camera to view.',
46650
+ format: 'uuid',
46651
+ type: 'string',
46652
+ },
46498
46653
  duration_seconds: {
46499
46654
  default: 600,
46655
+ description:
46656
+ 'Number of seconds for which the live view session is valid, up to 600.',
46500
46657
  maximum: 600,
46501
46658
  minimum: 1,
46502
46659
  type: 'integer',
46503
46660
  },
46504
- include_audio: { default: false, type: 'boolean' },
46661
+ include_audio: {
46662
+ default: false,
46663
+ description:
46664
+ "Indicates whether to include the camera's audio.",
46665
+ type: 'boolean',
46666
+ },
46505
46667
  },
46506
46668
  required: ['device_id'],
46507
46669
  type: 'object',
@@ -46516,22 +46678,7 @@ const openapi: OpenAPISpec = {
46516
46678
  schema: {
46517
46679
  properties: {
46518
46680
  camera_live_view_session: {
46519
- properties: {
46520
- camera_live_view_session_id: {
46521
- format: 'uuid',
46522
- type: 'string',
46523
- },
46524
- device_id: { format: 'uuid', type: 'string' },
46525
- expires_at: { format: 'date-time', type: 'string' },
46526
- token: { maxLength: 512, minLength: 1, type: 'string' },
46527
- },
46528
- required: [
46529
- 'camera_live_view_session_id',
46530
- 'device_id',
46531
- 'expires_at',
46532
- 'token',
46533
- ],
46534
- type: 'object',
46681
+ $ref: '#/components/schemas/camera_live_view_session',
46535
46682
  },
46536
46683
  ok: { type: 'boolean' },
46537
46684
  },
@@ -46553,13 +46700,12 @@ const openapi: OpenAPISpec = {
46553
46700
  'x-fern-sdk-return-value': 'camera_live_view_session',
46554
46701
  'x-response-key': 'camera_live_view_session',
46555
46702
  'x-title': 'Create a Camera Live View Session',
46556
- 'x-undocumented': 'Camera pilot; not yet for customer use.',
46557
46703
  },
46558
46704
  },
46559
46705
  '/cameras/live_views/offer': {
46560
46706
  post: {
46561
46707
  description:
46562
- 'Exchanges one WebRTC offer for an authorized camera live view session.',
46708
+ '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.',
46563
46709
  operationId: 'camerasLiveViewsOfferPost',
46564
46710
  requestBody: {
46565
46711
  content: {
@@ -46568,16 +46714,24 @@ const openapi: OpenAPISpec = {
46568
46714
  additionalProperties: false,
46569
46715
  properties: {
46570
46716
  camera_live_view_session_id: {
46717
+ description: 'ID of the camera live view session.',
46571
46718
  format: 'uuid',
46572
46719
  type: 'string',
46573
46720
  },
46574
46721
  sdp_offer: {
46575
- description: 'WebRTC SDP, limited to 64 KiB of UTF-8 data.',
46722
+ description:
46723
+ 'WebRTC SDP offer from the viewer, limited to 64 KiB of UTF-8 data.',
46576
46724
  maxLength: 65_536,
46577
46725
  minLength: 1,
46578
46726
  type: 'string',
46579
46727
  },
46580
- token: { maxLength: 512, minLength: 1, type: 'string' },
46728
+ token: {
46729
+ description:
46730
+ 'Token returned when the camera live view session was created.',
46731
+ maxLength: 512,
46732
+ minLength: 1,
46733
+ type: 'string',
46734
+ },
46581
46735
  },
46582
46736
  required: ['camera_live_view_session_id', 'token', 'sdp_offer'],
46583
46737
  type: 'object',
@@ -46591,16 +46745,12 @@ const openapi: OpenAPISpec = {
46591
46745
  'application/json': {
46592
46746
  schema: {
46593
46747
  properties: {
46594
- ok: { type: 'boolean' },
46595
- sdp_answer: {
46596
- description:
46597
- 'WebRTC SDP, limited to 64 KiB of UTF-8 data.',
46598
- maxLength: 65_536,
46599
- minLength: 1,
46600
- type: 'string',
46748
+ camera_live_view_answer: {
46749
+ $ref: '#/components/schemas/camera_live_view_answer',
46601
46750
  },
46751
+ ok: { type: 'boolean' },
46602
46752
  },
46603
- required: ['sdp_answer', 'ok'],
46753
+ required: ['camera_live_view_answer', 'ok'],
46604
46754
  type: 'object',
46605
46755
  },
46606
46756
  },
@@ -46615,15 +46765,15 @@ const openapi: OpenAPISpec = {
46615
46765
  tags: [],
46616
46766
  'x-fern-sdk-group-name': ['cameras', 'live_views'],
46617
46767
  'x-fern-sdk-method-name': 'offer',
46618
- 'x-response-key': null,
46768
+ 'x-fern-sdk-return-value': 'camera_live_view_answer',
46769
+ 'x-response-key': 'camera_live_view_answer',
46619
46770
  'x-title': 'Negotiate a Camera Live View',
46620
- 'x-undocumented': 'Camera pilot; not yet for customer use.',
46621
46771
  },
46622
46772
  },
46623
46773
  '/cameras/live_views/stop': {
46624
46774
  post: {
46625
46775
  description:
46626
- 'Stops a camera live view session owned by the current client session.',
46776
+ '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.',
46627
46777
  operationId: 'camerasLiveViewsStopPost',
46628
46778
  requestBody: {
46629
46779
  content: {
@@ -46632,10 +46782,17 @@ const openapi: OpenAPISpec = {
46632
46782
  additionalProperties: false,
46633
46783
  properties: {
46634
46784
  camera_live_view_session_id: {
46785
+ description: 'ID of the camera live view session.',
46635
46786
  format: 'uuid',
46636
46787
  type: 'string',
46637
46788
  },
46638
- token: { maxLength: 512, minLength: 1, type: 'string' },
46789
+ token: {
46790
+ description:
46791
+ 'Token returned when the camera live view session was created.',
46792
+ maxLength: 512,
46793
+ minLength: 1,
46794
+ type: 'string',
46795
+ },
46639
46796
  },
46640
46797
  required: ['camera_live_view_session_id', 'token'],
46641
46798
  type: 'object',
@@ -46666,7 +46823,6 @@ const openapi: OpenAPISpec = {
46666
46823
  'x-fern-sdk-method-name': 'stop',
46667
46824
  'x-response-key': null,
46668
46825
  'x-title': 'Stop a Camera Live View Session',
46669
- 'x-undocumented': 'Camera pilot; not yet for customer use.',
46670
46826
  },
46671
46827
  },
46672
46828
  '/client_sessions/create': {
@@ -51212,6 +51368,7 @@ const openapi: OpenAPISpec = {
51212
51368
  'can_simulate_hub_disconnection',
51213
51369
  'can_simulate_paid_subscription',
51214
51370
  'can_configure_auto_lock',
51371
+ 'can_stream_live_video',
51215
51372
  ],
51216
51373
  type: 'string',
51217
51374
  },
@@ -51246,6 +51403,7 @@ const openapi: OpenAPISpec = {
51246
51403
  'can_simulate_hub_disconnection',
51247
51404
  'can_simulate_paid_subscription',
51248
51405
  'can_configure_auto_lock',
51406
+ 'can_stream_live_video',
51249
51407
  ],
51250
51408
  type: 'string',
51251
51409
  },
@@ -53483,6 +53641,7 @@ const openapi: OpenAPISpec = {
53483
53641
  'can_simulate_hub_disconnection',
53484
53642
  'can_simulate_paid_subscription',
53485
53643
  'can_configure_auto_lock',
53644
+ 'can_stream_live_video',
53486
53645
  ],
53487
53646
  type: 'string',
53488
53647
  },
@@ -53517,6 +53676,7 @@ const openapi: OpenAPISpec = {
53517
53676
  'can_simulate_hub_disconnection',
53518
53677
  'can_simulate_paid_subscription',
53519
53678
  'can_configure_auto_lock',
53679
+ 'can_stream_live_video',
53520
53680
  ],
53521
53681
  type: 'string',
53522
53682
  },
@@ -55139,6 +55299,72 @@ const openapi: OpenAPISpec = {
55139
55299
  'x-title': 'Unlock a Lock',
55140
55300
  },
55141
55301
  },
55302
+ '/media/get': {
55303
+ get: {
55304
+ description:
55305
+ '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.',
55306
+ operationId: 'mediaGetGet',
55307
+ parameters: [
55308
+ {
55309
+ in: 'query',
55310
+ name: 'media_id',
55311
+ required: true,
55312
+ schema: {
55313
+ description: 'ID of the media that you want to get.',
55314
+ format: 'uuid',
55315
+ type: 'string',
55316
+ },
55317
+ },
55318
+ {
55319
+ in: 'query',
55320
+ name: 'format',
55321
+ required: false,
55322
+ schema: {
55323
+ default: 'json',
55324
+ description:
55325
+ "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.",
55326
+ enum: ['json', 'redirect'],
55327
+ type: 'string',
55328
+ },
55329
+ },
55330
+ ],
55331
+ responses: {
55332
+ '200': {
55333
+ content: {
55334
+ 'application/json': {
55335
+ schema: {
55336
+ properties: {
55337
+ media: { $ref: '#/components/schemas/media' },
55338
+ ok: { type: 'boolean' },
55339
+ },
55340
+ required: ['media', 'ok'],
55341
+ type: 'object',
55342
+ },
55343
+ },
55344
+ },
55345
+ description: 'OK',
55346
+ },
55347
+ '400': { description: 'Bad Request' },
55348
+ '401': { description: 'Unauthorized' },
55349
+ },
55350
+ security: [
55351
+ { api_key: [] },
55352
+ { pat_with_workspace: [] },
55353
+ { console_session_with_workspace: [] },
55354
+ { client_session: [] },
55355
+ { client_session_with_customer: [] },
55356
+ { client_session_with_customer_ro: [] },
55357
+ { support_read_only_token: [] },
55358
+ ],
55359
+ summary: '/media/get',
55360
+ tags: [],
55361
+ 'x-fern-sdk-group-name': ['media'],
55362
+ 'x-fern-sdk-method-name': 'get',
55363
+ 'x-fern-sdk-return-value': 'media',
55364
+ 'x-response-key': 'media',
55365
+ 'x-title': 'Get Media',
55366
+ },
55367
+ },
55142
55368
  '/noise_sensors/list': {
55143
55369
  get: {
55144
55370
  description: