@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
@@ -9837,12 +9837,31 @@ components:
9837
9837
  x-version: '1.0'
9838
9838
  x-type: message
9839
9839
  x-directionality: in
9840
+ description: >-
9841
+ Search for and play media by title or query using a service advertised by the endpoint.
9842
+ Omitting mediaType retains audio search behavior; video-only endpoints may default to video.
9840
9843
  type: object
9841
9844
  properties:
9842
9845
  query:
9843
9846
  type: string
9844
- description: Query to search for audio content
9847
+ description: Query to search for media content
9845
9848
  minLength: 1
9849
+ provider:
9850
+ $ref: '#/components/schemas/MediaProvider'
9851
+ mediaType:
9852
+ type: string
9853
+ enum:
9854
+ - AUDIO
9855
+ - VIDEO
9856
+ description: Media search domain. The endpoint must advertise support for the selected type.
9857
+ x-enum-varnames:
9858
+ - MediaSearchTypeAudio
9859
+ - MediaSearchTypeVideo
9860
+ timerSeconds:
9861
+ type: integer
9862
+ minimum: 1
9863
+ maximum: 86400
9864
+ description: Optional provider playback timer in seconds.
9846
9865
  required:
9847
9866
  - query
9848
9867
  additionalProperties: false
@@ -10816,6 +10835,7 @@ components:
10816
10835
  - LEFT
10817
10836
  - RIGHT
10818
10837
  - SELECT
10838
+ - HOME
10819
10839
  - BACK
10820
10840
  - EXIT
10821
10841
  - MENU
@@ -10910,6 +10930,17 @@ components:
10910
10930
  x-directionality: in
10911
10931
  type: object
10912
10932
  additionalProperties: false
10933
+ MediaPlayerInterfaceFastForwardMessage:
10934
+ x-namespace: port1/systems/zero/capability-interfaces/media-player
10935
+ x-name: fast-forward
10936
+ x-version: '1.0'
10937
+ x-type: message
10938
+ x-directionality: in
10939
+ description: >-
10940
+ Begin provider-defined fast-forward playback. This does not seek by a specific duration; use
10941
+ skip-forward or seek for a known position change.
10942
+ type: object
10943
+ additionalProperties: false
10913
10944
  MediaPlayerInterfaceStartOverMessage:
10914
10945
  x-namespace: port1/systems/zero/capability-interfaces/media-player
10915
10946
  x-name: start-over
@@ -11016,6 +11047,73 @@ components:
11016
11047
  required:
11017
11048
  - playlistId
11018
11049
  additionalProperties: false
11050
+ MediaPlaylistInterfaceListPlaylistsMessage:
11051
+ x-namespace: port1/systems/zero/capability-interfaces/media-playlist
11052
+ x-name: list-playlists
11053
+ x-version: '1.0'
11054
+ x-type: message
11055
+ x-directionality: in
11056
+ description: >-
11057
+ List the connected customer's owned or followed playlists; use search-media for catalog
11058
+ search.
11059
+ type: object
11060
+ properties:
11061
+ maxResults:
11062
+ type: integer
11063
+ minimum: 1
11064
+ maximum: 50
11065
+ default: 20
11066
+ nextToken:
11067
+ type: string
11068
+ minLength: 1
11069
+ required: []
11070
+ additionalProperties: false
11071
+ MediaPlaylistInterfacePlaylistsMessage:
11072
+ x-namespace: port1/systems/zero/capability-interfaces/media-playlist
11073
+ x-name: playlists
11074
+ x-version: '1.0'
11075
+ x-type: message
11076
+ x-directionality: out
11077
+ description: A page of the connected customer's playlists with exact resource IDs.
11078
+ type: object
11079
+ properties:
11080
+ playlists:
11081
+ type: array
11082
+ items:
11083
+ $ref: '#/components/schemas/Playlist'
11084
+ nextToken:
11085
+ type: string
11086
+ minLength: 1
11087
+ required:
11088
+ - playlists
11089
+ additionalProperties: false
11090
+ MediaPlaylistInterfacePlaylistContentsMessage:
11091
+ x-namespace: port1/systems/zero/capability-interfaces/media-playlist
11092
+ x-name: playlist-contents
11093
+ x-version: '1.0'
11094
+ x-type: message
11095
+ x-directionality: out
11096
+ description: A bounded playlist page containing playable tracks or episodes.
11097
+ type: object
11098
+ properties:
11099
+ playlistId:
11100
+ $ref: '#/components/schemas/MediaId'
11101
+ tracks:
11102
+ type: array
11103
+ items:
11104
+ $ref: '#/components/schemas/Track'
11105
+ episodes:
11106
+ type: array
11107
+ items:
11108
+ $ref: '#/components/schemas/PodcastEpisode'
11109
+ nextToken:
11110
+ type: string
11111
+ minLength: 1
11112
+ required:
11113
+ - playlistId
11114
+ - tracks
11115
+ - episodes
11116
+ additionalProperties: false
11019
11117
  MediaPlaylistInterfaceGetPlaylistMessage:
11020
11118
  x-namespace: port1/systems/zero/capability-interfaces/media-playlist
11021
11119
  x-name: get-playlist
@@ -11028,6 +11126,15 @@ components:
11028
11126
  type: string
11029
11127
  description: ID of the playlist to retrieve
11030
11128
  minLength: 1
11129
+ maxResults:
11130
+ type: integer
11131
+ minimum: 1
11132
+ maximum: 50
11133
+ default: 20
11134
+ nextToken:
11135
+ type: string
11136
+ minLength: 1
11137
+ description: Opaque continuation for the same playlist.
11031
11138
  required:
11032
11139
  - playlistId
11033
11140
  additionalProperties: false
@@ -11271,6 +11378,24 @@ components:
11271
11378
  maximum: 100
11272
11379
  required:
11273
11380
  - brightness
11381
+ BrightnessInterfaceAdjustBrightnessMessage:
11382
+ x-namespace: port1/systems/zero/capability-interfaces/brightness
11383
+ x-name: adjust-brightness
11384
+ x-version: '1.0'
11385
+ x-type: message
11386
+ x-directionality: in
11387
+ description: >-
11388
+ Adjust brightness by a signed number of percentage points. The endpoint must advertise this
11389
+ message separately from set-brightness.
11390
+ type: object
11391
+ properties:
11392
+ brightnessDelta:
11393
+ type: integer
11394
+ minimum: -100
11395
+ maximum: 100
11396
+ required:
11397
+ - brightnessDelta
11398
+ additionalProperties: false
11274
11399
  MediaSearchInterfaceAudioMediaResultsMessage:
11275
11400
  x-namespace: port1/systems/zero/capability-interfaces/media-search
11276
11401
  x-name: audio-media-results
@@ -11299,6 +11424,18 @@ components:
11299
11424
  items:
11300
11425
  $ref: '#/components/schemas/Playlist'
11301
11426
  description: Playlist results
11427
+ shows:
11428
+ type: array
11429
+ items:
11430
+ $ref: '#/components/schemas/PodcastShow'
11431
+ episodes:
11432
+ type: array
11433
+ items:
11434
+ $ref: '#/components/schemas/PodcastEpisode'
11435
+ nextToken:
11436
+ type: string
11437
+ minLength: 1
11438
+ description: Opaque continuation for the same search; omit when exhausted.
11302
11439
  required:
11303
11440
  - artists
11304
11441
  - albums
@@ -11318,6 +11455,62 @@ components:
11318
11455
  required:
11319
11456
  - mediaId
11320
11457
  additionalProperties: false
11458
+ MediaSearchInterfaceMediaDetailsMessage:
11459
+ x-namespace: port1/systems/zero/capability-interfaces/media-search
11460
+ x-name: media-details
11461
+ x-version: '1.0'
11462
+ x-type: message
11463
+ x-directionality: out
11464
+ description: Exact media resource details and a bounded page of its children.
11465
+ type: object
11466
+ properties:
11467
+ mediaId:
11468
+ $ref: '#/components/schemas/MediaId'
11469
+ name:
11470
+ type: string
11471
+ resourceKind:
11472
+ type: string
11473
+ description: Provider resource kind from the media URI.
11474
+ tracks:
11475
+ type: array
11476
+ items:
11477
+ $ref: '#/components/schemas/Track'
11478
+ episodes:
11479
+ type: array
11480
+ items:
11481
+ $ref: '#/components/schemas/PodcastEpisode'
11482
+ nextToken:
11483
+ type: string
11484
+ minLength: 1
11485
+ required:
11486
+ - mediaId
11487
+ - resourceKind
11488
+ additionalProperties: false
11489
+ MediaSearchInterfaceGetMediaMessage:
11490
+ x-namespace: port1/systems/zero/capability-interfaces/media-search
11491
+ x-name: get-media
11492
+ x-version: '1.0'
11493
+ x-type: message
11494
+ x-directionality: in
11495
+ description: >-
11496
+ Inspect an exact media resource or traverse an album/show. Use get-playlist for playlist
11497
+ contents.
11498
+ type: object
11499
+ properties:
11500
+ mediaId:
11501
+ $ref: '#/components/schemas/MediaId'
11502
+ maxResults:
11503
+ type: integer
11504
+ minimum: 1
11505
+ maximum: 50
11506
+ default: 20
11507
+ nextToken:
11508
+ type: string
11509
+ minLength: 1
11510
+ description: Opaque continuation for the same resource.
11511
+ required:
11512
+ - mediaId
11513
+ additionalProperties: false
11321
11514
  MediaSearchInterfaceSearchMediaMessage:
11322
11515
  x-namespace: port1/systems/zero/capability-interfaces/media-search
11323
11516
  x-name: search-media
@@ -11331,7 +11524,9 @@ components:
11331
11524
  description: Freeform query string
11332
11525
  type:
11333
11526
  type: string
11334
- description: Supported types, track, album, artist, playlist. Defaults to track
11527
+ description: >-
11528
+ Resource kind: track, album, artist, playlist, show or episode when advertised. Defaults
11529
+ to track
11335
11530
  default: track
11336
11531
  album:
11337
11532
  type: string
@@ -11344,6 +11539,16 @@ components:
11344
11539
  description: >-
11345
11540
  Search by year, can only be used when searching albums, years, and tracks. You can pass
11346
11541
  a range like 1990-2000
11542
+ maxResults:
11543
+ type: integer
11544
+ minimum: 1
11545
+ maximum: 50
11546
+ default: 20
11547
+ description: Maximum results on one page.
11548
+ nextToken:
11549
+ type: string
11550
+ minLength: 1
11551
+ description: Copy the opaque continuation from the previous result with the same query and filters.
11347
11552
  required:
11348
11553
  - query
11349
11554
  additionalProperties: false
@@ -13475,6 +13680,27 @@ components:
13475
13680
  required:
13476
13681
  - value
13477
13682
  additionalProperties: false
13683
+ MediaPlayerInterfaceNowPlayingAttribute:
13684
+ x-namespace: port1/systems/zero/capability-interfaces/media-player
13685
+ x-name: now-playing
13686
+ x-version: '1.0'
13687
+ x-type: attribute-definition
13688
+ description: >-
13689
+ Media identity observed on this route. Active false means the provider session is on another
13690
+ target; it does not prove the speaker is silent through other providers.
13691
+ type: object
13692
+ properties:
13693
+ active:
13694
+ type: boolean
13695
+ mediaId:
13696
+ $ref: '#/components/schemas/MediaId'
13697
+ contextMediaId:
13698
+ $ref: '#/components/schemas/MediaId'
13699
+ name:
13700
+ type: string
13701
+ required:
13702
+ - active
13703
+ additionalProperties: false
13478
13704
  MediaPlayerInterfacePlaybackStateAttribute:
13479
13705
  x-namespace: port1/systems/zero/capability-interfaces/media-player
13480
13706
  x-name: playback-state
@@ -17287,6 +17513,7 @@ components:
17287
17513
  - LEFT
17288
17514
  - RIGHT
17289
17515
  - SELECT
17516
+ - HOME
17290
17517
  - BACK
17291
17518
  - EXIT
17292
17519
  - MENU
@@ -17373,6 +17600,35 @@ components:
17373
17600
  implemented by this endpoint.
17374
17601
  type: object
17375
17602
  properties:
17603
+ supportedMediaResources:
17604
+ type: array
17605
+ description: >-
17606
+ Exact play-media URI combinations accepted by this route. Member or endpoint unions do
17607
+ not imply support by every route.
17608
+ items:
17609
+ $ref: '#/components/schemas/SupportedMediaResource'
17610
+ supportedAudioProviders:
17611
+ type: array
17612
+ uniqueItems: true
17613
+ description: >-
17614
+ Audio services accepted by search-and-play on this endpoint. These describe command
17615
+ support, not active subscriptions.
17616
+ items:
17617
+ $ref: '#/components/schemas/MediaProvider'
17618
+ supportedVideoProviders:
17619
+ type: array
17620
+ uniqueItems: true
17621
+ description: >-
17622
+ Video services accepted by search-and-play on this endpoint. These describe command
17623
+ support, not installed applications or active subscriptions.
17624
+ items:
17625
+ $ref: '#/components/schemas/MediaProvider'
17626
+ defaultAudioProvider:
17627
+ $ref: '#/components/schemas/MediaProvider'
17628
+ description: Default service for an audio search. Must be in supportedAudioProviders.
17629
+ defaultVideoProvider:
17630
+ $ref: '#/components/schemas/MediaProvider'
17631
+ description: Default service for a video search. Must be in supportedVideoProviders.
17376
17632
  supportedPlaybackStates:
17377
17633
  type: array
17378
17634
  items:
@@ -17963,6 +18219,15 @@ components:
17963
18219
  x-version: '1.0'
17964
18220
  x-type: configuration
17965
18221
  type: object
18222
+ properties:
18223
+ supportedInputTypes:
18224
+ type: array
18225
+ uniqueItems: true
18226
+ items:
18227
+ type: string
18228
+ enum:
18229
+ - SSML
18230
+ - CANNED_TTS
17966
18231
  additionalProperties: false
17967
18232
  TemperatureSensorInterfaceConfiguration:
17968
18233
  x-namespace: port1/systems/zero/capability-interfaces/temperature-sensor
@@ -18042,10 +18307,16 @@ components:
18042
18307
  title: MediaId
18043
18308
  type: string
18044
18309
  minLength: 1
18045
- description: >-
18046
- Media IDs are a standardized identifier that Port OS uses to represent media across YouTube,
18047
- Spotify, and other media providers. See https://portpowered.com/docs/media for the current
18048
- media identifiers documentation.
18310
+ example: portos-media://portpowered.com/spotify/audio/track/Ab123
18311
+ pattern: >-
18312
+ ^(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_-]+)$
18313
+ description: >
18314
+ Exact provider resource identity. The canonical form is
18315
+ portos-media://portpowered.com/provider/media-type/resource-kind/resource-id, with no URI
18316
+ version. Spotify emits audio track, playlist, album, artist, show and episode identities.
18317
+ Copy an ID returned by search or library discovery; do not send a search phrase as an ID.
18318
+ Legacy providers retain their own input contracts until explicitly migrated. See
18319
+ https://portpowered.com/docs/media.
18049
18320
  PlayableAudio:
18050
18321
  type: object
18051
18322
  description: An audio object to play on an endpoint with audio output.
@@ -20908,6 +21179,11 @@ components:
20908
21179
  id:
20909
21180
  type: string
20910
21181
  description: The ID of the target
21182
+ routeId:
21183
+ type: string
21184
+ description: >-
21185
+ Optional full route or group-route ID belonging to this target. Selects one advertised
21186
+ provider route and preserves that provider for follow-up transport or volume commands.
20911
21187
  CreateMessageRequestResponseType:
20912
21188
  type: string
20913
21189
  enum:
@@ -21126,6 +21402,41 @@ components:
21126
21402
  type: string
21127
21403
  description: The ID of the view that was created or updated
21128
21404
  additionalProperties: false
21405
+ MediaProvider:
21406
+ type: string
21407
+ description: >-
21408
+ Media service identifier. A provider enum value does not imply that every endpoint supports
21409
+ that service; use the endpoint's advertised provider lists.
21410
+ enum:
21411
+ - SPOTIFY
21412
+ - AMAZON_MUSIC
21413
+ - APPLE_MUSIC
21414
+ - AUDIBLE
21415
+ - TUNE_IN
21416
+ - PANDORA
21417
+ - IHEART_RADIO
21418
+ - SIRIUSXM
21419
+ - DEEZER
21420
+ - TIDAL
21421
+ - YOUTUBE
21422
+ - NETFLIX
21423
+ - PRIME_VIDEO
21424
+ - DAILYMOTION
21425
+ x-enum-varnames:
21426
+ - MediaProviderSpotify
21427
+ - MediaProviderAmazonMusic
21428
+ - MediaProviderAppleMusic
21429
+ - MediaProviderAudible
21430
+ - MediaProviderTuneIn
21431
+ - MediaProviderPandora
21432
+ - MediaProviderIHeartRadio
21433
+ - MediaProviderSiriusXM
21434
+ - MediaProviderDeezer
21435
+ - MediaProviderTidal
21436
+ - MediaProviderYouTube
21437
+ - MediaProviderNetflix
21438
+ - MediaProviderPrimeVideo
21439
+ - MediaProviderDailymotion
21129
21440
  NotificationPayload:
21130
21441
  type: object
21131
21442
  description: Notification payload information
@@ -21340,39 +21651,27 @@ components:
21340
21651
  format: uri
21341
21652
  description: Logo image URL
21342
21653
  additionalProperties: false
21343
- MovementInstruction:
21654
+ Playlist:
21344
21655
  type: object
21345
- description: A movement instruction for remote control
21346
21656
  properties:
21347
- velocity:
21348
- type: number
21349
- description: Forward/backward speed
21350
- omega:
21351
- type: number
21352
- description: Angular velocity for turning
21353
- duration:
21354
- type: integer
21355
- description: Duration in milliseconds
21657
+ id:
21658
+ type: string
21659
+ description: Unique identifier for the playlist
21660
+ minLength: 1
21661
+ name:
21662
+ type: string
21663
+ description: Playlist name
21664
+ minLength: 1
21665
+ ownerId:
21666
+ type: string
21667
+ description: Provider-scoped owner identity, when supplied by the provider.
21668
+ ownerName:
21669
+ type: string
21670
+ description: Owner display name, useful for distinguishing owned and followed playlists.
21356
21671
  required:
21357
- - velocity
21358
- - omega
21359
- - duration
21672
+ - id
21673
+ - name
21360
21674
  additionalProperties: false
21361
- CleaningMode:
21362
- type: string
21363
- description: Robot vacuum cleaning mode
21364
- enum:
21365
- - AUTO
21366
- - SPOT
21367
- - EDGE
21368
- - SINGLE_ROOM
21369
- - CUSTOM
21370
- x-enum-varnames:
21371
- - CleaningModeAuto
21372
- - CleaningModeSpot
21373
- - CleaningModeEdge
21374
- - CleaningModeSingleRoom
21375
- - CleaningModeCustom
21376
21675
  Artist:
21377
21676
  type: object
21378
21677
  description: Artist information
@@ -21437,17 +21736,71 @@ components:
21437
21736
  - artists
21438
21737
  - album
21439
21738
  additionalProperties: false
21440
- Playlist:
21739
+ PodcastEpisode:
21441
21740
  type: object
21741
+ description: Provider-qualified podcast episode with selection metadata.
21442
21742
  properties:
21443
21743
  id:
21744
+ $ref: '#/components/schemas/MediaId'
21745
+ name:
21444
21746
  type: string
21445
- description: Unique identifier for the playlist
21446
21747
  minLength: 1
21748
+ showId:
21749
+ $ref: '#/components/schemas/MediaId'
21750
+ releaseDate:
21751
+ type: string
21752
+ description: Provider release date; precision can be year, month or day.
21753
+ releaseDatePrecision:
21754
+ type: string
21755
+ description: Provider date precision.
21756
+ required:
21757
+ - id
21758
+ - name
21759
+ additionalProperties: false
21760
+ MovementInstruction:
21761
+ type: object
21762
+ description: A movement instruction for remote control
21763
+ properties:
21764
+ velocity:
21765
+ type: number
21766
+ description: Forward/backward speed
21767
+ omega:
21768
+ type: number
21769
+ description: Angular velocity for turning
21770
+ duration:
21771
+ type: integer
21772
+ description: Duration in milliseconds
21773
+ required:
21774
+ - velocity
21775
+ - omega
21776
+ - duration
21777
+ additionalProperties: false
21778
+ CleaningMode:
21779
+ type: string
21780
+ description: Robot vacuum cleaning mode
21781
+ enum:
21782
+ - AUTO
21783
+ - SPOT
21784
+ - EDGE
21785
+ - SINGLE_ROOM
21786
+ - CUSTOM
21787
+ x-enum-varnames:
21788
+ - CleaningModeAuto
21789
+ - CleaningModeSpot
21790
+ - CleaningModeEdge
21791
+ - CleaningModeSingleRoom
21792
+ - CleaningModeCustom
21793
+ PodcastShow:
21794
+ type: object
21795
+ description: Provider-qualified podcast series; read episodes before playback.
21796
+ properties:
21797
+ id:
21798
+ $ref: '#/components/schemas/MediaId'
21447
21799
  name:
21448
21800
  type: string
21449
- description: Playlist name
21450
21801
  minLength: 1
21802
+ publisher:
21803
+ type: string
21451
21804
  required:
21452
21805
  - id
21453
21806
  - name
@@ -21612,8 +21965,15 @@ components:
21612
21965
  type: string
21613
21966
  enum:
21614
21967
  - SSML
21968
+ - CANNED_TTS
21615
21969
  ssml:
21616
21970
  type: string
21971
+ cannedTtsStringId:
21972
+ type: string
21973
+ minLength: 1
21974
+ description: >-
21975
+ Provider-defined canned speech identifier; supported only by integrations advertising
21976
+ canned speech.
21617
21977
  AttributeSchema:
21618
21978
  type: object
21619
21979
  properties:
@@ -22260,6 +22620,31 @@ components:
22260
22620
  required:
22261
22621
  - name
22262
22622
  additionalProperties: false
22623
+ SupportedMediaResource:
22624
+ title: SupportedMediaResource
22625
+ description: A provider, media type and resource-kind combination accepted by a control route.
22626
+ type: object
22627
+ properties:
22628
+ provider:
22629
+ $ref: '#/components/schemas/MediaProvider'
22630
+ mediaType:
22631
+ type: string
22632
+ enum:
22633
+ - AUDIO
22634
+ - VIDEO
22635
+ - IMAGE
22636
+ resourceKinds:
22637
+ type: array
22638
+ minItems: 1
22639
+ uniqueItems: true
22640
+ items:
22641
+ type: string
22642
+ description: Lowercase resource-kind segment from the provider URI.
22643
+ required:
22644
+ - provider
22645
+ - mediaType
22646
+ - resourceKinds
22647
+ additionalProperties: false
22263
22648
  MeasurementRange:
22264
22649
  type: object
22265
22650
  description: Range of measurement values (min and max)
@@ -22294,6 +22679,8 @@ components:
22294
22679
  - PLAYLIST
22295
22680
  - GENRE
22296
22681
  - YEAR
22682
+ - SHOW
22683
+ - EPISODE
22297
22684
  x-enum-varnames:
22298
22685
  - Configuration6SupportedSearchTypesTrack
22299
22686
  - Configuration6SupportedSearchTypesAlbum
@@ -22301,6 +22688,8 @@ components:
22301
22688
  - Configuration6SupportedSearchTypesPlaylist
22302
22689
  - Configuration6SupportedSearchTypesGenre
22303
22690
  - Configuration6SupportedSearchTypesYear
22691
+ - Configuration6SupportedSearchTypesShow
22692
+ - Configuration6SupportedSearchTypesEpisode
22304
22693
  description: List of supported search types
22305
22694
  maxResults:
22306
22695
  type: integer
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "x-namespace": "port1/systems/zero/capability-interfaces/brightness",
4
+ "x-name": "adjust-brightness",
5
+ "x-version": "1.0",
6
+ "x-type": "message",
7
+ "x-directionality": "in",
8
+ "description": "Adjust brightness by a signed number of percentage points. The endpoint must advertise this message separately from set-brightness.",
9
+ "type": "object",
10
+ "properties": {
11
+ "brightnessDelta": {
12
+ "type": "integer",
13
+ "minimum": -100,
14
+ "maximum": 100
15
+ }
16
+ },
17
+ "required": [
18
+ "brightnessDelta"
19
+ ],
20
+ "additionalProperties": false
21
+ }
@@ -12,6 +12,10 @@
12
12
  "id": {
13
13
  "type": "string",
14
14
  "description": "The ID of the target"
15
+ },
16
+ "routeId": {
17
+ "type": "string",
18
+ "description": "Optional full route or group-route ID belonging to this target. Selects one advertised provider route and preserves that provider for follow-up transport or volume commands."
15
19
  }
16
20
  }
17
21
  }
@@ -27,6 +27,7 @@
27
27
  "LEFT",
28
28
  "RIGHT",
29
29
  "SELECT",
30
+ "HOME",
30
31
  "BACK",
31
32
  "EXIT",
32
33
  "MENU",
@@ -26,6 +26,7 @@
26
26
  "LEFT",
27
27
  "RIGHT",
28
28
  "SELECT",
29
+ "HOME",
29
30
  "BACK",
30
31
  "EXIT",
31
32
  "MENU",
@@ -3,5 +3,7 @@
3
3
  "title": "MediaId",
4
4
  "type": "string",
5
5
  "minLength": 1,
6
- "description": "Media IDs are a standardized identifier that Port OS uses to represent media across YouTube, Spotify, and other media providers. See https://portpowered.com/docs/media for the current media identifiers documentation."
6
+ "example": "portos-media://portpowered.com/spotify/audio/track/Ab123",
7
+ "pattern": "^(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_-]+)$",
8
+ "description": "Exact provider resource identity. The canonical form is portos-media://portpowered.com/provider/media-type/resource-kind/resource-id, with no URI version. Spotify emits audio track, playlist, album, artist, show and episode identities. Copy an ID returned by search or library discovery; do not send a search phrase as an ID. Legacy providers retain their own input contracts until explicitly migrated. See https://portpowered.com/docs/media.\n"
7
9
  }