@seamapi/types 1.1125.0 → 1.1126.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 (27) hide show
  1. package/lib/seam/connect/models/action-attempts/action-attempt.d.ts +160 -0
  2. package/lib/seam/connect/models/action-attempts/action-attempt.js +4 -0
  3. package/lib/seam/connect/models/action-attempts/action-attempt.js.map +1 -1
  4. package/lib/seam/connect/models/action-attempts/play-speaker-audio-clip.d.ts +77 -0
  5. package/lib/seam/connect/models/action-attempts/play-speaker-audio-clip.js +31 -0
  6. package/lib/seam/connect/models/action-attempts/play-speaker-audio-clip.js.map +1 -0
  7. package/lib/seam/connect/models/action-attempts/play-speaker-favorite.d.ts +87 -0
  8. package/lib/seam/connect/models/action-attempts/play-speaker-favorite.js +37 -0
  9. package/lib/seam/connect/models/action-attempts/play-speaker-favorite.js.map +1 -0
  10. package/lib/seam/connect/models/devices/capability-properties/speaker.js +1 -1
  11. package/lib/seam/connect/models/devices/capability-properties/speaker.js.map +1 -1
  12. package/lib/seam/connect/models/devices/device-provider.d.ts +6 -0
  13. package/lib/seam/connect/models/devices/device.d.ts +12 -0
  14. package/lib/seam/connect/models/devices/device.js +6 -0
  15. package/lib/seam/connect/models/devices/device.js.map +1 -1
  16. package/lib/seam/connect/models/devices/unmanaged-device.d.ts +8 -0
  17. package/lib/seam/connect/openapi.js +467 -1
  18. package/lib/seam/connect/openapi.js.map +1 -1
  19. package/lib/seam/connect/route-types.d.ts +7392 -36
  20. package/package.json +1 -1
  21. package/src/lib/seam/connect/models/action-attempts/action-attempt.ts +4 -0
  22. package/src/lib/seam/connect/models/action-attempts/play-speaker-audio-clip.ts +46 -0
  23. package/src/lib/seam/connect/models/action-attempts/play-speaker-favorite.ts +54 -0
  24. package/src/lib/seam/connect/models/devices/capability-properties/speaker.ts +3 -1
  25. package/src/lib/seam/connect/models/devices/device.ts +10 -0
  26. package/src/lib/seam/connect/openapi.ts +503 -1
  27. package/src/lib/seam/connect/route-types.ts +8301 -21
@@ -3752,6 +3752,8 @@ export declare const unmanaged_device: z.ZodObject<Pick<{
3752
3752
  can_pause_speaker_playback: z.ZodOptional<z.ZodBoolean>;
3753
3753
  can_resume_speaker_playback: z.ZodOptional<z.ZodBoolean>;
3754
3754
  can_play_speaker_chime: z.ZodOptional<z.ZodBoolean>;
3755
+ can_play_speaker_favorite: z.ZodOptional<z.ZodBoolean>;
3756
+ can_play_speaker_audio_clip: z.ZodOptional<z.ZodBoolean>;
3755
3757
  }, "display_name" | "device_id" | "workspace_id" | "created_at" | "errors" | "connected_account_id" | "warnings" | "custom_metadata" | "device_type" | "capabilities_supported" | "location"> & {
3756
3758
  is_managed: z.ZodLiteral<false>;
3757
3759
  properties: z.ZodObject<Pick<{
@@ -3917,6 +3919,8 @@ export declare const unmanaged_device: z.ZodObject<Pick<{
3917
3919
  can_pause_speaker_playback: z.ZodOptional<z.ZodBoolean>;
3918
3920
  can_resume_speaker_playback: z.ZodOptional<z.ZodBoolean>;
3919
3921
  can_play_speaker_chime: z.ZodOptional<z.ZodBoolean>;
3922
+ can_play_speaker_favorite: z.ZodOptional<z.ZodBoolean>;
3923
+ can_play_speaker_audio_clip: z.ZodOptional<z.ZodBoolean>;
3920
3924
  }, "strip", z.ZodTypeAny, {
3921
3925
  display_name: string;
3922
3926
  device_id: string;
@@ -4201,6 +4205,8 @@ export declare const unmanaged_device: z.ZodObject<Pick<{
4201
4205
  can_pause_speaker_playback?: boolean | undefined;
4202
4206
  can_resume_speaker_playback?: boolean | undefined;
4203
4207
  can_play_speaker_chime?: boolean | undefined;
4208
+ can_play_speaker_favorite?: boolean | undefined;
4209
+ can_play_speaker_audio_clip?: boolean | undefined;
4204
4210
  location?: {
4205
4211
  time_zone?: string | undefined;
4206
4212
  location_name?: string | undefined;
@@ -4491,6 +4497,8 @@ export declare const unmanaged_device: z.ZodObject<Pick<{
4491
4497
  can_pause_speaker_playback?: boolean | undefined;
4492
4498
  can_resume_speaker_playback?: boolean | undefined;
4493
4499
  can_play_speaker_chime?: boolean | undefined;
4500
+ can_play_speaker_favorite?: boolean | undefined;
4501
+ can_play_speaker_audio_clip?: boolean | undefined;
4494
4502
  location?: {
4495
4503
  time_zone?: string | undefined;
4496
4504
  location_name?: string | undefined;
@@ -10957,6 +10957,223 @@ const openapi = {
10957
10957
  ],
10958
10958
  type: 'object',
10959
10959
  },
10960
+ {
10961
+ description: 'Playing a favorite on the speaker is pending.',
10962
+ properties: {
10963
+ action_attempt_id: {
10964
+ description: 'ID of the action attempt.',
10965
+ format: 'uuid',
10966
+ type: 'string',
10967
+ },
10968
+ action_type: {
10969
+ description: 'Action attempt to track the status of playing a favorite on a speaker.',
10970
+ enum: ['PLAY_SPEAKER_FAVORITE'],
10971
+ type: 'string',
10972
+ },
10973
+ error: {
10974
+ description: 'Errors associated with the action attempt. Null for pending action attempts.',
10975
+ nullable: true,
10976
+ },
10977
+ result: {
10978
+ description: 'Result of the action attempt. Null for pending action attempts.',
10979
+ nullable: true,
10980
+ },
10981
+ status: { enum: ['pending'], type: 'string' },
10982
+ },
10983
+ required: [
10984
+ 'action_attempt_id',
10985
+ 'status',
10986
+ 'result',
10987
+ 'error',
10988
+ 'action_type',
10989
+ ],
10990
+ type: 'object',
10991
+ },
10992
+ {
10993
+ description: 'Playing a favorite on the speaker succeeded.',
10994
+ properties: {
10995
+ action_attempt_id: {
10996
+ description: 'ID of the action attempt.',
10997
+ format: 'uuid',
10998
+ type: 'string',
10999
+ },
11000
+ action_type: {
11001
+ description: 'Action attempt to track the status of playing a favorite on a speaker.',
11002
+ enum: ['PLAY_SPEAKER_FAVORITE'],
11003
+ type: 'string',
11004
+ },
11005
+ error: {
11006
+ description: 'Errors associated with the action attempt. Null for successful action attempts.',
11007
+ nullable: true,
11008
+ },
11009
+ result: {
11010
+ description: 'Result of the action.',
11011
+ properties: {
11012
+ affected_device_ids: {
11013
+ description: 'IDs of the speakers now playing the favorite, including speakers grouped with the requested speaker.',
11014
+ items: { format: 'uuid', type: 'string' },
11015
+ type: 'array',
11016
+ },
11017
+ },
11018
+ required: ['affected_device_ids'],
11019
+ type: 'object',
11020
+ },
11021
+ status: { enum: ['success'], type: 'string' },
11022
+ },
11023
+ required: [
11024
+ 'action_attempt_id',
11025
+ 'status',
11026
+ 'error',
11027
+ 'action_type',
11028
+ 'result',
11029
+ ],
11030
+ type: 'object',
11031
+ },
11032
+ {
11033
+ description: 'Playing a favorite on the speaker failed.',
11034
+ properties: {
11035
+ action_attempt_id: {
11036
+ description: 'ID of the action attempt.',
11037
+ format: 'uuid',
11038
+ type: 'string',
11039
+ },
11040
+ action_type: {
11041
+ description: 'Action attempt to track the status of playing a favorite on a speaker.',
11042
+ enum: ['PLAY_SPEAKER_FAVORITE'],
11043
+ type: 'string',
11044
+ },
11045
+ error: {
11046
+ description: 'Error associated with the action.',
11047
+ properties: {
11048
+ message: {
11049
+ description: 'Detailed description of the error. Provides insights into the issue and potentially how to rectify it.',
11050
+ type: 'string',
11051
+ },
11052
+ type: { description: 'Type of the error.', type: 'string' },
11053
+ },
11054
+ required: ['type', 'message'],
11055
+ type: 'object',
11056
+ },
11057
+ result: {
11058
+ description: 'Result of the action attempt. Null for failed action attempts.',
11059
+ nullable: true,
11060
+ },
11061
+ status: { enum: ['error'], type: 'string' },
11062
+ },
11063
+ required: [
11064
+ 'action_attempt_id',
11065
+ 'status',
11066
+ 'result',
11067
+ 'action_type',
11068
+ 'error',
11069
+ ],
11070
+ type: 'object',
11071
+ },
11072
+ {
11073
+ description: 'Playing an audio clip on the speaker is pending.',
11074
+ properties: {
11075
+ action_attempt_id: {
11076
+ description: 'ID of the action attempt.',
11077
+ format: 'uuid',
11078
+ type: 'string',
11079
+ },
11080
+ action_type: {
11081
+ description: 'Action attempt to track the status of playing an audio clip on a speaker.',
11082
+ enum: ['PLAY_SPEAKER_AUDIO_CLIP'],
11083
+ type: 'string',
11084
+ },
11085
+ error: {
11086
+ description: 'Errors associated with the action attempt. Null for pending action attempts.',
11087
+ nullable: true,
11088
+ },
11089
+ result: {
11090
+ description: 'Result of the action attempt. Null for pending action attempts.',
11091
+ nullable: true,
11092
+ },
11093
+ status: { enum: ['pending'], type: 'string' },
11094
+ },
11095
+ required: [
11096
+ 'action_attempt_id',
11097
+ 'status',
11098
+ 'result',
11099
+ 'error',
11100
+ 'action_type',
11101
+ ],
11102
+ type: 'object',
11103
+ },
11104
+ {
11105
+ description: 'Playing an audio clip on the speaker succeeded.',
11106
+ properties: {
11107
+ action_attempt_id: {
11108
+ description: 'ID of the action attempt.',
11109
+ format: 'uuid',
11110
+ type: 'string',
11111
+ },
11112
+ action_type: {
11113
+ description: 'Action attempt to track the status of playing an audio clip on a speaker.',
11114
+ enum: ['PLAY_SPEAKER_AUDIO_CLIP'],
11115
+ type: 'string',
11116
+ },
11117
+ error: {
11118
+ description: 'Errors associated with the action attempt. Null for successful action attempts.',
11119
+ nullable: true,
11120
+ },
11121
+ result: {
11122
+ description: 'Result of the action.',
11123
+ properties: {},
11124
+ type: 'object',
11125
+ },
11126
+ status: { enum: ['success'], type: 'string' },
11127
+ },
11128
+ required: [
11129
+ 'action_attempt_id',
11130
+ 'status',
11131
+ 'error',
11132
+ 'action_type',
11133
+ 'result',
11134
+ ],
11135
+ type: 'object',
11136
+ },
11137
+ {
11138
+ description: 'Playing an audio clip on the speaker failed.',
11139
+ properties: {
11140
+ action_attempt_id: {
11141
+ description: 'ID of the action attempt.',
11142
+ format: 'uuid',
11143
+ type: 'string',
11144
+ },
11145
+ action_type: {
11146
+ description: 'Action attempt to track the status of playing an audio clip on a speaker.',
11147
+ enum: ['PLAY_SPEAKER_AUDIO_CLIP'],
11148
+ type: 'string',
11149
+ },
11150
+ error: {
11151
+ description: 'Error associated with the action.',
11152
+ properties: {
11153
+ message: {
11154
+ description: 'Detailed description of the error. Provides insights into the issue and potentially how to rectify it.',
11155
+ type: 'string',
11156
+ },
11157
+ type: { description: 'Type of the error.', type: 'string' },
11158
+ },
11159
+ required: ['type', 'message'],
11160
+ type: 'object',
11161
+ },
11162
+ result: {
11163
+ description: 'Result of the action attempt. Null for failed action attempts.',
11164
+ nullable: true,
11165
+ },
11166
+ status: { enum: ['error'], type: 'string' },
11167
+ },
11168
+ required: [
11169
+ 'action_attempt_id',
11170
+ 'status',
11171
+ 'result',
11172
+ 'action_type',
11173
+ 'error',
11174
+ ],
11175
+ type: 'object',
11176
+ },
10960
11177
  {
10961
11178
  properties: {
10962
11179
  action_attempt_id: {
@@ -13298,10 +13515,18 @@ const openapi = {
13298
13515
  description: 'Indicates whether the speaker supports pausing playback.',
13299
13516
  type: 'boolean',
13300
13517
  },
13518
+ can_play_speaker_audio_clip: {
13519
+ description: 'Indicates whether the speaker supports playing an audio clip from a URL.',
13520
+ type: 'boolean',
13521
+ },
13301
13522
  can_play_speaker_chime: {
13302
13523
  description: 'Indicates whether the speaker supports playing a chime.',
13303
13524
  type: 'boolean',
13304
13525
  },
13526
+ can_play_speaker_favorite: {
13527
+ description: "Indicates whether the speaker supports listing and playing the favorites saved in the speaker manufacturer's app, such as playlists and radio stations.",
13528
+ type: 'boolean',
13529
+ },
13305
13530
  can_program_offline_access_codes: {
13306
13531
  description: 'Indicates whether the device supports programming offline access codes.',
13307
13532
  type: 'boolean',
@@ -15981,7 +16206,7 @@ const openapi = {
15981
16206
  type: 'string',
15982
16207
  },
15983
16208
  supports_chime: {
15984
- description: 'Indicates whether the speaker can play a chime.',
16209
+ description: 'Indicates whether the speaker can play a chime or an audio clip.',
15985
16210
  type: 'boolean',
15986
16211
  },
15987
16212
  volume: {
@@ -17517,10 +17742,18 @@ const openapi = {
17517
17742
  description: 'Indicates whether the speaker supports pausing playback.',
17518
17743
  type: 'boolean',
17519
17744
  },
17745
+ can_play_speaker_audio_clip: {
17746
+ description: 'Indicates whether the speaker supports playing an audio clip from a URL.',
17747
+ type: 'boolean',
17748
+ },
17520
17749
  can_play_speaker_chime: {
17521
17750
  description: 'Indicates whether the speaker supports playing a chime.',
17522
17751
  type: 'boolean',
17523
17752
  },
17753
+ can_play_speaker_favorite: {
17754
+ description: "Indicates whether the speaker supports listing and playing the favorites saved in the speaker manufacturer's app, such as playlists and radio stations.",
17755
+ type: 'boolean',
17756
+ },
17524
17757
  can_program_offline_access_codes: {
17525
17758
  description: 'Indicates whether the device supports programming offline access codes.',
17526
17759
  type: 'boolean',
@@ -35507,10 +35740,18 @@ const openapi = {
35507
35740
  description: 'Indicates whether the speaker supports pausing playback.',
35508
35741
  type: 'boolean',
35509
35742
  },
35743
+ can_play_speaker_audio_clip: {
35744
+ description: 'Indicates whether the speaker supports playing an audio clip from a URL.',
35745
+ type: 'boolean',
35746
+ },
35510
35747
  can_play_speaker_chime: {
35511
35748
  description: 'Indicates whether the speaker supports playing a chime.',
35512
35749
  type: 'boolean',
35513
35750
  },
35751
+ can_play_speaker_favorite: {
35752
+ description: "Indicates whether the speaker supports listing and playing the favorites saved in the speaker manufacturer's app, such as playlists and radio stations.",
35753
+ type: 'boolean',
35754
+ },
35514
35755
  can_program_offline_access_codes: {
35515
35756
  description: 'Indicates whether the device supports programming offline access codes.',
35516
35757
  type: 'boolean',
@@ -49477,6 +49718,8 @@ const openapi = {
49477
49718
  'can_pause_speaker_playback',
49478
49719
  'can_resume_speaker_playback',
49479
49720
  'can_play_speaker_chime',
49721
+ 'can_play_speaker_favorite',
49722
+ 'can_play_speaker_audio_clip',
49480
49723
  ],
49481
49724
  type: 'string',
49482
49725
  },
@@ -49518,6 +49761,8 @@ const openapi = {
49518
49761
  'can_pause_speaker_playback',
49519
49762
  'can_resume_speaker_playback',
49520
49763
  'can_play_speaker_chime',
49764
+ 'can_play_speaker_favorite',
49765
+ 'can_play_speaker_audio_clip',
49521
49766
  ],
49522
49767
  type: 'string',
49523
49768
  },
@@ -51757,6 +52002,8 @@ const openapi = {
51757
52002
  'can_pause_speaker_playback',
51758
52003
  'can_resume_speaker_playback',
51759
52004
  'can_play_speaker_chime',
52005
+ 'can_play_speaker_favorite',
52006
+ 'can_play_speaker_audio_clip',
51760
52007
  ],
51761
52008
  type: 'string',
51762
52009
  },
@@ -51798,6 +52045,8 @@ const openapi = {
51798
52045
  'can_pause_speaker_playback',
51799
52046
  'can_resume_speaker_playback',
51800
52047
  'can_play_speaker_chime',
52048
+ 'can_play_speaker_favorite',
52049
+ 'can_play_speaker_audio_clip',
51801
52050
  ],
51802
52051
  type: 'string',
51803
52052
  },
@@ -65628,6 +65877,85 @@ const openapi = {
65628
65877
  'x-title': 'Update a Space',
65629
65878
  },
65630
65879
  },
65880
+ '/speakers/list_favorites': {
65881
+ get: {
65882
+ description: "Returns the favorites saved on a speaker's account in the speaker manufacturer's app, such as playlists, albums and radio stations. To play one, pass its `favorite_id` to `/speakers/play_favorite`. To check whether a speaker supports favorites, use `device.can_play_speaker_favorite`.",
65883
+ operationId: 'speakersListFavoritesGet',
65884
+ parameters: [
65885
+ {
65886
+ in: 'query',
65887
+ name: 'device_id',
65888
+ required: true,
65889
+ schema: {
65890
+ description: 'ID of the speaker for which you want to list favorites.',
65891
+ format: 'uuid',
65892
+ type: 'string',
65893
+ },
65894
+ },
65895
+ ],
65896
+ responses: {
65897
+ '200': {
65898
+ content: {
65899
+ 'application/json': {
65900
+ schema: {
65901
+ properties: {
65902
+ ok: { type: 'boolean' },
65903
+ speaker_favorites: {
65904
+ items: {
65905
+ properties: {
65906
+ description: {
65907
+ description: 'Description of the favorite, such as its artist or station.',
65908
+ type: 'string',
65909
+ },
65910
+ favorite_id: {
65911
+ description: 'ID of the favorite. Pass it to `/speakers/play_favorite`.',
65912
+ type: 'string',
65913
+ },
65914
+ image_url: {
65915
+ description: "URL of the favorite's artwork.",
65916
+ type: 'string',
65917
+ },
65918
+ name: {
65919
+ description: 'Name of the favorite.',
65920
+ type: 'string',
65921
+ },
65922
+ service_name: {
65923
+ description: 'Name of the music service that provides the favorite.',
65924
+ type: 'string',
65925
+ },
65926
+ },
65927
+ required: ['favorite_id', 'name'],
65928
+ type: 'object',
65929
+ },
65930
+ type: 'array',
65931
+ },
65932
+ },
65933
+ required: ['speaker_favorites', 'ok'],
65934
+ type: 'object',
65935
+ },
65936
+ },
65937
+ },
65938
+ description: 'OK',
65939
+ },
65940
+ '400': { description: 'Bad Request' },
65941
+ '401': { description: 'Unauthorized' },
65942
+ },
65943
+ security: [
65944
+ { client_session: [] },
65945
+ { pat_with_workspace: [] },
65946
+ { console_session_with_workspace: [] },
65947
+ { api_key: [] },
65948
+ ],
65949
+ summary: '/speakers/list_favorites',
65950
+ tags: [],
65951
+ 'x-fern-sdk-group-name': ['speakers'],
65952
+ 'x-fern-sdk-method-name': 'list_favorites',
65953
+ 'x-fern-sdk-return-value': 'speaker_favorites',
65954
+ 'x-response-key': 'speaker_favorites',
65955
+ 'x-title': 'List Speaker Favorites',
65956
+ 'x-undocumented': 'Unreleased.',
65957
+ },
65958
+ },
65631
65959
  '/speakers/mute': {
65632
65960
  post: {
65633
65961
  description: 'Mutes a specified speaker. To check whether a speaker supports muting, use `device.can_mute_speaker`.',
@@ -65746,6 +66074,76 @@ const openapi = {
65746
66074
  'x-undocumented': 'Unreleased.',
65747
66075
  },
65748
66076
  },
66077
+ '/speakers/play_audio_clip': {
66078
+ post: {
66079
+ description: 'Plays a short audio clip from a URL on a speaker, over whatever the speaker is playing. Use it for a welcome message or announcement. To check whether a speaker supports audio clips, use `device.can_play_speaker_audio_clip`.',
66080
+ operationId: 'speakersPlayAudioClipPost',
66081
+ requestBody: {
66082
+ content: {
66083
+ 'application/json': {
66084
+ schema: {
66085
+ properties: {
66086
+ audio_url: {
66087
+ description: 'Public HTTPS URL of the MP3 or WAV file to play. The speaker downloads the file itself, so it must be reachable from the internet.',
66088
+ format: 'uri',
66089
+ maxLength: 2048,
66090
+ type: 'string',
66091
+ },
66092
+ device_id: {
66093
+ description: 'ID of the speaker on which you want to play the audio clip.',
66094
+ format: 'uuid',
66095
+ type: 'string',
66096
+ },
66097
+ volume: {
66098
+ description: "Volume at which to play the clip, on the speaker's native volume scale. If you omit this parameter, the clip plays at the speaker's current volume.",
66099
+ format: 'float',
66100
+ type: 'number',
66101
+ },
66102
+ },
66103
+ required: ['device_id', 'audio_url'],
66104
+ type: 'object',
66105
+ },
66106
+ },
66107
+ },
66108
+ },
66109
+ responses: {
66110
+ '200': {
66111
+ content: {
66112
+ 'application/json': {
66113
+ schema: {
66114
+ properties: {
66115
+ action_attempt: {
66116
+ $ref: '#/components/schemas/action_attempt',
66117
+ },
66118
+ ok: { type: 'boolean' },
66119
+ },
66120
+ required: ['action_attempt', 'ok'],
66121
+ type: 'object',
66122
+ },
66123
+ },
66124
+ },
66125
+ description: 'OK',
66126
+ },
66127
+ '400': { description: 'Bad Request' },
66128
+ '401': { description: 'Unauthorized' },
66129
+ },
66130
+ security: [
66131
+ { client_session: [] },
66132
+ { pat_with_workspace: [] },
66133
+ { console_session_with_workspace: [] },
66134
+ { api_key: [] },
66135
+ ],
66136
+ summary: '/speakers/play_audio_clip',
66137
+ tags: [],
66138
+ 'x-action-attempt-type': 'PLAY_SPEAKER_AUDIO_CLIP',
66139
+ 'x-fern-sdk-group-name': ['speakers'],
66140
+ 'x-fern-sdk-method-name': 'play_audio_clip',
66141
+ 'x-fern-sdk-return-value': 'action_attempt',
66142
+ 'x-response-key': 'action_attempt',
66143
+ 'x-title': 'Play an Audio Clip on a Speaker',
66144
+ 'x-undocumented': 'Unreleased.',
66145
+ },
66146
+ },
65749
66147
  '/speakers/play_chime': {
65750
66148
  post: {
65751
66149
  description: 'Plays a short chime on a specified speaker. To check whether a speaker supports playing a chime, use `device.can_play_speaker_chime`.',
@@ -65810,6 +66208,74 @@ const openapi = {
65810
66208
  'x-undocumented': 'Unreleased.',
65811
66209
  },
65812
66210
  },
66211
+ '/speakers/play_favorite': {
66212
+ post: {
66213
+ description: 'Replaces what a speaker is playing with one of its favorites and starts playback. Speakers grouped with the requested speaker play it too. To check whether a speaker supports favorites, use `device.can_play_speaker_favorite`.',
66214
+ operationId: 'speakersPlayFavoritePost',
66215
+ requestBody: {
66216
+ content: {
66217
+ 'application/json': {
66218
+ schema: {
66219
+ properties: {
66220
+ device_id: {
66221
+ description: 'ID of the speaker on which you want to play the favorite.',
66222
+ format: 'uuid',
66223
+ type: 'string',
66224
+ },
66225
+ favorite_id: {
66226
+ description: 'ID of the favorite that you want to play, from `/speakers/list_favorites`.',
66227
+ minLength: 1,
66228
+ type: 'string',
66229
+ },
66230
+ shuffle: {
66231
+ description: "Whether to shuffle the favorite's tracks. If you omit this parameter, the speaker keeps its current shuffle setting.",
66232
+ type: 'boolean',
66233
+ },
66234
+ },
66235
+ required: ['device_id', 'favorite_id'],
66236
+ type: 'object',
66237
+ },
66238
+ },
66239
+ },
66240
+ },
66241
+ responses: {
66242
+ '200': {
66243
+ content: {
66244
+ 'application/json': {
66245
+ schema: {
66246
+ properties: {
66247
+ action_attempt: {
66248
+ $ref: '#/components/schemas/action_attempt',
66249
+ },
66250
+ ok: { type: 'boolean' },
66251
+ },
66252
+ required: ['action_attempt', 'ok'],
66253
+ type: 'object',
66254
+ },
66255
+ },
66256
+ },
66257
+ description: 'OK',
66258
+ },
66259
+ '400': { description: 'Bad Request' },
66260
+ '401': { description: 'Unauthorized' },
66261
+ },
66262
+ security: [
66263
+ { client_session: [] },
66264
+ { pat_with_workspace: [] },
66265
+ { console_session_with_workspace: [] },
66266
+ { api_key: [] },
66267
+ ],
66268
+ summary: '/speakers/play_favorite',
66269
+ tags: [],
66270
+ 'x-action-attempt-type': 'PLAY_SPEAKER_FAVORITE',
66271
+ 'x-fern-sdk-group-name': ['speakers'],
66272
+ 'x-fern-sdk-method-name': 'play_favorite',
66273
+ 'x-fern-sdk-return-value': 'action_attempt',
66274
+ 'x-response-key': 'action_attempt',
66275
+ 'x-title': 'Play a Favorite on a Speaker',
66276
+ 'x-undocumented': 'Unreleased.',
66277
+ },
66278
+ },
65813
66279
  '/speakers/resume': {
65814
66280
  post: {
65815
66281
  description: 'Resumes playback on a specified speaker. Playback also resumes on the speakers grouped with it, and the action attempt result lists every affected speaker. To check whether a speaker supports resuming playback, use `device.can_resume_speaker_playback`.',