diff --git a/.vscode/csharp.code-snippets b/.vscode/csharp.code-snippets index 7eeb64f1..fa48d127 100644 --- a/.vscode/csharp.code-snippets +++ b/.vscode/csharp.code-snippets @@ -31,5 +31,21 @@ "}" ], "description": "Creates a new request" + }, + "reqcomment": { + "scope": "csharp", + "prefix": "reqcomment", + "body": "The request-model which contains required and optional parameters.", + "description": "Creates a new request comment for XAML" + }, + "remark": { + "scope": "csharp", + "prefix": "remark", + "body": [ + "", + "/// $1", + "/// " + ], + "description": "Creates a new request comment for XAML" } } diff --git a/SpotifyAPI.Web/Clients/Interfaces/IAlbumsClient.cs b/SpotifyAPI.Web/Clients/Interfaces/IAlbumsClient.cs index 7946535c..b8c9d9a8 100644 --- a/SpotifyAPI.Web/Clients/Interfaces/IAlbumsClient.cs +++ b/SpotifyAPI.Web/Clients/Interfaces/IAlbumsClient.cs @@ -4,15 +4,60 @@ namespace SpotifyAPI.Web { public interface IAlbumsClient { + /// + /// Get Spotify catalog information for multiple albums identified by their Spotify IDs. + /// + /// The request-model which contains required and optional parameters + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-multiple-albums + /// + /// Task GetSeveral(AlbumsRequest request); + /// + /// Get Spotify catalog information for a single album. + /// + /// The Spotify ID of the album. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-an-album + /// + /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1716")] Task Get(string albumId); + /// + /// Get Spotify catalog information for a single album. + /// + /// The Spotify ID of the album. + /// The request-model which contains required and optional parameters + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-an-album + /// + /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1716")] Task Get(string albumId, AlbumRequest request); + /// + /// Get Spotify catalog information about an album’s tracks. + /// Optional parameters can be used to limit the number of tracks returned. + /// + /// The Spotify ID of the album. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-an-albums-tracks + /// + /// Task> GetTracks(string albumId); + + /// + /// Get Spotify catalog information about an album’s tracks. + /// Optional parameters can be used to limit the number of tracks returned. + /// + /// The Spotify ID of the album. + /// The request-model which contains required and optional parameters + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-an-albums-tracks + /// + /// Task> GetTracks(string albumId, AlbumTracksRequest request); } } diff --git a/SpotifyAPI.Web/Clients/Interfaces/IArtistsClient.cs b/SpotifyAPI.Web/Clients/Interfaces/IArtistsClient.cs index 423eede6..53032cb7 100644 --- a/SpotifyAPI.Web/Clients/Interfaces/IArtistsClient.cs +++ b/SpotifyAPI.Web/Clients/Interfaces/IArtistsClient.cs @@ -4,16 +4,72 @@ namespace SpotifyAPI.Web { public interface IArtistsClient { + /// + /// Get Spotify catalog information for several artists based on their Spotify IDs. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-multiple-artists + /// + /// The request-model which contains required and optional parameters + /// Task GetSeveral(ArtistsRequest request); + /// + /// Get Spotify catalog information for a single artist identified by their unique Spotify ID. + /// + /// The Spotify ID of the artist. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-an-artist + /// + /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1716")] Task Get(string artistId); + /// + /// Get Spotify catalog information about an artist’s albums. + /// Optional parameters can be specified in the query string to filter and sort the response. + /// + /// The Spotify ID for the artist. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-an-artists-albums + /// + /// Task> GetAlbums(string artistId); + + /// + /// Get Spotify catalog information about an artist’s albums. + /// Optional parameters can be specified in the query string to filter and sort the response. + /// + /// The Spotify ID for the artist. + /// The request-model which contains required and optional parameters + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-an-artists-albums + /// + /// Task> GetAlbums(string artistId, ArtistsAlbumsRequest request); + + /// + /// Get Spotify catalog information about an artist’s top tracks by country. + /// + /// The Spotify ID for the artist + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-an-artists-top-tracks + /// + /// Task GetTopTracks(string artistId, ArtistsTopTracksRequest request); + + /// + /// Get Spotify catalog information about artists similar to a given artist. + /// Similarity is based on analysis of the Spotify community’s listening history. + /// + /// The Spotify ID for the artist + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-an-artists-related-artists + /// + /// Task GetRelatedArtists(string artistId); } } diff --git a/SpotifyAPI.Web/Clients/Interfaces/IBrowseClient.cs b/SpotifyAPI.Web/Clients/Interfaces/IBrowseClient.cs index 521d6f26..955437c7 100644 --- a/SpotifyAPI.Web/Clients/Interfaces/IBrowseClient.cs +++ b/SpotifyAPI.Web/Clients/Interfaces/IBrowseClient.cs @@ -4,22 +4,124 @@ namespace SpotifyAPI.Web { public interface IBrowseClient { + /// + /// Get a list of categories used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab). + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-categories + /// + /// Task GetCategories(); + + /// + /// Get a list of categories used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab). + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-categories + /// + /// Task GetCategories(CategoriesRequest request); + /// + /// Get a single category used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab). + /// + /// The Spotify category ID for the category. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-a-category + /// + /// Task GetCategory(string categoryId); + + /// + /// Get a single category used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab). + /// + /// The Spotify category ID for the category. + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-a-category + /// + /// Task GetCategory(string categoryId, CategoryRequest request); + /// + /// Get a list of Spotify playlists tagged with a particular category. + /// + /// The Spotify category ID for the category. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-a-categories-playlists + /// + /// Task GetCategoryPlaylists(string categoryId); + + /// + /// Get a list of Spotify playlists tagged with a particular category. + /// + /// The Spotify category ID for the category. + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-a-categories-playlists + /// + /// Task GetCategoryPlaylists(string categoryId, CategoriesPlaylistsRequest request); + /// + /// Recommendations are generated based on the available information for a given seed entity and matched against + /// similar artists and tracks. If there is sufficient information about the provided seeds, + /// a list of tracks will be returned together with pool size details. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-recommendations + /// + /// Task GetRecommendations(RecommendationsRequest request); + + /// + /// Retrieve a list of available genres seed parameter values for recommendations. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-recommendation-genres + /// + /// Task GetRecommendationGenres(); + /// + /// Get a list of new album releases featured in Spotify (shown, for example, on a Spotify player’s “Browse” tab). + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-new-releases + /// + /// Task GetNewReleases(); + + /// + /// Get a list of new album releases featured in Spotify (shown, for example, on a Spotify player’s “Browse” tab). + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-new-releases + /// + /// Task GetNewReleases(NewReleasesRequest request); + /// + /// Get a list of Spotify featured playlists (shown, for example, on a Spotify player’s ‘Browse’ tab). + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-featured-playlists + /// + /// Task GetFeaturedPlaylists(); + + /// + /// Get a list of Spotify featured playlists (shown, for example, on a Spotify player’s ‘Browse’ tab). + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-featured-playlists + /// + /// Task GetFeaturedPlaylists(FeaturedPlaylistsRequest request); } } diff --git a/SpotifyAPI.Web/Clients/Interfaces/IEpisodesClient.cs b/SpotifyAPI.Web/Clients/Interfaces/IEpisodesClient.cs index b7acb70a..0d720ed3 100644 --- a/SpotifyAPI.Web/Clients/Interfaces/IEpisodesClient.cs +++ b/SpotifyAPI.Web/Clients/Interfaces/IEpisodesClient.cs @@ -4,12 +4,37 @@ namespace SpotifyAPI.Web { public interface IEpisodesClient { + /// + /// Get Spotify catalog information for a single episode identified by its unique Spotify ID. + /// + /// The Spotify ID for the episode. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-an-episode + /// + /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1716")] Task Get(string episodeId); + /// + /// Get Spotify catalog information for a single episode identified by its unique Spotify ID. + /// + /// The Spotify ID for the episode. + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-an-episode + /// + /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1716")] Task Get(string episodeId, EpisodeRequest request); + /// + /// Get Spotify catalog information for several episodes based on their Spotify IDs. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-multiple-episodes + /// + /// Task GetSeveral(EpisodesRequest request); } } diff --git a/SpotifyAPI.Web/Clients/Interfaces/IFollowClient.cs b/SpotifyAPI.Web/Clients/Interfaces/IFollowClient.cs index a4cccbdc..8a80764f 100644 --- a/SpotifyAPI.Web/Clients/Interfaces/IFollowClient.cs +++ b/SpotifyAPI.Web/Clients/Interfaces/IFollowClient.cs @@ -5,20 +5,103 @@ namespace SpotifyAPI.Web { public interface IFollowClient { + /// + /// Check to see if the current user is following one or more artists or other Spotify users. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-check-current-user-follows + /// + /// Task> CheckCurrentUser(FollowCheckCurrentUserRequest request); + /// + /// Check to see if one or more Spotify users are following a specified playlist. + /// + /// The Spotify ID of the playlist. + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-check-if-user-follows-playlist + /// + /// Task> CheckPlaylist(string playlistId, FollowCheckPlaylistRequest request); + /// + /// Add the current user as a follower of one or more artists or other Spotify users. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-follow-artists-users + /// + /// Task Follow(FollowRequest request); + /// + /// Add the current user as a follower of a playlist. + /// + /// + /// The Spotify ID of the playlist. + /// Any playlist can be followed, regardless of its public/private status, + /// as long as you know its playlist ID. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-follow-playlist + /// + /// Task FollowPlaylist(string playlistId); + + /// + /// Add the current user as a follower of a playlist. + /// + /// + /// The Spotify ID of the playlist. + /// Any playlist can be followed, regardless of its public/private status, + /// as long as you know its playlist ID. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-follow-playlist + /// + /// Task FollowPlaylist(string playlistId, FollowPlaylistRequest request); + /// + /// Get the current user’s followed artists. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-followed + /// + /// Task OfCurrentUser(); + + /// + /// Get the current user’s followed artists. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-followed + /// + /// Task OfCurrentUser(FollowOfCurrentUserRequest request); + /// + /// Remove the current user as a follower of one or more artists or other Spotify users. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-unfollow-artists-users + /// + /// Task Unfollow(UnfollowRequest request); + /// + /// Remove the current user as a follower of a playlist. + /// + /// The Spotify ID of the playlist that is to be no longer followed. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-unfollow-playlist + /// Task UnfollowPlaylist(string playlistId); } } diff --git a/SpotifyAPI.Web/Clients/Interfaces/ILibraryClient.cs b/SpotifyAPI.Web/Clients/Interfaces/ILibraryClient.cs index ee4a4811..9ca871ee 100644 --- a/SpotifyAPI.Web/Clients/Interfaces/ILibraryClient.cs +++ b/SpotifyAPI.Web/Clients/Interfaces/ILibraryClient.cs @@ -5,23 +5,153 @@ namespace SpotifyAPI.Web { public interface ILibraryClient { + /// + /// Remove one or more albums from the current user’s ‘Your Music’ library. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-remove-albums-user + /// + /// Task RemoveAlbums(LibraryRemoveAlbumsRequest request); + + /// + /// Remove one or more tracks from the current user’s ‘Your Music’ library. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-remove-tracks-user + /// + /// Task RemoveTracks(LibraryRemoveTracksRequest request); + + /// + /// Delete one or more shows from current Spotify user’s library. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-remove-shows-user + /// + /// Task RemoveShows(LibraryRemoveShowsRequest request); + /// + /// Save one or more tracks to the current user’s ‘Your Music’ library. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-save-tracks-user + /// + /// Task SaveTracks(LibrarySaveTracksRequest request); + + /// + /// Save one or more albums to the current user’s ‘Your Music’ library. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-save-albums-user + /// + /// Task SaveAlbums(LibrarySaveAlbumsRequest request); + + /// + /// Save one or more shows to current Spotify user’s library. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-save-shows-user + /// + /// Task SaveShows(LibrarySaveShowsRequest request); + /// + /// Check if one or more tracks is already saved in the current Spotify user’s ‘Your Music’ library. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-check-users-saved-tracks + /// + /// Task> CheckTracks(LibraryCheckTracksRequest request); + + /// + /// Check if one or more albums is already saved in the current Spotify user’s ‘Your Music’ library. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-check-users-saved-albums + /// + /// Task> CheckAlbums(LibraryCheckAlbumsRequest request); + + /// + /// Check if one or more shows is already saved in the current Spotify user’s library. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-check-users-saved-shows + /// + /// Task> CheckShows(LibraryCheckShowsRequest request); + /// + /// Get a list of the songs saved in the current Spotify user’s ‘Your Music’ library. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-users-saved-tracks + /// + /// Task> GetTracks(); + + /// + /// Get a list of the songs saved in the current Spotify user’s ‘Your Music’ library. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-users-saved-tracks + /// + /// Task> GetTracks(LibraryTracksRequest request); + + /// + /// Get a list of the albums saved in the current Spotify user’s ‘Your Music’ library. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-users-saved-albums + /// + /// Task> GetAlbums(); + + /// + /// Get a list of the albums saved in the current Spotify user’s ‘Your Music’ library. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-users-saved-albums + /// + /// Task> GetAlbums(LibraryAlbumsRequest request); + + /// + /// Get a list of shows saved in the current Spotify user’s library. + /// Optional parameters can be used to limit the number of shows returned. + /// + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-users-saved-shows + /// + /// Task> GetShows(); + + /// + /// Get a list of shows saved in the current Spotify user’s library. + /// Optional parameters can be used to limit the number of shows returned. + /// + /// The request-model which contains required and optional parameters. + /// + /// https://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-users-saved-shows + /// + /// Task> GetShows(LibraryShowsRequest request); } } diff --git a/SpotifyAPI.Web/Models/Request/AlbumRequest.cs b/SpotifyAPI.Web/Models/Request/AlbumRequest.cs index 0154d447..db30953c 100644 --- a/SpotifyAPI.Web/Models/Request/AlbumRequest.cs +++ b/SpotifyAPI.Web/Models/Request/AlbumRequest.cs @@ -2,6 +2,10 @@ namespace SpotifyAPI.Web { public class AlbumRequest : RequestParams { + /// + /// The market you’d like to request. Synonym for country. + /// + /// [QueryParam("market")] public string? Market { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/AlbumTracksRequest.cs b/SpotifyAPI.Web/Models/Request/AlbumTracksRequest.cs index 6e3d443a..00a165ee 100644 --- a/SpotifyAPI.Web/Models/Request/AlbumTracksRequest.cs +++ b/SpotifyAPI.Web/Models/Request/AlbumTracksRequest.cs @@ -2,12 +2,26 @@ namespace SpotifyAPI.Web { public class AlbumTracksRequest : RequestParams { + /// + /// An ISO 3166-1 alpha-2 country code or the string from_token. + /// Provide this parameter if you want to apply Track Relinking. + /// + /// [QueryParam("market")] public string? Market { get; set; } + /// + /// The maximum number of tracks to return. Default: 20. Minimum: 1. Maximum: 50. + /// + /// [QueryParam("limit")] public int? Limit { get; set; } + /// + /// The index of the first track to return. Default: 0 (the first object). + /// Use with limit to get the next set of tracks. + /// + /// [QueryParam("offset")] public int? Offset { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/AlbumsRequest.cs b/SpotifyAPI.Web/Models/Request/AlbumsRequest.cs index f36f5403..e858893d 100644 --- a/SpotifyAPI.Web/Models/Request/AlbumsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/AlbumsRequest.cs @@ -4,6 +4,10 @@ namespace SpotifyAPI.Web { public class AlbumsRequest : RequestParams { + /// + /// AlbumsRequest + /// + /// A comma-separated list of the Spotify IDs for the albums. Maximum: 20 IDs. public AlbumsRequest(IList ids) { Ensure.ArgumentNotNullOrEmptyList(ids, nameof(ids)); @@ -11,9 +15,18 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// A comma-separated list of the Spotify IDs for the albums. Maximum: 20 IDs. + /// + /// [QueryParam("ids")] public IList Ids { get; } + /// + /// An ISO 3166-1 alpha-2 country code or the string from_token. + /// Provide this parameter if you want to apply Track Relinking. + /// + /// [QueryParam("market")] public string? Market { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/ArtistsAlbumsRequest.cs b/SpotifyAPI.Web/Models/Request/ArtistsAlbumsRequest.cs index 2ae8a268..36cd2ee6 100644 --- a/SpotifyAPI.Web/Models/Request/ArtistsAlbumsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/ArtistsAlbumsRequest.cs @@ -4,15 +4,36 @@ namespace SpotifyAPI.Web { public class ArtistsAlbumsRequest : RequestParams { + /// + /// A comma-separated list of keywords that will be used to filter the response. + /// If not supplied, all album types will be returned. + /// + /// [QueryParam("include_groups")] public IncludeGroups? IncludeGroupsParam { get; set; } + /// + /// Synonym for country. An ISO 3166-1 alpha-2 country code or the string from_token. + /// Supply this parameter to limit the response to one particular geographical market. + /// For example, for albums available in Sweden: market=SE. + /// If not given, results will be returned for all markets and you are likely to get duplicate results per album, + /// one for each market in which the album is available! + /// + /// [QueryParam("market")] public string? Market { get; set; } + /// + /// The number of album objects to return. Default: 20. Minimum: 1. Maximum: 50. For example: limit=2 + /// + /// [QueryParam("limit")] public int? Limit { get; set; } + /// + /// The index of the first album to return. Default: 0 (i.e., the first album). Use with limit to get the next set of albums. + /// + /// [QueryParam("offset")] public int? Offset { get; set; } diff --git a/SpotifyAPI.Web/Models/Request/ArtistsRequest.cs b/SpotifyAPI.Web/Models/Request/ArtistsRequest.cs index 7342f766..a5305e63 100644 --- a/SpotifyAPI.Web/Models/Request/ArtistsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/ArtistsRequest.cs @@ -4,6 +4,10 @@ namespace SpotifyAPI.Web { public class ArtistsRequest : RequestParams { + /// + /// ArtistsRequest + /// + /// A comma-separated list of the Spotify IDs for the artists. Maximum: 50 IDs. public ArtistsRequest(IList ids) { Ensure.ArgumentNotNullOrEmptyList(ids, nameof(ids)); @@ -11,6 +15,10 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// A comma-separated list of the Spotify IDs for the artists. Maximum: 50 IDs. + /// + /// [QueryParam("ids")] public IList Ids { get; } } diff --git a/SpotifyAPI.Web/Models/Request/ArtistsTopTracksRequest.cs b/SpotifyAPI.Web/Models/Request/ArtistsTopTracksRequest.cs index 9aaff456..26cecbc5 100644 --- a/SpotifyAPI.Web/Models/Request/ArtistsTopTracksRequest.cs +++ b/SpotifyAPI.Web/Models/Request/ArtistsTopTracksRequest.cs @@ -2,6 +2,10 @@ namespace SpotifyAPI.Web { public class ArtistsTopTracksRequest : RequestParams { + /// + /// An ISO 3166-1 alpha-2 country code or the string from_token. Synonym for country. + /// + /// public ArtistsTopTracksRequest(string market) { Ensure.ArgumentNotNullOrEmptyString(market, nameof(market)); @@ -9,6 +13,10 @@ namespace SpotifyAPI.Web Market = market; } + /// + /// An ISO 3166-1 alpha-2 country code or the string from_token. Synonym for country. + /// + /// [QueryParam("market")] public string Market { get; } } diff --git a/SpotifyAPI.Web/Models/Request/CategoriesRequest.cs b/SpotifyAPI.Web/Models/Request/CategoriesRequest.cs index 8dd92e1c..5b0a5b86 100644 --- a/SpotifyAPI.Web/Models/Request/CategoriesRequest.cs +++ b/SpotifyAPI.Web/Models/Request/CategoriesRequest.cs @@ -2,15 +2,39 @@ namespace SpotifyAPI.Web { public class CategoriesRequest : RequestParams { + /// + /// A country: an ISO 3166-1 alpha-2 country code. + /// Provide this parameter if you want to narrow the list of returned categories to those relevant to a particular country. + /// If omitted, the returned items will be globally relevant. + /// + /// [QueryParam("country")] public string? Country { get; set; } + /// + /// The desired language, consisting of an ISO 639-1 language code and an ISO 3166-1 alpha-2 country code, + /// joined by an underscore. For example: es_MX, meaning “Spanish (Mexico)”. Provide this parameter if + /// you want the category metadata returned in a particular language. + /// Note that, if locale is not supplied, or if the specified language is not available, all strings will + /// be returned in the Spotify default language (American English). + /// The locale parameter, combined with the country parameter, may give odd results if not carefully matched. + /// For example country=SE&locale=de_DE will return a list of categories relevant to Sweden but as German language strings. + /// + /// [QueryParam("locale")] public string? Locale { get; set; } + /// + /// The maximum number of categories to return. Default: 20. Minimum: 1. Maximum: 50. + /// + /// [QueryParam("limit")] public int? Limit { get; set; } + /// + /// The index of the first item to return. Default: 0 (the first object). Use with limit to get the next set of categories. + /// + /// [QueryParam("offset")] public int? Offset { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/CategoryPlaylistsRequest.cs b/SpotifyAPI.Web/Models/Request/CategoryPlaylistsRequest.cs index 65ecb340..84e6b186 100644 --- a/SpotifyAPI.Web/Models/Request/CategoryPlaylistsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/CategoryPlaylistsRequest.cs @@ -2,12 +2,25 @@ namespace SpotifyAPI.Web { public class CategoriesPlaylistsRequest : RequestParams { + /// + /// A country: an ISO 3166-1 alpha-2 country code. + /// Provide this parameter to ensure that the category exists for a particular country. + /// + /// [QueryParam("country")] public string? Country { get; set; } + /// + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// + /// [QueryParam("limit")] public int? Limit { get; set; } + /// + /// The index of the first item to return. Default: 0 (the first object). Use with limit to get the next set of items. + /// + /// [QueryParam("offset")] public int? Offset { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/CategoryRequest.cs b/SpotifyAPI.Web/Models/Request/CategoryRequest.cs index 306a4976..9cf14c45 100644 --- a/SpotifyAPI.Web/Models/Request/CategoryRequest.cs +++ b/SpotifyAPI.Web/Models/Request/CategoryRequest.cs @@ -2,9 +2,22 @@ namespace SpotifyAPI.Web { public class CategoryRequest : RequestParams { + /// + /// A country: an ISO 3166-1 alpha-2 country code. + /// Provide this parameter to ensure that the category exists for a particular country. + /// + /// [QueryParam("country")] public string? Country { get; set; } + /// + /// The desired language, consisting of an ISO 639-1 language code and an ISO 3166-1 alpha-2 country code, + /// joined by an underscore. For example: es_MX, meaning "Spanish (Mexico)". + /// Provide this parameter if you want the category strings returned in a particular language. + /// Note that, if locale is not supplied, or if the specified language is not available, + /// the category strings returned will be in the Spotify default language (American English). + /// + /// [QueryParam("locale")] public string? Locale { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/EpisodeRequest.cs b/SpotifyAPI.Web/Models/Request/EpisodeRequest.cs index 28e034ee..2a456579 100644 --- a/SpotifyAPI.Web/Models/Request/EpisodeRequest.cs +++ b/SpotifyAPI.Web/Models/Request/EpisodeRequest.cs @@ -2,6 +2,15 @@ namespace SpotifyAPI.Web { public class EpisodeRequest : RequestParams { + /// + /// An ISO 3166-1 alpha-2 country code. If a country code is specified, + /// only shows and episodes that are available in that market will be returned. + /// If a valid user access token is specified in the request header, the country + /// associated with the user account will take priority over this parameter. + /// Note: If neither market or user country are provided, the content is considered unavailable for the client. + /// Users can view the country that is associated with their account in the account settings. + /// + /// [QueryParam("market")] public string? Market { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/EpisodesRequest.cs b/SpotifyAPI.Web/Models/Request/EpisodesRequest.cs index a9450b60..01b0c693 100644 --- a/SpotifyAPI.Web/Models/Request/EpisodesRequest.cs +++ b/SpotifyAPI.Web/Models/Request/EpisodesRequest.cs @@ -4,6 +4,10 @@ namespace SpotifyAPI.Web { public class EpisodesRequest : RequestParams { + /// + /// + /// + /// A comma-separated list of the Spotify IDs for the episodes. Maximum: 50 IDs. public EpisodesRequest(IList ids) { Ensure.ArgumentNotNullOrEmptyList(ids, nameof(ids)); @@ -11,9 +15,22 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// A comma-separated list of the Spotify IDs for the episodes. Maximum: 50 IDs. + /// + /// [QueryParam("ids")] public IList Ids { get; } + /// + /// An ISO 3166-1 alpha-2 country code. If a country code is specified, only shows and episodes + /// that are available in that market will be returned.If a valid user access token is specified + /// in the request header, the country associated with the user account will take priority over + /// this parameter.Note: If neither market or user country are provided, the content is considered + /// unavailable for the client.Users can view the country that is associated with their account + /// in the account settings. + /// + /// [QueryParam("market")] public string? Market { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/FeaturedPlaylistsRequest.cs b/SpotifyAPI.Web/Models/Request/FeaturedPlaylistsRequest.cs index 1cdb1fa7..6aeab6db 100644 --- a/SpotifyAPI.Web/Models/Request/FeaturedPlaylistsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/FeaturedPlaylistsRequest.cs @@ -4,18 +4,50 @@ namespace SpotifyAPI.Web { public class FeaturedPlaylistsRequest : RequestParams { + /// + /// A country: an ISO 3166-1 alpha-2 country code. + /// Provide this parameter if you want the list of returned items to be relevant to a particular country. + /// If omitted, the returned items will be relevant to all countries. + /// + /// [QueryParam("country")] public string? Country { get; set; } + /// + /// The desired language, consisting of a lowercase ISO 639-1 language code and an uppercase ISO 3166-1 + /// alpha-2 country code, joined by an underscore. For example: es_MX, meaning “Spanish (Mexico)”. Provide + /// this parameter if you want the results returned in a particular language (where available). Note that, + /// if locale is not supplied, or if the specified language is not available, all strings will be returned + /// in the Spotify default language (American English). The locale parameter, combined with the country + /// parameter, may give odd results if not carefully matched. + /// For example country=SE&locale=de_DE will return a list of categories relevant to Sweden but as German language strings. + /// + /// [QueryParam("locale")] public string? Locale { get; set; } + /// + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// + /// [QueryParam("limit")] public int? Limit { get; set; } + /// + /// The index of the first item to return. Default: 0 (the first object). Use with limit to get the next set of items. + /// + /// [QueryParam("offset")] public int? Offset { get; set; } + /// + /// A timestamp in ISO 8601 format: yyyy-MM-ddTHH:mm:ss. Use this parameter to specify the user’s + /// local time to get results tailored for that specific date and time in the day. If not provided, + /// the response defaults to the current UTC time. Example: “2014-10-23T09:00:00” for a user whose local + /// time is 9AM. If there were no featured playlists (or there is no data) at the specified time, + /// the response will revert to the current UTC time. + /// + /// public DateTime? Timestamp { get; set; } [QueryParam("timestamp")] diff --git a/SpotifyAPI.Web/Models/Request/FollowCheckCurrentUserRequest.cs b/SpotifyAPI.Web/Models/Request/FollowCheckCurrentUserRequest.cs index 81023c02..e9515fda 100644 --- a/SpotifyAPI.Web/Models/Request/FollowCheckCurrentUserRequest.cs +++ b/SpotifyAPI.Web/Models/Request/FollowCheckCurrentUserRequest.cs @@ -4,6 +4,15 @@ namespace SpotifyAPI.Web { public class FollowCheckCurrentUserRequest : RequestParams { + /// + /// + /// + /// The ID type: either artist or user. + /// + /// A list of the artist or the user Spotify IDs to check. + /// For example: ids=74ASZWbe4lXaubB36ztrGX,08td7MxkoHQkXnWAYD8d6Q. + /// A maximum of 50 IDs can be sent in one request. + /// public FollowCheckCurrentUserRequest(Type type, IList ids) { Ensure.ArgumentNotNull(type, nameof(type)); @@ -13,9 +22,19 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// The ID type: either artist or user. + /// + /// [QueryParam("type")] public Type TypeParam { get; } + /// + /// A list of the artist or the user Spotify IDs to check. + /// For example: ids=74ASZWbe4lXaubB36ztrGX,08td7MxkoHQkXnWAYD8d6Q. + /// A maximum of 50 IDs can be sent in one request. + /// + /// [QueryParam("ids")] public IList Ids { get; } diff --git a/SpotifyAPI.Web/Models/Request/FollowCheckPlaylistRequest.cs b/SpotifyAPI.Web/Models/Request/FollowCheckPlaylistRequest.cs index 2110b2ca..24d76db0 100644 --- a/SpotifyAPI.Web/Models/Request/FollowCheckPlaylistRequest.cs +++ b/SpotifyAPI.Web/Models/Request/FollowCheckPlaylistRequest.cs @@ -4,6 +4,14 @@ namespace SpotifyAPI.Web { public class FollowCheckPlaylistRequest : RequestParams { + /// + /// + /// + /// + /// A comma-separated list of Spotify User IDs ; + /// the ids of the users that you want to check to see if they follow the playlist. + /// Maximum: 5 ids. + /// public FollowCheckPlaylistRequest(IList ids) { Ensure.ArgumentNotNullOrEmptyList(ids, nameof(ids)); @@ -11,6 +19,12 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// A comma-separated list of Spotify User IDs ; + /// the ids of the users that you want to check to see if they follow the playlist. + /// Maximum: 5 ids. + /// + /// [QueryParam("ids")] public IList Ids { get; } } diff --git a/SpotifyAPI.Web/Models/Request/FollowGetCurrentUserRequest.cs b/SpotifyAPI.Web/Models/Request/FollowGetCurrentUserRequest.cs index d70eafbe..f58be579 100644 --- a/SpotifyAPI.Web/Models/Request/FollowGetCurrentUserRequest.cs +++ b/SpotifyAPI.Web/Models/Request/FollowGetCurrentUserRequest.cs @@ -2,17 +2,33 @@ namespace SpotifyAPI.Web { public class FollowOfCurrentUserRequest : RequestParams { + /// + /// The ID type: currently only artist is supported. + /// + /// public FollowOfCurrentUserRequest(Type type = Type.Artist) { TypeParam = type; } + /// + /// The ID type: currently only artist is supported. + /// + /// [QueryParam("type")] public Type TypeParam { get; set; } + /// + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// + /// [QueryParam("limit")] public int? Limit { get; set; } + /// + /// The last artist ID retrieved from the previous request. + /// + /// [QueryParam("after")] public string? After { get; set; } diff --git a/SpotifyAPI.Web/Models/Request/FollowPlaylistRequest.cs b/SpotifyAPI.Web/Models/Request/FollowPlaylistRequest.cs index 4e6cf2b1..714a3fc8 100644 --- a/SpotifyAPI.Web/Models/Request/FollowPlaylistRequest.cs +++ b/SpotifyAPI.Web/Models/Request/FollowPlaylistRequest.cs @@ -2,6 +2,12 @@ namespace SpotifyAPI.Web { public class FollowPlaylistRequest : RequestParams { + /// + /// Defaults to true. If true the playlist will be included in user’s public playlists, + /// if false it will remain private. To be able to follow playlists privately, + /// the user must have granted the playlist-modify-private scope. + /// + /// [BodyParam("public")] public bool? Public { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/FollowRequest.cs b/SpotifyAPI.Web/Models/Request/FollowRequest.cs index 8c2e0285..96b932b6 100644 --- a/SpotifyAPI.Web/Models/Request/FollowRequest.cs +++ b/SpotifyAPI.Web/Models/Request/FollowRequest.cs @@ -4,6 +4,15 @@ namespace SpotifyAPI.Web { public class FollowRequest : RequestParams { + /// + /// + /// + /// The ID type: either artist or user. + /// + /// A comma-separated list of the artist or the user Spotify IDs. + /// For example: ids=74ASZWbe4lXaubB36ztrGX,08td7MxkoHQkXnWAYD8d6Q. + /// A maximum of 50 IDs can be sent in one request. + /// public FollowRequest(Type type, IList ids) { Ensure.ArgumentNotNull(type, nameof(type)); @@ -13,9 +22,19 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// The ID type: either artist or user. + /// + /// [QueryParam("type")] public Type? TypeParam { get; set; } + /// + /// A comma-separated list of the artist or the user Spotify IDs. + /// For example: ids=74ASZWbe4lXaubB36ztrGX,08td7MxkoHQkXnWAYD8d6Q. + /// A maximum of 50 IDs can be sent in one request. + /// + /// [BodyParam("ids")] public IList Ids { get; } diff --git a/SpotifyAPI.Web/Models/Request/LibraryAlbumsRequest.cs b/SpotifyAPI.Web/Models/Request/LibraryAlbumsRequest.cs index 3e091d99..0b867f18 100644 --- a/SpotifyAPI.Web/Models/Request/LibraryAlbumsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/LibraryAlbumsRequest.cs @@ -2,12 +2,26 @@ namespace SpotifyAPI.Web { public class LibraryAlbumsRequest : RequestParams { + /// + /// The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50. + /// + /// [QueryParam("limit")] public int? Limit { get; set; } + /// + /// The index of the first object to return. Default: 0 (i.e., the first object). + /// Use with limit to get the next set of objects. + /// + /// [QueryParam("offset")] public int? Offset { get; set; } + /// + /// An ISO 3166-1 alpha-2 country code or the string from_token. Provide this parameter + /// if you want to apply Track Relinking. + /// + /// [QueryParam("market")] public string? Market { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/LibraryCheckAlbumsRequest.cs b/SpotifyAPI.Web/Models/Request/LibraryCheckAlbumsRequest.cs index 18aef33f..9ab3e546 100644 --- a/SpotifyAPI.Web/Models/Request/LibraryCheckAlbumsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/LibraryCheckAlbumsRequest.cs @@ -4,6 +4,12 @@ namespace SpotifyAPI.Web { public class LibraryCheckAlbumsRequest : RequestParams { + /// + /// + /// + /// + /// A comma-separated list of the Spotify IDs for the albums. Maximum: 50 IDs. + /// public LibraryCheckAlbumsRequest(IList ids) { Ensure.ArgumentNotNull(ids, nameof(ids)); @@ -11,7 +17,10 @@ namespace SpotifyAPI.Web Ids = ids; } - + /// + /// A comma-separated list of the Spotify IDs for the albums. Maximum: 50 IDs. + /// + /// [QueryParam("ids")] public IList Ids { get; } } diff --git a/SpotifyAPI.Web/Models/Request/LibraryCheckShowsRequest.cs b/SpotifyAPI.Web/Models/Request/LibraryCheckShowsRequest.cs index dd5e0cb4..dbe830c9 100644 --- a/SpotifyAPI.Web/Models/Request/LibraryCheckShowsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/LibraryCheckShowsRequest.cs @@ -4,6 +4,10 @@ namespace SpotifyAPI.Web { public class LibraryCheckShowsRequest : RequestParams { + /// + /// + /// + /// A comma-separated list of the Spotify IDs for the shows. Maximum: 50 ids. public LibraryCheckShowsRequest(IList ids) { Ensure.ArgumentNotNull(ids, nameof(ids)); @@ -11,6 +15,10 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// A comma-separated list of the Spotify IDs for the shows. Maximum: 50 ids. + /// + /// [QueryParam("ids")] public IList Ids { get; } } diff --git a/SpotifyAPI.Web/Models/Request/LibraryCheckTracksRequest.cs b/SpotifyAPI.Web/Models/Request/LibraryCheckTracksRequest.cs index d1c21901..2be35b4c 100644 --- a/SpotifyAPI.Web/Models/Request/LibraryCheckTracksRequest.cs +++ b/SpotifyAPI.Web/Models/Request/LibraryCheckTracksRequest.cs @@ -4,6 +4,12 @@ namespace SpotifyAPI.Web { public class LibraryCheckTracksRequest : RequestParams { + /// + /// + /// + /// + /// A comma-separated list of the Spotify IDs for the tracks. Maximum: 50 IDs. + /// public LibraryCheckTracksRequest(IList ids) { Ensure.ArgumentNotNull(ids, nameof(ids)); @@ -11,6 +17,10 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// A comma-separated list of the Spotify IDs for the tracks. Maximum: 50 IDs. + /// + /// [QueryParam("ids")] public IList Ids { get; } } diff --git a/SpotifyAPI.Web/Models/Request/LibraryRemoveAlbumsRequest.cs b/SpotifyAPI.Web/Models/Request/LibraryRemoveAlbumsRequest.cs index 04cfb2a1..4221cdd1 100644 --- a/SpotifyAPI.Web/Models/Request/LibraryRemoveAlbumsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/LibraryRemoveAlbumsRequest.cs @@ -4,6 +4,12 @@ namespace SpotifyAPI.Web { public class LibraryRemoveAlbumsRequest : RequestParams { + /// + /// + /// + /// A comma-separated list of the Spotify IDs. + /// For example: ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M. Maximum: 50 IDs. + /// public LibraryRemoveAlbumsRequest(IList ids) { Ensure.ArgumentNotNullOrEmptyList(ids, nameof(ids)); @@ -11,6 +17,11 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// A comma-separated list of the Spotify IDs. + /// For example: ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M. Maximum: 50 IDs. + /// + /// [BodyParam("ids")] public IList Ids { get; } } diff --git a/SpotifyAPI.Web/Models/Request/LibraryRemoveShowsRequest.cs b/SpotifyAPI.Web/Models/Request/LibraryRemoveShowsRequest.cs index be60abb4..05a462af 100644 --- a/SpotifyAPI.Web/Models/Request/LibraryRemoveShowsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/LibraryRemoveShowsRequest.cs @@ -4,6 +4,12 @@ namespace SpotifyAPI.Web { public class LibraryRemoveShowsRequest : RequestParams { + /// + /// + /// + /// + /// A comma-separated list of Spotify IDs for the shows to be deleted from the user’s library. + /// public LibraryRemoveShowsRequest(IList ids) { Ensure.ArgumentNotNullOrEmptyList(ids, nameof(ids)); @@ -11,6 +17,10 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// A comma-separated list of Spotify IDs for the shows to be deleted from the user’s library. + /// + /// [BodyParam("ids")] public IList Ids { get; } } diff --git a/SpotifyAPI.Web/Models/Request/LibraryRemoveTracksRequest.cs b/SpotifyAPI.Web/Models/Request/LibraryRemoveTracksRequest.cs index c2c044c7..e21d1900 100644 --- a/SpotifyAPI.Web/Models/Request/LibraryRemoveTracksRequest.cs +++ b/SpotifyAPI.Web/Models/Request/LibraryRemoveTracksRequest.cs @@ -4,6 +4,13 @@ namespace SpotifyAPI.Web { public class LibraryRemoveTracksRequest : RequestParams { + /// + /// + /// + /// + /// A comma-separated list of the Spotify IDs. For example: ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M. + /// Maximum: 50 IDs. + /// public LibraryRemoveTracksRequest(IList ids) { Ensure.ArgumentNotNullOrEmptyList(ids, nameof(ids)); @@ -11,6 +18,11 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// A comma-separated list of the Spotify IDs. For example: ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M. + /// Maximum: 50 IDs. + /// + /// [BodyParam("ids")] public IList Ids { get; } } diff --git a/SpotifyAPI.Web/Models/Request/LibrarySaveAlbumsRequest.cs b/SpotifyAPI.Web/Models/Request/LibrarySaveAlbumsRequest.cs index be999422..01261ced 100644 --- a/SpotifyAPI.Web/Models/Request/LibrarySaveAlbumsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/LibrarySaveAlbumsRequest.cs @@ -4,6 +4,13 @@ namespace SpotifyAPI.Web { public class LibrarySaveAlbumsRequest : RequestParams { + /// + + /// + /// + /// A comma-separated list of the Spotify IDs. + /// For example: ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M. Maximum: 50 IDs. + /// public LibrarySaveAlbumsRequest(IList ids) { Ensure.ArgumentNotNullOrEmptyList(ids, nameof(ids)); @@ -11,6 +18,11 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// A comma-separated list of the Spotify IDs. + /// For example: ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M. Maximum: 50 IDs. + /// + /// [QueryParam("ids")] public IList Ids { get; } } diff --git a/SpotifyAPI.Web/Models/Request/LibrarySaveShowsRequest.cs b/SpotifyAPI.Web/Models/Request/LibrarySaveShowsRequest.cs index 0f19c64d..6dd617b0 100644 --- a/SpotifyAPI.Web/Models/Request/LibrarySaveShowsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/LibrarySaveShowsRequest.cs @@ -4,6 +4,10 @@ namespace SpotifyAPI.Web { public class LibrarySaveShowsRequest : RequestParams { + /// + /// + /// + /// A comma-separated list of Spotify IDs for the shows to be added to the user’s library. public LibrarySaveShowsRequest(IList ids) { Ensure.ArgumentNotNullOrEmptyList(ids, nameof(ids)); @@ -11,6 +15,10 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// A comma-separated list of Spotify IDs for the shows to be added to the user’s library. + /// + /// [QueryParam("ids")] public IList Ids { get; } } diff --git a/SpotifyAPI.Web/Models/Request/LibrarySaveTracksRequest.cs b/SpotifyAPI.Web/Models/Request/LibrarySaveTracksRequest.cs index 54589e61..1991de17 100644 --- a/SpotifyAPI.Web/Models/Request/LibrarySaveTracksRequest.cs +++ b/SpotifyAPI.Web/Models/Request/LibrarySaveTracksRequest.cs @@ -4,6 +4,13 @@ namespace SpotifyAPI.Web { public class LibrarySaveTracksRequest : RequestParams { + /// + /// + /// + /// + /// A comma-separated list of the Spotify IDs. + /// For example: ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M. Maximum: 50 IDs. + /// public LibrarySaveTracksRequest(IList ids) { Ensure.ArgumentNotNullOrEmptyList(ids, nameof(ids)); @@ -11,6 +18,11 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// A comma-separated list of the Spotify IDs. + /// For example: ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M. Maximum: 50 IDs. + /// + /// [QueryParam("ids")] public IList Ids { get; } } diff --git a/SpotifyAPI.Web/Models/Request/LibraryShowsRequest.cs b/SpotifyAPI.Web/Models/Request/LibraryShowsRequest.cs index c59c309e..0105a5b8 100644 --- a/SpotifyAPI.Web/Models/Request/LibraryShowsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/LibraryShowsRequest.cs @@ -2,14 +2,20 @@ namespace SpotifyAPI.Web { public class LibraryShowsRequest : RequestParams { + /// + /// The maximum number of shows to return. Default: 20. Minimum: 1. Maximum: 50 + /// + /// [QueryParam("limit")] public int? Limit { get; set; } + /// + /// The index of the first show to return. Default: 0 (the first object). + /// Use with limit to get the next set of shows. + /// + /// [QueryParam("offset")] public int? Offset { get; set; } - - [QueryParam("market")] - public string? Market { get; set; } } } diff --git a/SpotifyAPI.Web/Models/Request/LibraryTracksRequest.cs b/SpotifyAPI.Web/Models/Request/LibraryTracksRequest.cs index 04016a52..3256b051 100644 --- a/SpotifyAPI.Web/Models/Request/LibraryTracksRequest.cs +++ b/SpotifyAPI.Web/Models/Request/LibraryTracksRequest.cs @@ -2,12 +2,26 @@ namespace SpotifyAPI.Web { public class LibraryTracksRequest : RequestParams { + /// + /// The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50. + /// + /// [QueryParam("limit")] public int? Limit { get; set; } + /// + /// The index of the first object to return. + /// Default: 0 (i.e., the first object). Use with limit to get the next set of objects. + /// + /// [QueryParam("offset")] public int? Offset { get; set; } + /// + /// An ISO 3166-1 alpha-2 country code or the string from_token. + /// Provide this parameter if you want to apply Track Relinking. + /// + /// [QueryParam("market")] public string? Market { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/NewReleasesRequest.cs b/SpotifyAPI.Web/Models/Request/NewReleasesRequest.cs index 84cff1de..0123bbd7 100644 --- a/SpotifyAPI.Web/Models/Request/NewReleasesRequest.cs +++ b/SpotifyAPI.Web/Models/Request/NewReleasesRequest.cs @@ -2,12 +2,27 @@ namespace SpotifyAPI.Web { public class NewReleasesRequest : RequestParams { + /// + /// A country: an ISO 3166-1 alpha-2 country code. + /// Provide this parameter if you want the list of returned items to be relevant to a particular country. + /// If omitted, the returned items will be relevant to all countries. + /// + /// [QueryParam("country")] public string? Country { get; set; } + /// + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// + /// [QueryParam("limit")] public int? Limit { get; set; } + /// + /// The index of the first item to return. Default: 0 (the first object). + /// Use with limit to get the next set of items. + /// + /// [QueryParam("offset")] public int? Offset { get; set; } } diff --git a/SpotifyAPI.Web/Models/Request/RecommendationsRequest.cs b/SpotifyAPI.Web/Models/Request/RecommendationsRequest.cs index c8e4564c..c463e2fb 100644 --- a/SpotifyAPI.Web/Models/Request/RecommendationsRequest.cs +++ b/SpotifyAPI.Web/Models/Request/RecommendationsRequest.cs @@ -15,23 +15,77 @@ namespace SpotifyAPI.Web SeedTracks = new List(); } + /// + /// A comma separated list of Spotify IDs for seed artists. + /// Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres. + /// + /// [QueryParam("seed_artists")] public IList SeedArtists { get; } + /// + /// A comma separated list of any genres in the set of available genre seeds. + /// Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres. + /// + /// [QueryParam("seed_genres")] public IList SeedGenres { get; } + /// + /// A comma separated list of Spotify IDs for a seed track. + /// Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres. + /// + /// [QueryParam("seed_tracks")] public IList SeedTracks { get; } + /// + /// The target size of the list of recommended tracks. + /// For seeds with unusually small pools or when highly restrictive filtering is applied, + /// it may be impossible to generate the requested number of recommended tracks. + /// Debugging information for such cases is available in the response. Default: 20. Minimum: 1. Maximum: 100. + /// + /// [QueryParam("limit")] public int? Limit { get; set; } + /// + /// An ISO 3166-1 alpha-2 country code or the string from_token. + /// Provide this parameter if you want to apply Track Relinking. + /// Because min_*, max_* and target_* are applied to pools before relinking, the generated results + /// may not precisely match the filters applied. Original, + /// non-relinked tracks are available via the linked_from attribute of the relinked track response. + /// + /// [QueryParam("market")] public string? Market { get; set; } + /// + /// Multiple values. For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. + /// See tunable track attributes below for the list of available options. + /// For example, min_tempo=140 would restrict results to only those tracks with a tempo of greater than 140 beats per minute. + /// DO NOT INCLUDE min_ IN THE KEY + /// + /// public Dictionary Min { get; } + + /// + /// Multiple values. For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. + /// See tunable track attributes below for the list of available options. + /// For example, max_instrumentalness=0.35 would filter out most tracks that are likely to be instrumental. + /// DO NOT INCLUDE max_ IN THE KEY + /// + /// public Dictionary Max { get; } + + /// + /// Multiple values. For each of the tunable track attributes (below) a target value may be provided. + /// Tracks with the attribute values nearest to the target values will be preferred. + /// For example, you might request target_energy=0.6 and target_danceability=0.8. + /// All target values will be weighed equally in ranking results. + /// DO NOT INCLUDE target_ IN THE KEY + /// + /// public Dictionary Target { get; } protected override void CustomEnsure() @@ -50,11 +104,11 @@ namespace SpotifyAPI.Web { queryParams.Add($"min_{pair.Key}", pair.Value); } - foreach (KeyValuePair pair in Min) + foreach (KeyValuePair pair in Max) { queryParams.Add($"max_{pair.Key}", pair.Value); } - foreach (KeyValuePair pair in Min) + foreach (KeyValuePair pair in Target) { queryParams.Add($"target_{pair.Key}", pair.Value); } diff --git a/SpotifyAPI.Web/Models/Request/UnfollowRequest.cs b/SpotifyAPI.Web/Models/Request/UnfollowRequest.cs index 514d74cf..91acf8f1 100644 --- a/SpotifyAPI.Web/Models/Request/UnfollowRequest.cs +++ b/SpotifyAPI.Web/Models/Request/UnfollowRequest.cs @@ -3,6 +3,15 @@ namespace SpotifyAPI.Web { public class UnfollowRequest : RequestParams { + /// + /// + /// + /// The ID type: either artist or user. + /// + /// A comma-separated list of the artist or the user Spotify IDs. F + /// or example: ids=74ASZWbe4lXaubB36ztrGX,08td7MxkoHQkXnWAYD8d6Q. + /// A maximum of 50 IDs can be sent in one request. + /// public UnfollowRequest(Type type, IList ids) { Ensure.ArgumentNotNull(type, nameof(type)); @@ -12,9 +21,19 @@ namespace SpotifyAPI.Web Ids = ids; } + /// + /// The ID type: either artist or user. + /// + /// [QueryParam("type")] public Type TypeParam { get; } + /// + /// A comma-separated list of the artist or the user Spotify IDs. F + /// or example: ids=74ASZWbe4lXaubB36ztrGX,08td7MxkoHQkXnWAYD8d6Q. + /// A maximum of 50 IDs can be sent in one request. + /// + /// [BodyParam("ids")] public IList Ids { get; }