@portpowered/reference-data 0.4.6 → 0.4.8

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 (93) hide show
  1. package/generated/capabilities.json +713 -7
  2. package/generated/openapi.json +503 -41
  3. package/generated/public/docs/for-ai/capability-interfaces/brightness/1.0.md +1 -0
  4. package/generated/public/docs/for-ai/capability-interfaces/media-player/1.0.md +3 -1
  5. package/generated/public/docs/for-ai/capability-interfaces/media-playlist/1.0.md +3 -0
  6. package/generated/public/docs/for-ai/capability-interfaces/media-search/1.0.md +2 -0
  7. package/generated/public/docs/for-ai/schemas/b-1.md +1 -0
  8. package/generated/public/docs/for-ai/schemas/m-1.md +8 -8
  9. package/generated/public/docs/for-ai/schemas/m-2.md +8 -0
  10. package/generated/public/docs/for-ai/schemas/p-2.md +2 -0
  11. package/generated/public/docs/for-ai/schemas/s-3.md +1 -0
  12. package/generated/public/docs/for-ai/schemas.md +5 -5
  13. package/generated/public/docs/references/capability-interfaces/brightness/1.0/messages/adjust-brightness.yaml +12 -0
  14. package/generated/public/docs/references/capability-interfaces/brightness/1.0.yaml +18 -0
  15. package/generated/public/docs/references/capability-interfaces/brightness.yaml +18 -0
  16. package/generated/public/docs/references/capability-interfaces/keypad-input/1.0/configuration.yaml +1 -0
  17. package/generated/public/docs/references/capability-interfaces/keypad-input/1.0/messages/send-key.yaml +1 -0
  18. package/generated/public/docs/references/capability-interfaces/keypad-input/1.0.yaml +2 -0
  19. package/generated/public/docs/references/capability-interfaces/keypad-input.yaml +2 -0
  20. package/generated/public/docs/references/capability-interfaces/media-player/1.0/attributes/now-playing.yaml +30 -0
  21. package/generated/public/docs/references/capability-interfaces/media-player/1.0/configuration.yaml +70 -0
  22. package/generated/public/docs/references/capability-interfaces/media-player/1.0/messages/fast-forward.yaml +5 -0
  23. package/generated/public/docs/references/capability-interfaces/media-player/1.0/messages/play-media.yaml +11 -5
  24. package/generated/public/docs/references/capability-interfaces/media-player/1.0/messages/search-and-play.yaml +39 -1
  25. package/generated/public/docs/references/capability-interfaces/media-player/1.0.yaml +162 -6
  26. package/generated/public/docs/references/capability-interfaces/media-player.yaml +162 -6
  27. package/generated/public/docs/references/capability-interfaces/media-playlist/1.0/messages/get-playlist.yaml +9 -0
  28. package/generated/public/docs/references/capability-interfaces/media-playlist/1.0/messages/list-playlists.yaml +15 -0
  29. package/generated/public/docs/references/capability-interfaces/media-playlist/1.0/messages/playlist-contents.yaml +114 -0
  30. package/generated/public/docs/references/capability-interfaces/media-playlist/1.0/messages/playlists.yaml +35 -0
  31. package/generated/public/docs/references/capability-interfaces/media-playlist/1.0.yaml +184 -0
  32. package/generated/public/docs/references/capability-interfaces/media-playlist.yaml +184 -0
  33. package/generated/public/docs/references/capability-interfaces/media-search/1.0/messages/audio-media-results.yaml +67 -0
  34. package/generated/public/docs/references/capability-interfaces/media-search/1.0/messages/get-media.yaml +32 -0
  35. package/generated/public/docs/references/capability-interfaces/media-search/1.0/messages/media-details.yaml +118 -0
  36. package/generated/public/docs/references/capability-interfaces/media-search/1.0/messages/search-media.yaml +15 -1
  37. package/generated/public/docs/references/capability-interfaces/media-search/1.0.yaml +235 -1
  38. package/generated/public/docs/references/capability-interfaces/media-search.yaml +235 -1
  39. package/generated/public/docs/references/capability-interfaces/recordings/1.0/messages/list-recordings-response.yaml +11 -5
  40. package/generated/public/docs/references/capability-interfaces/recordings/1.0.yaml +10 -5
  41. package/generated/public/docs/references/capability-interfaces/recordings.yaml +10 -5
  42. package/generated/public/docs/references/capability-interfaces/speech-synthesizer/1.0/configuration.yaml +14 -0
  43. package/generated/public/docs/references/capability-interfaces/speech-synthesizer/1.0/messages/speak.yaml +7 -0
  44. package/generated/public/docs/references/capability-interfaces/speech-synthesizer/1.0.yaml +22 -1
  45. package/generated/public/docs/references/capability-interfaces/speech-synthesizer.yaml +22 -1
  46. package/generated/public/docs/references/manifest.json +278 -111
  47. package/generated/public/docs/references/openapi.yaml +427 -38
  48. package/generated/public/docs/references/schemas/BrightnessInterfaceAdjustBrightnessMessage.json +21 -0
  49. package/generated/public/docs/references/schemas/CreateMessageTarget.json +4 -0
  50. package/generated/public/docs/references/schemas/KeypadInputInterfaceConfiguration.json +1 -0
  51. package/generated/public/docs/references/schemas/KeypadInputInterfaceSendKeyMessage.json +1 -0
  52. package/generated/public/docs/references/schemas/MediaId.json +3 -1
  53. package/generated/public/docs/references/schemas/MediaPlayerInterfaceConfiguration.json +31 -0
  54. package/generated/public/docs/references/schemas/MediaPlayerInterfaceFastForwardMessage.json +11 -0
  55. package/generated/public/docs/references/schemas/MediaPlayerInterfaceNowPlayingAttribute.json +27 -0
  56. package/generated/public/docs/references/schemas/MediaPlayerInterfaceSearchAndPlayMessage.json +23 -1
  57. package/generated/public/docs/references/schemas/MediaPlaylistInterfaceGetPlaylistMessage.json +11 -0
  58. package/generated/public/docs/references/schemas/MediaPlaylistInterfaceListPlaylistsMessage.json +24 -0
  59. package/generated/public/docs/references/schemas/MediaPlaylistInterfacePlaylistContentsMessage.json +37 -0
  60. package/generated/public/docs/references/schemas/MediaPlaylistInterfacePlaylistsMessage.json +26 -0
  61. package/generated/public/docs/references/schemas/MediaProvider.json +37 -0
  62. package/generated/public/docs/references/schemas/MediaSearchInterfaceAudioMediaResultsMessage.json +17 -0
  63. package/generated/public/docs/references/schemas/MediaSearchInterfaceGetMediaMessage.json +30 -0
  64. package/generated/public/docs/references/schemas/MediaSearchInterfaceMediaDetailsMessage.json +43 -0
  65. package/generated/public/docs/references/schemas/MediaSearchInterfaceSearchMediaMessage.json +13 -1
  66. package/generated/public/docs/references/schemas/Playlist.json +8 -0
  67. package/generated/public/docs/references/schemas/PodcastEpisode.json +30 -0
  68. package/generated/public/docs/references/schemas/PodcastShow.json +22 -0
  69. package/generated/public/docs/references/schemas/SpeechInput.json +7 -1
  70. package/generated/public/docs/references/schemas/SpeechSynthesizerInterfaceConfiguration.json +13 -0
  71. package/generated/public/docs/references/schemas/SupportedMediaResource.json +34 -0
  72. package/generated/public/docs/references/schemas/configuration-6.json +6 -2
  73. package/generated/public/docs/references/schemas/index.json +72 -0
  74. package/generated/resources/brightness/message-adjust-brightness.json +15 -0
  75. package/generated/resources/keypad-input/configuration.json +1 -0
  76. package/generated/resources/keypad-input/message-send-key.json +1 -0
  77. package/generated/resources/media-player/configuration.json +78 -0
  78. package/generated/resources/media-player/message-fast-forward.json +5 -0
  79. package/generated/resources/media-player/message-play-media.json +3 -1
  80. package/generated/resources/media-player/message-search-and-play.json +36 -1
  81. package/generated/resources/media-player/state-now-playing.json +27 -0
  82. package/generated/resources/media-playlist/message-get-playlist.json +11 -0
  83. package/generated/resources/media-playlist/message-list-playlists.json +18 -0
  84. package/generated/resources/media-playlist/message-playlist-contents.json +140 -0
  85. package/generated/resources/media-playlist/message-playlists.json +46 -0
  86. package/generated/resources/media-search/message-audio-media-results.json +76 -0
  87. package/generated/resources/media-search/message-get-media.json +29 -0
  88. package/generated/resources/media-search/message-media-details.json +146 -0
  89. package/generated/resources/media-search/message-search-media.json +13 -1
  90. package/generated/resources/recordings/message-list-recordings-response.json +3 -1
  91. package/generated/resources/speech-synthesizer/configuration.json +18 -1
  92. package/generated/resources/speech-synthesizer/message-speak.json +7 -1
  93. package/package.json +1 -1
@@ -74,6 +74,17 @@ messages:
74
74
  - sequenceId
75
75
  - isFinal
76
76
  additionalProperties: false
77
+ - name: fast-forward
78
+ description: >-
79
+ Begin provider-defined fast-forward playback. This does not seek by a specific duration; use
80
+ skip-forward or seek for a known position change.
81
+ directionality: in
82
+ schema:
83
+ description: >-
84
+ Begin provider-defined fast-forward playback. This does not seek by a specific duration; use
85
+ skip-forward or seek for a known position change.
86
+ type: object
87
+ additionalProperties: false
77
88
  - name: next
78
89
  description: null
79
90
  directionality: in
@@ -133,10 +144,16 @@ messages:
133
144
  title: MediaId
134
145
  type: string
135
146
  minLength: 1
136
- description: >-
137
- Media IDs are a standardized identifier that Port OS uses to represent media across
138
- YouTube, Spotify, and other media providers. See https://portpowered.com/docs/media for
139
- the current media identifiers documentation.
147
+ example: portos-media://portpowered.com/spotify/audio/track/Ab123
148
+ pattern: >-
149
+ ^(portos-media://portpowered[.]com/[a-z][a-z0-9_-]*/(audio|video|image)/[a-z][a-z0-9_-]*/([^/?#\s]|%[0-9A-Fa-f]{2})+|https?://[^\s]+|portos://[^\s]+|youtube:video:[A-Za-z0-9_-]+)$
150
+ description: >
151
+ Exact provider resource identity. The canonical form is
152
+ portos-media://portpowered.com/provider/media-type/resource-kind/resource-id, with no
153
+ URI version. Spotify emits audio track, playlist, album, artist, show and episode
154
+ identities. Copy an ID returned by search or library discovery; do not send a search
155
+ phrase as an ID. Legacy providers retain their own input contracts until explicitly
156
+ migrated. See https://portpowered.com/docs/media.
140
157
  required:
141
158
  - mediaId
142
159
  additionalProperties: false
@@ -181,15 +198,51 @@ messages:
181
198
  type: object
182
199
  additionalProperties: false
183
200
  - name: search-and-play
184
- description: null
201
+ description: >-
202
+ Search for and play media by title or query using a service advertised by the endpoint.
203
+ Omitting mediaType retains audio search behavior; video-only endpoints may default to video.
185
204
  directionality: in
186
205
  schema:
206
+ description: >-
207
+ Search for and play media by title or query using a service advertised by the endpoint.
208
+ Omitting mediaType retains audio search behavior; video-only endpoints may default to video.
187
209
  type: object
188
210
  properties:
189
211
  query:
190
212
  type: string
191
- description: Query to search for audio content
213
+ description: Query to search for media content
192
214
  minLength: 1
215
+ provider:
216
+ type: string
217
+ description: >-
218
+ Media service identifier. A provider enum value does not imply that every endpoint
219
+ supports that service; use the endpoint's advertised provider lists.
220
+ enum:
221
+ - SPOTIFY
222
+ - AMAZON_MUSIC
223
+ - APPLE_MUSIC
224
+ - AUDIBLE
225
+ - TUNE_IN
226
+ - PANDORA
227
+ - IHEART_RADIO
228
+ - SIRIUSXM
229
+ - DEEZER
230
+ - TIDAL
231
+ - YOUTUBE
232
+ - NETFLIX
233
+ - PRIME_VIDEO
234
+ - DAILYMOTION
235
+ mediaType:
236
+ type: string
237
+ enum:
238
+ - AUDIO
239
+ - VIDEO
240
+ description: Media search domain. The endpoint must advertise support for the selected type.
241
+ timerSeconds:
242
+ type: integer
243
+ minimum: 1
244
+ maximum: 86400
245
+ description: Optional provider playback timer in seconds.
193
246
  required:
194
247
  - query
195
248
  additionalProperties: false
@@ -241,6 +294,39 @@ messages:
241
294
  type: object
242
295
  additionalProperties: false
243
296
  attributes:
297
+ - name: now-playing
298
+ description: >-
299
+ Media identity observed on this route. Active false means the provider session is on another
300
+ target; it does not prove the speaker is silent through other providers.
301
+ schema:
302
+ description: >-
303
+ Media identity observed on this route. Active false means the provider session is on another
304
+ target; it does not prove the speaker is silent through other providers.
305
+ type: object
306
+ properties:
307
+ active:
308
+ type: boolean
309
+ mediaId:
310
+ title: MediaId
311
+ type: string
312
+ minLength: 1
313
+ example: portos-media://portpowered.com/spotify/audio/track/Ab123
314
+ pattern: >-
315
+ ^(portos-media://portpowered[.]com/[a-z][a-z0-9_-]*/(audio|video|image)/[a-z][a-z0-9_-]*/([^/?#\s]|%[0-9A-Fa-f]{2})+|https?://[^\s]+|portos://[^\s]+|youtube:video:[A-Za-z0-9_-]+)$
316
+ description: >
317
+ Exact provider resource identity. The canonical form is
318
+ portos-media://portpowered.com/provider/media-type/resource-kind/resource-id, with no
319
+ URI version. Spotify emits audio track, playlist, album, artist, show and episode
320
+ identities. Copy an ID returned by search or library discovery; do not send a search
321
+ phrase as an ID. Legacy providers retain their own input contracts until explicitly
322
+ migrated. See https://portpowered.com/docs/media.
323
+ contextMediaId:
324
+ $ref: '#/properties/mediaId'
325
+ name:
326
+ type: string
327
+ required:
328
+ - active
329
+ additionalProperties: false
244
330
  - name: playback-speed
245
331
  description: null
246
332
  schema:
@@ -277,6 +363,76 @@ configuration:
277
363
  playback. Read playback state and use only the commands supported by the connected player.
278
364
  type: object
279
365
  properties:
366
+ supportedMediaResources:
367
+ type: array
368
+ description: >-
369
+ Exact play-media URI combinations accepted by this route. Member or endpoint unions do not
370
+ imply support by every route.
371
+ items:
372
+ title: SupportedMediaResource
373
+ description: A provider, media type and resource-kind combination accepted by a control route.
374
+ type: object
375
+ properties:
376
+ provider:
377
+ $ref: '#/properties/supportedAudioProviders/items'
378
+ mediaType:
379
+ type: string
380
+ enum:
381
+ - AUDIO
382
+ - VIDEO
383
+ - IMAGE
384
+ resourceKinds:
385
+ type: array
386
+ minItems: 1
387
+ uniqueItems: true
388
+ items:
389
+ type: string
390
+ description: Lowercase resource-kind segment from the provider URI.
391
+ required:
392
+ - provider
393
+ - mediaType
394
+ - resourceKinds
395
+ additionalProperties: false
396
+ supportedAudioProviders:
397
+ type: array
398
+ uniqueItems: true
399
+ description: >-
400
+ Audio services accepted by search-and-play on this endpoint. These describe command support,
401
+ not active subscriptions.
402
+ items:
403
+ type: string
404
+ description: >-
405
+ Media service identifier. A provider enum value does not imply that every endpoint
406
+ supports that service; use the endpoint's advertised provider lists.
407
+ enum:
408
+ - SPOTIFY
409
+ - AMAZON_MUSIC
410
+ - APPLE_MUSIC
411
+ - AUDIBLE
412
+ - TUNE_IN
413
+ - PANDORA
414
+ - IHEART_RADIO
415
+ - SIRIUSXM
416
+ - DEEZER
417
+ - TIDAL
418
+ - YOUTUBE
419
+ - NETFLIX
420
+ - PRIME_VIDEO
421
+ - DAILYMOTION
422
+ supportedVideoProviders:
423
+ type: array
424
+ uniqueItems: true
425
+ description: >-
426
+ Video services accepted by search-and-play on this endpoint. These describe command support,
427
+ not installed applications or active subscriptions.
428
+ items:
429
+ $ref: '#/properties/supportedAudioProviders/items'
430
+ defaultAudioProvider:
431
+ $ref: '#/properties/supportedAudioProviders/items'
432
+ description: Default service for an audio search. Must be in supportedAudioProviders.
433
+ defaultVideoProvider:
434
+ $ref: '#/properties/supportedAudioProviders/items'
435
+ description: Default service for a video search. Must be in supportedVideoProviders.
280
436
  supportedPlaybackStates:
281
437
  type: array
282
438
  items:
@@ -74,6 +74,17 @@ messages:
74
74
  - sequenceId
75
75
  - isFinal
76
76
  additionalProperties: false
77
+ - name: fast-forward
78
+ description: >-
79
+ Begin provider-defined fast-forward playback. This does not seek by a specific duration; use
80
+ skip-forward or seek for a known position change.
81
+ directionality: in
82
+ schema:
83
+ description: >-
84
+ Begin provider-defined fast-forward playback. This does not seek by a specific duration; use
85
+ skip-forward or seek for a known position change.
86
+ type: object
87
+ additionalProperties: false
77
88
  - name: next
78
89
  description: null
79
90
  directionality: in
@@ -133,10 +144,16 @@ messages:
133
144
  title: MediaId
134
145
  type: string
135
146
  minLength: 1
136
- description: >-
137
- Media IDs are a standardized identifier that Port OS uses to represent media across
138
- YouTube, Spotify, and other media providers. See https://portpowered.com/docs/media for
139
- the current media identifiers documentation.
147
+ example: portos-media://portpowered.com/spotify/audio/track/Ab123
148
+ pattern: >-
149
+ ^(portos-media://portpowered[.]com/[a-z][a-z0-9_-]*/(audio|video|image)/[a-z][a-z0-9_-]*/([^/?#\s]|%[0-9A-Fa-f]{2})+|https?://[^\s]+|portos://[^\s]+|youtube:video:[A-Za-z0-9_-]+)$
150
+ description: >
151
+ Exact provider resource identity. The canonical form is
152
+ portos-media://portpowered.com/provider/media-type/resource-kind/resource-id, with no
153
+ URI version. Spotify emits audio track, playlist, album, artist, show and episode
154
+ identities. Copy an ID returned by search or library discovery; do not send a search
155
+ phrase as an ID. Legacy providers retain their own input contracts until explicitly
156
+ migrated. See https://portpowered.com/docs/media.
140
157
  required:
141
158
  - mediaId
142
159
  additionalProperties: false
@@ -181,15 +198,51 @@ messages:
181
198
  type: object
182
199
  additionalProperties: false
183
200
  - name: search-and-play
184
- description: null
201
+ description: >-
202
+ Search for and play media by title or query using a service advertised by the endpoint.
203
+ Omitting mediaType retains audio search behavior; video-only endpoints may default to video.
185
204
  directionality: in
186
205
  schema:
206
+ description: >-
207
+ Search for and play media by title or query using a service advertised by the endpoint.
208
+ Omitting mediaType retains audio search behavior; video-only endpoints may default to video.
187
209
  type: object
188
210
  properties:
189
211
  query:
190
212
  type: string
191
- description: Query to search for audio content
213
+ description: Query to search for media content
192
214
  minLength: 1
215
+ provider:
216
+ type: string
217
+ description: >-
218
+ Media service identifier. A provider enum value does not imply that every endpoint
219
+ supports that service; use the endpoint's advertised provider lists.
220
+ enum:
221
+ - SPOTIFY
222
+ - AMAZON_MUSIC
223
+ - APPLE_MUSIC
224
+ - AUDIBLE
225
+ - TUNE_IN
226
+ - PANDORA
227
+ - IHEART_RADIO
228
+ - SIRIUSXM
229
+ - DEEZER
230
+ - TIDAL
231
+ - YOUTUBE
232
+ - NETFLIX
233
+ - PRIME_VIDEO
234
+ - DAILYMOTION
235
+ mediaType:
236
+ type: string
237
+ enum:
238
+ - AUDIO
239
+ - VIDEO
240
+ description: Media search domain. The endpoint must advertise support for the selected type.
241
+ timerSeconds:
242
+ type: integer
243
+ minimum: 1
244
+ maximum: 86400
245
+ description: Optional provider playback timer in seconds.
193
246
  required:
194
247
  - query
195
248
  additionalProperties: false
@@ -241,6 +294,39 @@ messages:
241
294
  type: object
242
295
  additionalProperties: false
243
296
  attributes:
297
+ - name: now-playing
298
+ description: >-
299
+ Media identity observed on this route. Active false means the provider session is on another
300
+ target; it does not prove the speaker is silent through other providers.
301
+ schema:
302
+ description: >-
303
+ Media identity observed on this route. Active false means the provider session is on another
304
+ target; it does not prove the speaker is silent through other providers.
305
+ type: object
306
+ properties:
307
+ active:
308
+ type: boolean
309
+ mediaId:
310
+ title: MediaId
311
+ type: string
312
+ minLength: 1
313
+ example: portos-media://portpowered.com/spotify/audio/track/Ab123
314
+ pattern: >-
315
+ ^(portos-media://portpowered[.]com/[a-z][a-z0-9_-]*/(audio|video|image)/[a-z][a-z0-9_-]*/([^/?#\s]|%[0-9A-Fa-f]{2})+|https?://[^\s]+|portos://[^\s]+|youtube:video:[A-Za-z0-9_-]+)$
316
+ description: >
317
+ Exact provider resource identity. The canonical form is
318
+ portos-media://portpowered.com/provider/media-type/resource-kind/resource-id, with no
319
+ URI version. Spotify emits audio track, playlist, album, artist, show and episode
320
+ identities. Copy an ID returned by search or library discovery; do not send a search
321
+ phrase as an ID. Legacy providers retain their own input contracts until explicitly
322
+ migrated. See https://portpowered.com/docs/media.
323
+ contextMediaId:
324
+ $ref: '#/properties/mediaId'
325
+ name:
326
+ type: string
327
+ required:
328
+ - active
329
+ additionalProperties: false
244
330
  - name: playback-speed
245
331
  description: null
246
332
  schema:
@@ -277,6 +363,76 @@ configuration:
277
363
  playback. Read playback state and use only the commands supported by the connected player.
278
364
  type: object
279
365
  properties:
366
+ supportedMediaResources:
367
+ type: array
368
+ description: >-
369
+ Exact play-media URI combinations accepted by this route. Member or endpoint unions do not
370
+ imply support by every route.
371
+ items:
372
+ title: SupportedMediaResource
373
+ description: A provider, media type and resource-kind combination accepted by a control route.
374
+ type: object
375
+ properties:
376
+ provider:
377
+ $ref: '#/properties/supportedAudioProviders/items'
378
+ mediaType:
379
+ type: string
380
+ enum:
381
+ - AUDIO
382
+ - VIDEO
383
+ - IMAGE
384
+ resourceKinds:
385
+ type: array
386
+ minItems: 1
387
+ uniqueItems: true
388
+ items:
389
+ type: string
390
+ description: Lowercase resource-kind segment from the provider URI.
391
+ required:
392
+ - provider
393
+ - mediaType
394
+ - resourceKinds
395
+ additionalProperties: false
396
+ supportedAudioProviders:
397
+ type: array
398
+ uniqueItems: true
399
+ description: >-
400
+ Audio services accepted by search-and-play on this endpoint. These describe command support,
401
+ not active subscriptions.
402
+ items:
403
+ type: string
404
+ description: >-
405
+ Media service identifier. A provider enum value does not imply that every endpoint
406
+ supports that service; use the endpoint's advertised provider lists.
407
+ enum:
408
+ - SPOTIFY
409
+ - AMAZON_MUSIC
410
+ - APPLE_MUSIC
411
+ - AUDIBLE
412
+ - TUNE_IN
413
+ - PANDORA
414
+ - IHEART_RADIO
415
+ - SIRIUSXM
416
+ - DEEZER
417
+ - TIDAL
418
+ - YOUTUBE
419
+ - NETFLIX
420
+ - PRIME_VIDEO
421
+ - DAILYMOTION
422
+ supportedVideoProviders:
423
+ type: array
424
+ uniqueItems: true
425
+ description: >-
426
+ Video services accepted by search-and-play on this endpoint. These describe command support,
427
+ not installed applications or active subscriptions.
428
+ items:
429
+ $ref: '#/properties/supportedAudioProviders/items'
430
+ defaultAudioProvider:
431
+ $ref: '#/properties/supportedAudioProviders/items'
432
+ description: Default service for an audio search. Must be in supportedAudioProviders.
433
+ defaultVideoProvider:
434
+ $ref: '#/properties/supportedAudioProviders/items'
435
+ description: Default service for a video search. Must be in supportedVideoProviders.
280
436
  supportedPlaybackStates:
281
437
  type: array
282
438
  items:
@@ -4,6 +4,15 @@ properties:
4
4
  type: string
5
5
  description: ID of the playlist to retrieve
6
6
  minLength: 1
7
+ maxResults:
8
+ type: integer
9
+ minimum: 1
10
+ maximum: 50
11
+ default: 20
12
+ nextToken:
13
+ type: string
14
+ minLength: 1
15
+ description: Opaque continuation for the same playlist.
7
16
  required:
8
17
  - playlistId
9
18
  additionalProperties: false
@@ -0,0 +1,15 @@
1
+ description: >-
2
+ List the connected customer's owned or followed playlists; use search-media
3
+ for catalog search.
4
+ type: object
5
+ properties:
6
+ maxResults:
7
+ type: integer
8
+ minimum: 1
9
+ maximum: 50
10
+ default: 20
11
+ nextToken:
12
+ type: string
13
+ minLength: 1
14
+ required: []
15
+ additionalProperties: false
@@ -0,0 +1,114 @@
1
+ description: A bounded playlist page containing playable tracks or episodes.
2
+ type: object
3
+ properties:
4
+ playlistId:
5
+ title: MediaId
6
+ type: string
7
+ minLength: 1
8
+ example: portos-media://portpowered.com/spotify/audio/track/Ab123
9
+ pattern: >-
10
+ ^(portos-media://portpowered[.]com/[a-z][a-z0-9_-]*/(audio|video|image)/[a-z][a-z0-9_-]*/([^/?#\s]|%[0-9A-Fa-f]{2})+|https?://[^\s]+|portos://[^\s]+|youtube:video:[A-Za-z0-9_-]+)$
11
+ description: >
12
+ Exact provider resource identity. The canonical form is
13
+ portos-media://portpowered.com/provider/media-type/resource-kind/resource-id,
14
+ with no URI version. Spotify emits audio track, playlist, album, artist,
15
+ show and episode identities. Copy an ID returned by search or library
16
+ discovery; do not send a search phrase as an ID. Legacy providers retain
17
+ their own input contracts until explicitly migrated. See
18
+ https://portpowered.com/docs/media.
19
+ tracks:
20
+ type: array
21
+ items:
22
+ type: object
23
+ description: Track information
24
+ properties:
25
+ id:
26
+ type: string
27
+ description: Unique identifier for the track
28
+ minLength: 1
29
+ name:
30
+ type: string
31
+ description: Track name
32
+ minLength: 1
33
+ artists:
34
+ type: array
35
+ items:
36
+ type: object
37
+ description: Artist information
38
+ properties:
39
+ id:
40
+ type: string
41
+ description: Unique identifier for the artist
42
+ minLength: 1
43
+ name:
44
+ type: string
45
+ description: Artist name
46
+ minLength: 1
47
+ required:
48
+ - id
49
+ - name
50
+ additionalProperties: false
51
+ title: Artist
52
+ description: Track artists
53
+ album:
54
+ description: Track album
55
+ type: object
56
+ properties:
57
+ id:
58
+ type: string
59
+ description: Unique identifier for the album
60
+ minLength: 1
61
+ name:
62
+ type: string
63
+ description: Album name
64
+ minLength: 1
65
+ artists:
66
+ type: array
67
+ items:
68
+ $ref: '#/properties/tracks/items/properties/artists/items'
69
+ description: Album artists
70
+ required:
71
+ - id
72
+ - name
73
+ - artists
74
+ additionalProperties: false
75
+ title: Album
76
+ required:
77
+ - id
78
+ - name
79
+ - artists
80
+ - album
81
+ additionalProperties: false
82
+ title: Track
83
+ episodes:
84
+ type: array
85
+ items:
86
+ type: object
87
+ description: Provider-qualified podcast episode with selection metadata.
88
+ properties:
89
+ id:
90
+ $ref: '#/properties/playlistId'
91
+ name:
92
+ type: string
93
+ minLength: 1
94
+ showId:
95
+ $ref: '#/properties/playlistId'
96
+ releaseDate:
97
+ type: string
98
+ description: Provider release date; precision can be year, month or day.
99
+ releaseDatePrecision:
100
+ type: string
101
+ description: Provider date precision.
102
+ required:
103
+ - id
104
+ - name
105
+ additionalProperties: false
106
+ title: PodcastEpisode
107
+ nextToken:
108
+ type: string
109
+ minLength: 1
110
+ required:
111
+ - playlistId
112
+ - tracks
113
+ - episodes
114
+ additionalProperties: false
@@ -0,0 +1,35 @@
1
+ description: A page of the connected customer's playlists with exact resource IDs.
2
+ type: object
3
+ properties:
4
+ playlists:
5
+ type: array
6
+ items:
7
+ type: object
8
+ properties:
9
+ id:
10
+ type: string
11
+ description: Unique identifier for the playlist
12
+ minLength: 1
13
+ name:
14
+ type: string
15
+ description: Playlist name
16
+ minLength: 1
17
+ ownerId:
18
+ type: string
19
+ description: Provider-scoped owner identity, when supplied by the provider.
20
+ ownerName:
21
+ type: string
22
+ description: >-
23
+ Owner display name, useful for distinguishing owned and followed
24
+ playlists.
25
+ required:
26
+ - id
27
+ - name
28
+ additionalProperties: false
29
+ title: Playlist
30
+ nextToken:
31
+ type: string
32
+ minLength: 1
33
+ required:
34
+ - playlists
35
+ additionalProperties: false