using System; using System.Collections.Generic; namespace SpotifyAPI.Web { public class PlaylistGetItemsRequest : RequestParams { /// /// /// /// /// A comma-separated list of item types that your client supports /// besides the default track type. Valid types are: track and episode. /// Note: This parameter was introduced to allow existing clients to maintain /// their current behaviour and might be deprecated in the future. In addition to /// providing this parameter, make sure that your client properly handles cases of new types in the /// future by checking against the type field of each object. Defaults to ALL /// public PlaylistGetItemsRequest(AdditionalTypes types = AdditionalTypes.All) { Ensure.ArgumentNotNull(types, nameof(types)); AdditionalTypesParam = types; Fields = new List(); } /// /// Filters for the query: a comma-separated list of the fields to return. /// If omitted, all fields are returned. For example, to get just the total number of items and the request limit: /// fields=total,limit /// A dot separator can be used to specify non-reoccurring fields, while parentheses can be used to specify /// reoccurring fields within objects. For example, to get just the added date and user ID of the adder: /// fields=items(added_at,added_by.id) /// Use multiple parentheses to drill down into nested objects, for example: /// fields=items(track(name,href,album(name,href))) /// Fields can be excluded by prefixing them with an exclamation mark, for example: /// fields=items.track.album(!external_urls,images) /// /// [QueryParam("fields")] public List Fields { get; } /// /// The maximum number of items to return. Default: 100. Minimum: 1. Maximum: 100. /// /// [QueryParam("limit")] public int? Limit { get; set; } /// /// The index of the first item to return. Default: 0 (the first object). /// /// [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. For episodes, 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 episode is considered unavailable for the client. /// /// [QueryParam("market")] public string? Market { get; set; } /// /// This is set to `"track", "episode"` by default. /// /// [QueryParam("additional_types")] public AdditionalTypes AdditionalTypesParam { get; } [Flags] public enum AdditionalTypes { [String("track")] Track = 1, [String("episode")] Episode = 2, All = Track | Episode } } }