@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.
- package/generated/capabilities.json +713 -7
- package/generated/openapi.json +503 -41
- package/generated/public/docs/for-ai/capability-interfaces/brightness/1.0.md +1 -0
- package/generated/public/docs/for-ai/capability-interfaces/media-player/1.0.md +3 -1
- package/generated/public/docs/for-ai/capability-interfaces/media-playlist/1.0.md +3 -0
- package/generated/public/docs/for-ai/capability-interfaces/media-search/1.0.md +2 -0
- package/generated/public/docs/for-ai/schemas/b-1.md +1 -0
- package/generated/public/docs/for-ai/schemas/m-1.md +8 -8
- package/generated/public/docs/for-ai/schemas/m-2.md +8 -0
- package/generated/public/docs/for-ai/schemas/p-2.md +2 -0
- package/generated/public/docs/for-ai/schemas/s-3.md +1 -0
- package/generated/public/docs/for-ai/schemas.md +5 -5
- package/generated/public/docs/references/capability-interfaces/brightness/1.0/messages/adjust-brightness.yaml +12 -0
- package/generated/public/docs/references/capability-interfaces/brightness/1.0.yaml +18 -0
- package/generated/public/docs/references/capability-interfaces/brightness.yaml +18 -0
- package/generated/public/docs/references/capability-interfaces/keypad-input/1.0/configuration.yaml +1 -0
- package/generated/public/docs/references/capability-interfaces/keypad-input/1.0/messages/send-key.yaml +1 -0
- package/generated/public/docs/references/capability-interfaces/keypad-input/1.0.yaml +2 -0
- package/generated/public/docs/references/capability-interfaces/keypad-input.yaml +2 -0
- package/generated/public/docs/references/capability-interfaces/media-player/1.0/attributes/now-playing.yaml +30 -0
- package/generated/public/docs/references/capability-interfaces/media-player/1.0/configuration.yaml +70 -0
- package/generated/public/docs/references/capability-interfaces/media-player/1.0/messages/fast-forward.yaml +5 -0
- package/generated/public/docs/references/capability-interfaces/media-player/1.0/messages/play-media.yaml +11 -5
- package/generated/public/docs/references/capability-interfaces/media-player/1.0/messages/search-and-play.yaml +39 -1
- package/generated/public/docs/references/capability-interfaces/media-player/1.0.yaml +162 -6
- package/generated/public/docs/references/capability-interfaces/media-player.yaml +162 -6
- package/generated/public/docs/references/capability-interfaces/media-playlist/1.0/messages/get-playlist.yaml +9 -0
- package/generated/public/docs/references/capability-interfaces/media-playlist/1.0/messages/list-playlists.yaml +15 -0
- package/generated/public/docs/references/capability-interfaces/media-playlist/1.0/messages/playlist-contents.yaml +114 -0
- package/generated/public/docs/references/capability-interfaces/media-playlist/1.0/messages/playlists.yaml +35 -0
- package/generated/public/docs/references/capability-interfaces/media-playlist/1.0.yaml +184 -0
- package/generated/public/docs/references/capability-interfaces/media-playlist.yaml +184 -0
- package/generated/public/docs/references/capability-interfaces/media-search/1.0/messages/audio-media-results.yaml +67 -0
- package/generated/public/docs/references/capability-interfaces/media-search/1.0/messages/get-media.yaml +32 -0
- package/generated/public/docs/references/capability-interfaces/media-search/1.0/messages/media-details.yaml +118 -0
- package/generated/public/docs/references/capability-interfaces/media-search/1.0/messages/search-media.yaml +15 -1
- package/generated/public/docs/references/capability-interfaces/media-search/1.0.yaml +235 -1
- package/generated/public/docs/references/capability-interfaces/media-search.yaml +235 -1
- package/generated/public/docs/references/capability-interfaces/recordings/1.0/messages/list-recordings-response.yaml +11 -5
- package/generated/public/docs/references/capability-interfaces/recordings/1.0.yaml +10 -5
- package/generated/public/docs/references/capability-interfaces/recordings.yaml +10 -5
- package/generated/public/docs/references/capability-interfaces/speech-synthesizer/1.0/configuration.yaml +14 -0
- package/generated/public/docs/references/capability-interfaces/speech-synthesizer/1.0/messages/speak.yaml +7 -0
- package/generated/public/docs/references/capability-interfaces/speech-synthesizer/1.0.yaml +22 -1
- package/generated/public/docs/references/capability-interfaces/speech-synthesizer.yaml +22 -1
- package/generated/public/docs/references/manifest.json +278 -111
- package/generated/public/docs/references/openapi.yaml +427 -38
- package/generated/public/docs/references/schemas/BrightnessInterfaceAdjustBrightnessMessage.json +21 -0
- package/generated/public/docs/references/schemas/CreateMessageTarget.json +4 -0
- package/generated/public/docs/references/schemas/KeypadInputInterfaceConfiguration.json +1 -0
- package/generated/public/docs/references/schemas/KeypadInputInterfaceSendKeyMessage.json +1 -0
- package/generated/public/docs/references/schemas/MediaId.json +3 -1
- package/generated/public/docs/references/schemas/MediaPlayerInterfaceConfiguration.json +31 -0
- package/generated/public/docs/references/schemas/MediaPlayerInterfaceFastForwardMessage.json +11 -0
- package/generated/public/docs/references/schemas/MediaPlayerInterfaceNowPlayingAttribute.json +27 -0
- package/generated/public/docs/references/schemas/MediaPlayerInterfaceSearchAndPlayMessage.json +23 -1
- package/generated/public/docs/references/schemas/MediaPlaylistInterfaceGetPlaylistMessage.json +11 -0
- package/generated/public/docs/references/schemas/MediaPlaylistInterfaceListPlaylistsMessage.json +24 -0
- package/generated/public/docs/references/schemas/MediaPlaylistInterfacePlaylistContentsMessage.json +37 -0
- package/generated/public/docs/references/schemas/MediaPlaylistInterfacePlaylistsMessage.json +26 -0
- package/generated/public/docs/references/schemas/MediaProvider.json +37 -0
- package/generated/public/docs/references/schemas/MediaSearchInterfaceAudioMediaResultsMessage.json +17 -0
- package/generated/public/docs/references/schemas/MediaSearchInterfaceGetMediaMessage.json +30 -0
- package/generated/public/docs/references/schemas/MediaSearchInterfaceMediaDetailsMessage.json +43 -0
- package/generated/public/docs/references/schemas/MediaSearchInterfaceSearchMediaMessage.json +13 -1
- package/generated/public/docs/references/schemas/Playlist.json +8 -0
- package/generated/public/docs/references/schemas/PodcastEpisode.json +30 -0
- package/generated/public/docs/references/schemas/PodcastShow.json +22 -0
- package/generated/public/docs/references/schemas/SpeechInput.json +7 -1
- package/generated/public/docs/references/schemas/SpeechSynthesizerInterfaceConfiguration.json +13 -0
- package/generated/public/docs/references/schemas/SupportedMediaResource.json +34 -0
- package/generated/public/docs/references/schemas/configuration-6.json +6 -2
- package/generated/public/docs/references/schemas/index.json +72 -0
- package/generated/resources/brightness/message-adjust-brightness.json +15 -0
- package/generated/resources/keypad-input/configuration.json +1 -0
- package/generated/resources/keypad-input/message-send-key.json +1 -0
- package/generated/resources/media-player/configuration.json +78 -0
- package/generated/resources/media-player/message-fast-forward.json +5 -0
- package/generated/resources/media-player/message-play-media.json +3 -1
- package/generated/resources/media-player/message-search-and-play.json +36 -1
- package/generated/resources/media-player/state-now-playing.json +27 -0
- package/generated/resources/media-playlist/message-get-playlist.json +11 -0
- package/generated/resources/media-playlist/message-list-playlists.json +18 -0
- package/generated/resources/media-playlist/message-playlist-contents.json +140 -0
- package/generated/resources/media-playlist/message-playlists.json +46 -0
- package/generated/resources/media-search/message-audio-media-results.json +76 -0
- package/generated/resources/media-search/message-get-media.json +29 -0
- package/generated/resources/media-search/message-media-details.json +146 -0
- package/generated/resources/media-search/message-search-media.json +13 -1
- package/generated/resources/recordings/message-list-recordings-response.json +3 -1
- package/generated/resources/speech-synthesizer/configuration.json +18 -1
- package/generated/resources/speech-synthesizer/message-speak.json +7 -1
- package/package.json +1 -1
|
@@ -483,6 +483,26 @@
|
|
|
483
483
|
"version": "1.0",
|
|
484
484
|
"description": "Brightness sets how bright a connected device should be and reports its current level. Use it to dim a light for the evening or restore a brighter setting for work.",
|
|
485
485
|
"messages": [
|
|
486
|
+
{
|
|
487
|
+
"name": "adjust-brightness",
|
|
488
|
+
"description": "Adjust brightness by a signed number of percentage points. The endpoint must advertise this message separately from set-brightness.",
|
|
489
|
+
"directionality": "in",
|
|
490
|
+
"schema": {
|
|
491
|
+
"description": "Adjust brightness by a signed number of percentage points. The endpoint must advertise this message separately from set-brightness.",
|
|
492
|
+
"type": "object",
|
|
493
|
+
"properties": {
|
|
494
|
+
"brightnessDelta": {
|
|
495
|
+
"type": "integer",
|
|
496
|
+
"minimum": -100,
|
|
497
|
+
"maximum": 100
|
|
498
|
+
}
|
|
499
|
+
},
|
|
500
|
+
"required": [
|
|
501
|
+
"brightnessDelta"
|
|
502
|
+
],
|
|
503
|
+
"additionalProperties": false
|
|
504
|
+
}
|
|
505
|
+
},
|
|
486
506
|
{
|
|
487
507
|
"name": "set-brightness",
|
|
488
508
|
"description": null,
|
|
@@ -3816,6 +3836,7 @@
|
|
|
3816
3836
|
"LEFT",
|
|
3817
3837
|
"RIGHT",
|
|
3818
3838
|
"SELECT",
|
|
3839
|
+
"HOME",
|
|
3819
3840
|
"BACK",
|
|
3820
3841
|
"EXIT",
|
|
3821
3842
|
"MENU",
|
|
@@ -3876,6 +3897,7 @@
|
|
|
3876
3897
|
"LEFT",
|
|
3877
3898
|
"RIGHT",
|
|
3878
3899
|
"SELECT",
|
|
3900
|
+
"HOME",
|
|
3879
3901
|
"BACK",
|
|
3880
3902
|
"EXIT",
|
|
3881
3903
|
"MENU",
|
|
@@ -4317,6 +4339,16 @@
|
|
|
4317
4339
|
"additionalProperties": false
|
|
4318
4340
|
}
|
|
4319
4341
|
},
|
|
4342
|
+
{
|
|
4343
|
+
"name": "fast-forward",
|
|
4344
|
+
"description": "Begin provider-defined fast-forward playback. This does not seek by a specific duration; use skip-forward or seek for a known position change.",
|
|
4345
|
+
"directionality": "in",
|
|
4346
|
+
"schema": {
|
|
4347
|
+
"description": "Begin provider-defined fast-forward playback. This does not seek by a specific duration; use skip-forward or seek for a known position change.",
|
|
4348
|
+
"type": "object",
|
|
4349
|
+
"additionalProperties": false
|
|
4350
|
+
}
|
|
4351
|
+
},
|
|
4320
4352
|
{
|
|
4321
4353
|
"name": "next",
|
|
4322
4354
|
"description": null,
|
|
@@ -4389,7 +4421,9 @@
|
|
|
4389
4421
|
"title": "MediaId",
|
|
4390
4422
|
"type": "string",
|
|
4391
4423
|
"minLength": 1,
|
|
4392
|
-
"
|
|
4424
|
+
"example": "portos-media://portpowered.com/spotify/audio/track/Ab123",
|
|
4425
|
+
"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_-]+)$",
|
|
4426
|
+
"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"
|
|
4393
4427
|
}
|
|
4394
4428
|
},
|
|
4395
4429
|
"required": [
|
|
@@ -4457,15 +4491,50 @@
|
|
|
4457
4491
|
},
|
|
4458
4492
|
{
|
|
4459
4493
|
"name": "search-and-play",
|
|
4460
|
-
"description":
|
|
4494
|
+
"description": "Search for and play media by title or query using a service advertised by the endpoint. Omitting mediaType retains audio search behavior; video-only endpoints may default to video.",
|
|
4461
4495
|
"directionality": "in",
|
|
4462
4496
|
"schema": {
|
|
4497
|
+
"description": "Search for and play media by title or query using a service advertised by the endpoint. Omitting mediaType retains audio search behavior; video-only endpoints may default to video.",
|
|
4463
4498
|
"type": "object",
|
|
4464
4499
|
"properties": {
|
|
4465
4500
|
"query": {
|
|
4466
4501
|
"type": "string",
|
|
4467
|
-
"description": "Query to search for
|
|
4502
|
+
"description": "Query to search for media content",
|
|
4468
4503
|
"minLength": 1
|
|
4504
|
+
},
|
|
4505
|
+
"provider": {
|
|
4506
|
+
"type": "string",
|
|
4507
|
+
"description": "Media service identifier. A provider enum value does not imply that every endpoint supports that service; use the endpoint's advertised provider lists.",
|
|
4508
|
+
"enum": [
|
|
4509
|
+
"SPOTIFY",
|
|
4510
|
+
"AMAZON_MUSIC",
|
|
4511
|
+
"APPLE_MUSIC",
|
|
4512
|
+
"AUDIBLE",
|
|
4513
|
+
"TUNE_IN",
|
|
4514
|
+
"PANDORA",
|
|
4515
|
+
"IHEART_RADIO",
|
|
4516
|
+
"SIRIUSXM",
|
|
4517
|
+
"DEEZER",
|
|
4518
|
+
"TIDAL",
|
|
4519
|
+
"YOUTUBE",
|
|
4520
|
+
"NETFLIX",
|
|
4521
|
+
"PRIME_VIDEO",
|
|
4522
|
+
"DAILYMOTION"
|
|
4523
|
+
]
|
|
4524
|
+
},
|
|
4525
|
+
"mediaType": {
|
|
4526
|
+
"type": "string",
|
|
4527
|
+
"enum": [
|
|
4528
|
+
"AUDIO",
|
|
4529
|
+
"VIDEO"
|
|
4530
|
+
],
|
|
4531
|
+
"description": "Media search domain. The endpoint must advertise support for the selected type."
|
|
4532
|
+
},
|
|
4533
|
+
"timerSeconds": {
|
|
4534
|
+
"type": "integer",
|
|
4535
|
+
"minimum": 1,
|
|
4536
|
+
"maximum": 86400,
|
|
4537
|
+
"description": "Optional provider playback timer in seconds."
|
|
4469
4538
|
}
|
|
4470
4539
|
},
|
|
4471
4540
|
"required": [
|
|
@@ -4545,6 +4614,37 @@
|
|
|
4545
4614
|
}
|
|
4546
4615
|
],
|
|
4547
4616
|
"attributes": [
|
|
4617
|
+
{
|
|
4618
|
+
"name": "now-playing",
|
|
4619
|
+
"description": "Media identity observed on this route. Active false means the provider session is on another target; it does not prove the speaker is silent through other providers.",
|
|
4620
|
+
"schema": {
|
|
4621
|
+
"description": "Media identity observed on this route. Active false means the provider session is on another target; it does not prove the speaker is silent through other providers.",
|
|
4622
|
+
"type": "object",
|
|
4623
|
+
"properties": {
|
|
4624
|
+
"active": {
|
|
4625
|
+
"type": "boolean"
|
|
4626
|
+
},
|
|
4627
|
+
"mediaId": {
|
|
4628
|
+
"title": "MediaId",
|
|
4629
|
+
"type": "string",
|
|
4630
|
+
"minLength": 1,
|
|
4631
|
+
"example": "portos-media://portpowered.com/spotify/audio/track/Ab123",
|
|
4632
|
+
"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_-]+)$",
|
|
4633
|
+
"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"
|
|
4634
|
+
},
|
|
4635
|
+
"contextMediaId": {
|
|
4636
|
+
"$ref": "#/properties/mediaId"
|
|
4637
|
+
},
|
|
4638
|
+
"name": {
|
|
4639
|
+
"type": "string"
|
|
4640
|
+
}
|
|
4641
|
+
},
|
|
4642
|
+
"required": [
|
|
4643
|
+
"active"
|
|
4644
|
+
],
|
|
4645
|
+
"additionalProperties": false
|
|
4646
|
+
}
|
|
4647
|
+
},
|
|
4548
4648
|
{
|
|
4549
4649
|
"name": "playback-speed",
|
|
4550
4650
|
"description": null,
|
|
@@ -4593,6 +4693,84 @@
|
|
|
4593
4693
|
"description": "Media players select media by its Port OS media ID, play supplied audio or a URI, and control playback. Read playback state and use only the commands supported by the connected player.",
|
|
4594
4694
|
"type": "object",
|
|
4595
4695
|
"properties": {
|
|
4696
|
+
"supportedMediaResources": {
|
|
4697
|
+
"type": "array",
|
|
4698
|
+
"description": "Exact play-media URI combinations accepted by this route. Member or endpoint unions do not imply support by every route.",
|
|
4699
|
+
"items": {
|
|
4700
|
+
"title": "SupportedMediaResource",
|
|
4701
|
+
"description": "A provider, media type and resource-kind combination accepted by a control route.",
|
|
4702
|
+
"type": "object",
|
|
4703
|
+
"properties": {
|
|
4704
|
+
"provider": {
|
|
4705
|
+
"$ref": "#/properties/supportedAudioProviders/items"
|
|
4706
|
+
},
|
|
4707
|
+
"mediaType": {
|
|
4708
|
+
"type": "string",
|
|
4709
|
+
"enum": [
|
|
4710
|
+
"AUDIO",
|
|
4711
|
+
"VIDEO",
|
|
4712
|
+
"IMAGE"
|
|
4713
|
+
]
|
|
4714
|
+
},
|
|
4715
|
+
"resourceKinds": {
|
|
4716
|
+
"type": "array",
|
|
4717
|
+
"minItems": 1,
|
|
4718
|
+
"uniqueItems": true,
|
|
4719
|
+
"items": {
|
|
4720
|
+
"type": "string",
|
|
4721
|
+
"description": "Lowercase resource-kind segment from the provider URI."
|
|
4722
|
+
}
|
|
4723
|
+
}
|
|
4724
|
+
},
|
|
4725
|
+
"required": [
|
|
4726
|
+
"provider",
|
|
4727
|
+
"mediaType",
|
|
4728
|
+
"resourceKinds"
|
|
4729
|
+
],
|
|
4730
|
+
"additionalProperties": false
|
|
4731
|
+
}
|
|
4732
|
+
},
|
|
4733
|
+
"supportedAudioProviders": {
|
|
4734
|
+
"type": "array",
|
|
4735
|
+
"uniqueItems": true,
|
|
4736
|
+
"description": "Audio services accepted by search-and-play on this endpoint. These describe command support, not active subscriptions.",
|
|
4737
|
+
"items": {
|
|
4738
|
+
"type": "string",
|
|
4739
|
+
"description": "Media service identifier. A provider enum value does not imply that every endpoint supports that service; use the endpoint's advertised provider lists.",
|
|
4740
|
+
"enum": [
|
|
4741
|
+
"SPOTIFY",
|
|
4742
|
+
"AMAZON_MUSIC",
|
|
4743
|
+
"APPLE_MUSIC",
|
|
4744
|
+
"AUDIBLE",
|
|
4745
|
+
"TUNE_IN",
|
|
4746
|
+
"PANDORA",
|
|
4747
|
+
"IHEART_RADIO",
|
|
4748
|
+
"SIRIUSXM",
|
|
4749
|
+
"DEEZER",
|
|
4750
|
+
"TIDAL",
|
|
4751
|
+
"YOUTUBE",
|
|
4752
|
+
"NETFLIX",
|
|
4753
|
+
"PRIME_VIDEO",
|
|
4754
|
+
"DAILYMOTION"
|
|
4755
|
+
]
|
|
4756
|
+
}
|
|
4757
|
+
},
|
|
4758
|
+
"supportedVideoProviders": {
|
|
4759
|
+
"type": "array",
|
|
4760
|
+
"uniqueItems": true,
|
|
4761
|
+
"description": "Video services accepted by search-and-play on this endpoint. These describe command support, not installed applications or active subscriptions.",
|
|
4762
|
+
"items": {
|
|
4763
|
+
"$ref": "#/properties/supportedAudioProviders/items"
|
|
4764
|
+
}
|
|
4765
|
+
},
|
|
4766
|
+
"defaultAudioProvider": {
|
|
4767
|
+
"$ref": "#/properties/supportedAudioProviders/items",
|
|
4768
|
+
"description": "Default service for an audio search. Must be in supportedAudioProviders."
|
|
4769
|
+
},
|
|
4770
|
+
"defaultVideoProvider": {
|
|
4771
|
+
"$ref": "#/properties/supportedAudioProviders/items",
|
|
4772
|
+
"description": "Default service for a video search. Must be in supportedVideoProviders."
|
|
4773
|
+
},
|
|
4596
4774
|
"supportedPlaybackStates": {
|
|
4597
4775
|
"type": "array",
|
|
4598
4776
|
"items": {
|
|
@@ -4771,6 +4949,17 @@
|
|
|
4771
4949
|
"type": "string",
|
|
4772
4950
|
"description": "ID of the playlist to retrieve",
|
|
4773
4951
|
"minLength": 1
|
|
4952
|
+
},
|
|
4953
|
+
"maxResults": {
|
|
4954
|
+
"type": "integer",
|
|
4955
|
+
"minimum": 1,
|
|
4956
|
+
"maximum": 50,
|
|
4957
|
+
"default": 20
|
|
4958
|
+
},
|
|
4959
|
+
"nextToken": {
|
|
4960
|
+
"type": "string",
|
|
4961
|
+
"minLength": 1,
|
|
4962
|
+
"description": "Opaque continuation for the same playlist."
|
|
4774
4963
|
}
|
|
4775
4964
|
},
|
|
4776
4965
|
"required": [
|
|
@@ -4779,6 +4968,29 @@
|
|
|
4779
4968
|
"additionalProperties": false
|
|
4780
4969
|
}
|
|
4781
4970
|
},
|
|
4971
|
+
{
|
|
4972
|
+
"name": "list-playlists",
|
|
4973
|
+
"description": "List the connected customer's owned or followed playlists; use search-media for catalog search.",
|
|
4974
|
+
"directionality": "in",
|
|
4975
|
+
"schema": {
|
|
4976
|
+
"description": "List the connected customer's owned or followed playlists; use search-media for catalog search.",
|
|
4977
|
+
"type": "object",
|
|
4978
|
+
"properties": {
|
|
4979
|
+
"maxResults": {
|
|
4980
|
+
"type": "integer",
|
|
4981
|
+
"minimum": 1,
|
|
4982
|
+
"maximum": 50,
|
|
4983
|
+
"default": 20
|
|
4984
|
+
},
|
|
4985
|
+
"nextToken": {
|
|
4986
|
+
"type": "string",
|
|
4987
|
+
"minLength": 1
|
|
4988
|
+
}
|
|
4989
|
+
},
|
|
4990
|
+
"required": [],
|
|
4991
|
+
"additionalProperties": false
|
|
4992
|
+
}
|
|
4993
|
+
},
|
|
4782
4994
|
{
|
|
4783
4995
|
"name": "play-playlist",
|
|
4784
4996
|
"description": null,
|
|
@@ -4802,6 +5014,202 @@
|
|
|
4802
5014
|
"additionalProperties": false
|
|
4803
5015
|
}
|
|
4804
5016
|
},
|
|
5017
|
+
{
|
|
5018
|
+
"name": "playlist-contents",
|
|
5019
|
+
"description": "A bounded playlist page containing playable tracks or episodes.",
|
|
5020
|
+
"directionality": "out",
|
|
5021
|
+
"schema": {
|
|
5022
|
+
"description": "A bounded playlist page containing playable tracks or episodes.",
|
|
5023
|
+
"type": "object",
|
|
5024
|
+
"properties": {
|
|
5025
|
+
"playlistId": {
|
|
5026
|
+
"title": "MediaId",
|
|
5027
|
+
"type": "string",
|
|
5028
|
+
"minLength": 1,
|
|
5029
|
+
"example": "portos-media://portpowered.com/spotify/audio/track/Ab123",
|
|
5030
|
+
"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_-]+)$",
|
|
5031
|
+
"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"
|
|
5032
|
+
},
|
|
5033
|
+
"tracks": {
|
|
5034
|
+
"type": "array",
|
|
5035
|
+
"items": {
|
|
5036
|
+
"type": "object",
|
|
5037
|
+
"description": "Track information",
|
|
5038
|
+
"properties": {
|
|
5039
|
+
"id": {
|
|
5040
|
+
"type": "string",
|
|
5041
|
+
"description": "Unique identifier for the track",
|
|
5042
|
+
"minLength": 1
|
|
5043
|
+
},
|
|
5044
|
+
"name": {
|
|
5045
|
+
"type": "string",
|
|
5046
|
+
"description": "Track name",
|
|
5047
|
+
"minLength": 1
|
|
5048
|
+
},
|
|
5049
|
+
"artists": {
|
|
5050
|
+
"type": "array",
|
|
5051
|
+
"items": {
|
|
5052
|
+
"type": "object",
|
|
5053
|
+
"description": "Artist information",
|
|
5054
|
+
"properties": {
|
|
5055
|
+
"id": {
|
|
5056
|
+
"type": "string",
|
|
5057
|
+
"description": "Unique identifier for the artist",
|
|
5058
|
+
"minLength": 1
|
|
5059
|
+
},
|
|
5060
|
+
"name": {
|
|
5061
|
+
"type": "string",
|
|
5062
|
+
"description": "Artist name",
|
|
5063
|
+
"minLength": 1
|
|
5064
|
+
}
|
|
5065
|
+
},
|
|
5066
|
+
"required": [
|
|
5067
|
+
"id",
|
|
5068
|
+
"name"
|
|
5069
|
+
],
|
|
5070
|
+
"additionalProperties": false,
|
|
5071
|
+
"title": "Artist"
|
|
5072
|
+
},
|
|
5073
|
+
"description": "Track artists"
|
|
5074
|
+
},
|
|
5075
|
+
"album": {
|
|
5076
|
+
"description": "Track album",
|
|
5077
|
+
"type": "object",
|
|
5078
|
+
"properties": {
|
|
5079
|
+
"id": {
|
|
5080
|
+
"type": "string",
|
|
5081
|
+
"description": "Unique identifier for the album",
|
|
5082
|
+
"minLength": 1
|
|
5083
|
+
},
|
|
5084
|
+
"name": {
|
|
5085
|
+
"type": "string",
|
|
5086
|
+
"description": "Album name",
|
|
5087
|
+
"minLength": 1
|
|
5088
|
+
},
|
|
5089
|
+
"artists": {
|
|
5090
|
+
"type": "array",
|
|
5091
|
+
"items": {
|
|
5092
|
+
"$ref": "#/properties/tracks/items/properties/artists/items"
|
|
5093
|
+
},
|
|
5094
|
+
"description": "Album artists"
|
|
5095
|
+
}
|
|
5096
|
+
},
|
|
5097
|
+
"required": [
|
|
5098
|
+
"id",
|
|
5099
|
+
"name",
|
|
5100
|
+
"artists"
|
|
5101
|
+
],
|
|
5102
|
+
"additionalProperties": false,
|
|
5103
|
+
"title": "Album"
|
|
5104
|
+
}
|
|
5105
|
+
},
|
|
5106
|
+
"required": [
|
|
5107
|
+
"id",
|
|
5108
|
+
"name",
|
|
5109
|
+
"artists",
|
|
5110
|
+
"album"
|
|
5111
|
+
],
|
|
5112
|
+
"additionalProperties": false,
|
|
5113
|
+
"title": "Track"
|
|
5114
|
+
}
|
|
5115
|
+
},
|
|
5116
|
+
"episodes": {
|
|
5117
|
+
"type": "array",
|
|
5118
|
+
"items": {
|
|
5119
|
+
"type": "object",
|
|
5120
|
+
"description": "Provider-qualified podcast episode with selection metadata.",
|
|
5121
|
+
"properties": {
|
|
5122
|
+
"id": {
|
|
5123
|
+
"$ref": "#/properties/playlistId"
|
|
5124
|
+
},
|
|
5125
|
+
"name": {
|
|
5126
|
+
"type": "string",
|
|
5127
|
+
"minLength": 1
|
|
5128
|
+
},
|
|
5129
|
+
"showId": {
|
|
5130
|
+
"$ref": "#/properties/playlistId"
|
|
5131
|
+
},
|
|
5132
|
+
"releaseDate": {
|
|
5133
|
+
"type": "string",
|
|
5134
|
+
"description": "Provider release date; precision can be year, month or day."
|
|
5135
|
+
},
|
|
5136
|
+
"releaseDatePrecision": {
|
|
5137
|
+
"type": "string",
|
|
5138
|
+
"description": "Provider date precision."
|
|
5139
|
+
}
|
|
5140
|
+
},
|
|
5141
|
+
"required": [
|
|
5142
|
+
"id",
|
|
5143
|
+
"name"
|
|
5144
|
+
],
|
|
5145
|
+
"additionalProperties": false,
|
|
5146
|
+
"title": "PodcastEpisode"
|
|
5147
|
+
}
|
|
5148
|
+
},
|
|
5149
|
+
"nextToken": {
|
|
5150
|
+
"type": "string",
|
|
5151
|
+
"minLength": 1
|
|
5152
|
+
}
|
|
5153
|
+
},
|
|
5154
|
+
"required": [
|
|
5155
|
+
"playlistId",
|
|
5156
|
+
"tracks",
|
|
5157
|
+
"episodes"
|
|
5158
|
+
],
|
|
5159
|
+
"additionalProperties": false
|
|
5160
|
+
}
|
|
5161
|
+
},
|
|
5162
|
+
{
|
|
5163
|
+
"name": "playlists",
|
|
5164
|
+
"description": "A page of the connected customer's playlists with exact resource IDs.",
|
|
5165
|
+
"directionality": "out",
|
|
5166
|
+
"schema": {
|
|
5167
|
+
"description": "A page of the connected customer's playlists with exact resource IDs.",
|
|
5168
|
+
"type": "object",
|
|
5169
|
+
"properties": {
|
|
5170
|
+
"playlists": {
|
|
5171
|
+
"type": "array",
|
|
5172
|
+
"items": {
|
|
5173
|
+
"type": "object",
|
|
5174
|
+
"properties": {
|
|
5175
|
+
"id": {
|
|
5176
|
+
"type": "string",
|
|
5177
|
+
"description": "Unique identifier for the playlist",
|
|
5178
|
+
"minLength": 1
|
|
5179
|
+
},
|
|
5180
|
+
"name": {
|
|
5181
|
+
"type": "string",
|
|
5182
|
+
"description": "Playlist name",
|
|
5183
|
+
"minLength": 1
|
|
5184
|
+
},
|
|
5185
|
+
"ownerId": {
|
|
5186
|
+
"type": "string",
|
|
5187
|
+
"description": "Provider-scoped owner identity, when supplied by the provider."
|
|
5188
|
+
},
|
|
5189
|
+
"ownerName": {
|
|
5190
|
+
"type": "string",
|
|
5191
|
+
"description": "Owner display name, useful for distinguishing owned and followed playlists."
|
|
5192
|
+
}
|
|
5193
|
+
},
|
|
5194
|
+
"required": [
|
|
5195
|
+
"id",
|
|
5196
|
+
"name"
|
|
5197
|
+
],
|
|
5198
|
+
"additionalProperties": false,
|
|
5199
|
+
"title": "Playlist"
|
|
5200
|
+
}
|
|
5201
|
+
},
|
|
5202
|
+
"nextToken": {
|
|
5203
|
+
"type": "string",
|
|
5204
|
+
"minLength": 1
|
|
5205
|
+
}
|
|
5206
|
+
},
|
|
5207
|
+
"required": [
|
|
5208
|
+
"playlists"
|
|
5209
|
+
],
|
|
5210
|
+
"additionalProperties": false
|
|
5211
|
+
}
|
|
5212
|
+
},
|
|
4805
5213
|
{
|
|
4806
5214
|
"name": "remove-from-playlist",
|
|
4807
5215
|
"description": null,
|
|
@@ -4979,6 +5387,14 @@
|
|
|
4979
5387
|
"type": "string",
|
|
4980
5388
|
"description": "Playlist name",
|
|
4981
5389
|
"minLength": 1
|
|
5390
|
+
},
|
|
5391
|
+
"ownerId": {
|
|
5392
|
+
"type": "string",
|
|
5393
|
+
"description": "Provider-scoped owner identity, when supplied by the provider."
|
|
5394
|
+
},
|
|
5395
|
+
"ownerName": {
|
|
5396
|
+
"type": "string",
|
|
5397
|
+
"description": "Owner display name, useful for distinguishing owned and followed playlists."
|
|
4982
5398
|
}
|
|
4983
5399
|
},
|
|
4984
5400
|
"required": [
|
|
@@ -4989,6 +5405,74 @@
|
|
|
4989
5405
|
"title": "Playlist"
|
|
4990
5406
|
},
|
|
4991
5407
|
"description": "Playlist results"
|
|
5408
|
+
},
|
|
5409
|
+
"shows": {
|
|
5410
|
+
"type": "array",
|
|
5411
|
+
"items": {
|
|
5412
|
+
"type": "object",
|
|
5413
|
+
"description": "Provider-qualified podcast series; read episodes before playback.",
|
|
5414
|
+
"properties": {
|
|
5415
|
+
"id": {
|
|
5416
|
+
"title": "MediaId",
|
|
5417
|
+
"type": "string",
|
|
5418
|
+
"minLength": 1,
|
|
5419
|
+
"example": "portos-media://portpowered.com/spotify/audio/track/Ab123",
|
|
5420
|
+
"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_-]+)$",
|
|
5421
|
+
"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"
|
|
5422
|
+
},
|
|
5423
|
+
"name": {
|
|
5424
|
+
"type": "string",
|
|
5425
|
+
"minLength": 1
|
|
5426
|
+
},
|
|
5427
|
+
"publisher": {
|
|
5428
|
+
"type": "string"
|
|
5429
|
+
}
|
|
5430
|
+
},
|
|
5431
|
+
"required": [
|
|
5432
|
+
"id",
|
|
5433
|
+
"name"
|
|
5434
|
+
],
|
|
5435
|
+
"additionalProperties": false,
|
|
5436
|
+
"title": "PodcastShow"
|
|
5437
|
+
}
|
|
5438
|
+
},
|
|
5439
|
+
"episodes": {
|
|
5440
|
+
"type": "array",
|
|
5441
|
+
"items": {
|
|
5442
|
+
"type": "object",
|
|
5443
|
+
"description": "Provider-qualified podcast episode with selection metadata.",
|
|
5444
|
+
"properties": {
|
|
5445
|
+
"id": {
|
|
5446
|
+
"$ref": "#/properties/shows/items/properties/id"
|
|
5447
|
+
},
|
|
5448
|
+
"name": {
|
|
5449
|
+
"type": "string",
|
|
5450
|
+
"minLength": 1
|
|
5451
|
+
},
|
|
5452
|
+
"showId": {
|
|
5453
|
+
"$ref": "#/properties/shows/items/properties/id"
|
|
5454
|
+
},
|
|
5455
|
+
"releaseDate": {
|
|
5456
|
+
"type": "string",
|
|
5457
|
+
"description": "Provider release date; precision can be year, month or day."
|
|
5458
|
+
},
|
|
5459
|
+
"releaseDatePrecision": {
|
|
5460
|
+
"type": "string",
|
|
5461
|
+
"description": "Provider date precision."
|
|
5462
|
+
}
|
|
5463
|
+
},
|
|
5464
|
+
"required": [
|
|
5465
|
+
"id",
|
|
5466
|
+
"name"
|
|
5467
|
+
],
|
|
5468
|
+
"additionalProperties": false,
|
|
5469
|
+
"title": "PodcastEpisode"
|
|
5470
|
+
}
|
|
5471
|
+
},
|
|
5472
|
+
"nextToken": {
|
|
5473
|
+
"type": "string",
|
|
5474
|
+
"minLength": 1,
|
|
5475
|
+
"description": "Opaque continuation for the same search; omit when exhausted."
|
|
4992
5476
|
}
|
|
4993
5477
|
},
|
|
4994
5478
|
"required": [
|
|
@@ -5000,6 +5484,191 @@
|
|
|
5000
5484
|
"additionalProperties": false
|
|
5001
5485
|
}
|
|
5002
5486
|
},
|
|
5487
|
+
{
|
|
5488
|
+
"name": "get-media",
|
|
5489
|
+
"description": "Inspect an exact media resource or traverse an album/show. Use get-playlist for playlist contents.",
|
|
5490
|
+
"directionality": "in",
|
|
5491
|
+
"schema": {
|
|
5492
|
+
"description": "Inspect an exact media resource or traverse an album/show. Use get-playlist for playlist contents.",
|
|
5493
|
+
"type": "object",
|
|
5494
|
+
"properties": {
|
|
5495
|
+
"mediaId": {
|
|
5496
|
+
"title": "MediaId",
|
|
5497
|
+
"type": "string",
|
|
5498
|
+
"minLength": 1,
|
|
5499
|
+
"example": "portos-media://portpowered.com/spotify/audio/track/Ab123",
|
|
5500
|
+
"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_-]+)$",
|
|
5501
|
+
"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"
|
|
5502
|
+
},
|
|
5503
|
+
"maxResults": {
|
|
5504
|
+
"type": "integer",
|
|
5505
|
+
"minimum": 1,
|
|
5506
|
+
"maximum": 50,
|
|
5507
|
+
"default": 20
|
|
5508
|
+
},
|
|
5509
|
+
"nextToken": {
|
|
5510
|
+
"type": "string",
|
|
5511
|
+
"minLength": 1,
|
|
5512
|
+
"description": "Opaque continuation for the same resource."
|
|
5513
|
+
}
|
|
5514
|
+
},
|
|
5515
|
+
"required": [
|
|
5516
|
+
"mediaId"
|
|
5517
|
+
],
|
|
5518
|
+
"additionalProperties": false
|
|
5519
|
+
}
|
|
5520
|
+
},
|
|
5521
|
+
{
|
|
5522
|
+
"name": "media-details",
|
|
5523
|
+
"description": "Exact media resource details and a bounded page of its children.",
|
|
5524
|
+
"directionality": "out",
|
|
5525
|
+
"schema": {
|
|
5526
|
+
"description": "Exact media resource details and a bounded page of its children.",
|
|
5527
|
+
"type": "object",
|
|
5528
|
+
"properties": {
|
|
5529
|
+
"mediaId": {
|
|
5530
|
+
"title": "MediaId",
|
|
5531
|
+
"type": "string",
|
|
5532
|
+
"minLength": 1,
|
|
5533
|
+
"example": "portos-media://portpowered.com/spotify/audio/track/Ab123",
|
|
5534
|
+
"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_-]+)$",
|
|
5535
|
+
"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"
|
|
5536
|
+
},
|
|
5537
|
+
"name": {
|
|
5538
|
+
"type": "string"
|
|
5539
|
+
},
|
|
5540
|
+
"resourceKind": {
|
|
5541
|
+
"type": "string",
|
|
5542
|
+
"description": "Provider resource kind from the media URI."
|
|
5543
|
+
},
|
|
5544
|
+
"tracks": {
|
|
5545
|
+
"type": "array",
|
|
5546
|
+
"items": {
|
|
5547
|
+
"type": "object",
|
|
5548
|
+
"description": "Track information",
|
|
5549
|
+
"properties": {
|
|
5550
|
+
"id": {
|
|
5551
|
+
"type": "string",
|
|
5552
|
+
"description": "Unique identifier for the track",
|
|
5553
|
+
"minLength": 1
|
|
5554
|
+
},
|
|
5555
|
+
"name": {
|
|
5556
|
+
"type": "string",
|
|
5557
|
+
"description": "Track name",
|
|
5558
|
+
"minLength": 1
|
|
5559
|
+
},
|
|
5560
|
+
"artists": {
|
|
5561
|
+
"type": "array",
|
|
5562
|
+
"items": {
|
|
5563
|
+
"type": "object",
|
|
5564
|
+
"description": "Artist information",
|
|
5565
|
+
"properties": {
|
|
5566
|
+
"id": {
|
|
5567
|
+
"type": "string",
|
|
5568
|
+
"description": "Unique identifier for the artist",
|
|
5569
|
+
"minLength": 1
|
|
5570
|
+
},
|
|
5571
|
+
"name": {
|
|
5572
|
+
"type": "string",
|
|
5573
|
+
"description": "Artist name",
|
|
5574
|
+
"minLength": 1
|
|
5575
|
+
}
|
|
5576
|
+
},
|
|
5577
|
+
"required": [
|
|
5578
|
+
"id",
|
|
5579
|
+
"name"
|
|
5580
|
+
],
|
|
5581
|
+
"additionalProperties": false,
|
|
5582
|
+
"title": "Artist"
|
|
5583
|
+
},
|
|
5584
|
+
"description": "Track artists"
|
|
5585
|
+
},
|
|
5586
|
+
"album": {
|
|
5587
|
+
"description": "Track album",
|
|
5588
|
+
"type": "object",
|
|
5589
|
+
"properties": {
|
|
5590
|
+
"id": {
|
|
5591
|
+
"type": "string",
|
|
5592
|
+
"description": "Unique identifier for the album",
|
|
5593
|
+
"minLength": 1
|
|
5594
|
+
},
|
|
5595
|
+
"name": {
|
|
5596
|
+
"type": "string",
|
|
5597
|
+
"description": "Album name",
|
|
5598
|
+
"minLength": 1
|
|
5599
|
+
},
|
|
5600
|
+
"artists": {
|
|
5601
|
+
"type": "array",
|
|
5602
|
+
"items": {
|
|
5603
|
+
"$ref": "#/properties/tracks/items/properties/artists/items"
|
|
5604
|
+
},
|
|
5605
|
+
"description": "Album artists"
|
|
5606
|
+
}
|
|
5607
|
+
},
|
|
5608
|
+
"required": [
|
|
5609
|
+
"id",
|
|
5610
|
+
"name",
|
|
5611
|
+
"artists"
|
|
5612
|
+
],
|
|
5613
|
+
"additionalProperties": false,
|
|
5614
|
+
"title": "Album"
|
|
5615
|
+
}
|
|
5616
|
+
},
|
|
5617
|
+
"required": [
|
|
5618
|
+
"id",
|
|
5619
|
+
"name",
|
|
5620
|
+
"artists",
|
|
5621
|
+
"album"
|
|
5622
|
+
],
|
|
5623
|
+
"additionalProperties": false,
|
|
5624
|
+
"title": "Track"
|
|
5625
|
+
}
|
|
5626
|
+
},
|
|
5627
|
+
"episodes": {
|
|
5628
|
+
"type": "array",
|
|
5629
|
+
"items": {
|
|
5630
|
+
"type": "object",
|
|
5631
|
+
"description": "Provider-qualified podcast episode with selection metadata.",
|
|
5632
|
+
"properties": {
|
|
5633
|
+
"id": {
|
|
5634
|
+
"$ref": "#/properties/mediaId"
|
|
5635
|
+
},
|
|
5636
|
+
"name": {
|
|
5637
|
+
"type": "string",
|
|
5638
|
+
"minLength": 1
|
|
5639
|
+
},
|
|
5640
|
+
"showId": {
|
|
5641
|
+
"$ref": "#/properties/mediaId"
|
|
5642
|
+
},
|
|
5643
|
+
"releaseDate": {
|
|
5644
|
+
"type": "string",
|
|
5645
|
+
"description": "Provider release date; precision can be year, month or day."
|
|
5646
|
+
},
|
|
5647
|
+
"releaseDatePrecision": {
|
|
5648
|
+
"type": "string",
|
|
5649
|
+
"description": "Provider date precision."
|
|
5650
|
+
}
|
|
5651
|
+
},
|
|
5652
|
+
"required": [
|
|
5653
|
+
"id",
|
|
5654
|
+
"name"
|
|
5655
|
+
],
|
|
5656
|
+
"additionalProperties": false,
|
|
5657
|
+
"title": "PodcastEpisode"
|
|
5658
|
+
}
|
|
5659
|
+
},
|
|
5660
|
+
"nextToken": {
|
|
5661
|
+
"type": "string",
|
|
5662
|
+
"minLength": 1
|
|
5663
|
+
}
|
|
5664
|
+
},
|
|
5665
|
+
"required": [
|
|
5666
|
+
"mediaId",
|
|
5667
|
+
"resourceKind"
|
|
5668
|
+
],
|
|
5669
|
+
"additionalProperties": false
|
|
5670
|
+
}
|
|
5671
|
+
},
|
|
5003
5672
|
{
|
|
5004
5673
|
"name": "search-media",
|
|
5005
5674
|
"description": null,
|
|
@@ -5013,7 +5682,7 @@
|
|
|
5013
5682
|
},
|
|
5014
5683
|
"type": {
|
|
5015
5684
|
"type": "string",
|
|
5016
|
-
"description": "
|
|
5685
|
+
"description": "Resource kind: track, album, artist, playlist, show or episode when advertised. Defaults to track",
|
|
5017
5686
|
"default": "track"
|
|
5018
5687
|
},
|
|
5019
5688
|
"album": {
|
|
@@ -5027,6 +5696,18 @@
|
|
|
5027
5696
|
"year": {
|
|
5028
5697
|
"type": "string",
|
|
5029
5698
|
"description": "Search by year, can only be used when searching albums, years, and tracks. You can pass a range like 1990-2000"
|
|
5699
|
+
},
|
|
5700
|
+
"maxResults": {
|
|
5701
|
+
"type": "integer",
|
|
5702
|
+
"minimum": 1,
|
|
5703
|
+
"maximum": 50,
|
|
5704
|
+
"default": 20,
|
|
5705
|
+
"description": "Maximum results on one page."
|
|
5706
|
+
},
|
|
5707
|
+
"nextToken": {
|
|
5708
|
+
"type": "string",
|
|
5709
|
+
"minLength": 1,
|
|
5710
|
+
"description": "Copy the opaque continuation from the previous result with the same query and filters."
|
|
5030
5711
|
}
|
|
5031
5712
|
},
|
|
5032
5713
|
"required": [
|
|
@@ -6455,7 +7136,9 @@
|
|
|
6455
7136
|
"title": "MediaId",
|
|
6456
7137
|
"type": "string",
|
|
6457
7138
|
"minLength": 1,
|
|
6458
|
-
"
|
|
7139
|
+
"example": "portos-media://portpowered.com/spotify/audio/track/Ab123",
|
|
7140
|
+
"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_-]+)$",
|
|
7141
|
+
"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"
|
|
6459
7142
|
},
|
|
6460
7143
|
"startedAt": {
|
|
6461
7144
|
"type": "string",
|
|
@@ -9066,11 +9749,17 @@
|
|
|
9066
9749
|
"type": {
|
|
9067
9750
|
"type": "string",
|
|
9068
9751
|
"enum": [
|
|
9069
|
-
"SSML"
|
|
9752
|
+
"SSML",
|
|
9753
|
+
"CANNED_TTS"
|
|
9070
9754
|
]
|
|
9071
9755
|
},
|
|
9072
9756
|
"ssml": {
|
|
9073
9757
|
"type": "string"
|
|
9758
|
+
},
|
|
9759
|
+
"cannedTtsStringId": {
|
|
9760
|
+
"type": "string",
|
|
9761
|
+
"minLength": 1,
|
|
9762
|
+
"description": "Provider-defined canned speech identifier; supported only by integrations advertising canned speech."
|
|
9074
9763
|
}
|
|
9075
9764
|
},
|
|
9076
9765
|
"title": "SpeechInput"
|
|
@@ -9081,7 +9770,24 @@
|
|
|
9081
9770
|
}
|
|
9082
9771
|
],
|
|
9083
9772
|
"attributes": [],
|
|
9084
|
-
"configuration":
|
|
9773
|
+
"configuration": {
|
|
9774
|
+
"type": "object",
|
|
9775
|
+
"properties": {
|
|
9776
|
+
"supportedInputTypes": {
|
|
9777
|
+
"type": "array",
|
|
9778
|
+
"uniqueItems": true,
|
|
9779
|
+
"items": {
|
|
9780
|
+
"type": "string",
|
|
9781
|
+
"enum": [
|
|
9782
|
+
"SSML",
|
|
9783
|
+
"CANNED_TTS"
|
|
9784
|
+
]
|
|
9785
|
+
}
|
|
9786
|
+
}
|
|
9787
|
+
},
|
|
9788
|
+
"additionalProperties": false,
|
|
9789
|
+
"description": "Speech synthesizers accept a request to speak. Use them to send spoken output to a connected device or integration."
|
|
9790
|
+
}
|
|
9085
9791
|
},
|
|
9086
9792
|
{
|
|
9087
9793
|
"name": "temperature-sensor",
|