//------------------------------------------------------------------------------
//
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
//
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Components;
using LukeHagar.PlexAPI.SDK.Utils;
public class ListContentRequest
{
///
/// Indicates the client accepts the indicated media types
///
[SpeakeasyMetadata("header:style=simple,explode=false,name=accepts")]
public Accepts? Accepts { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.Accepts.ApplicationXml;
///
/// An opaque identifier unique to the client
///
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Client-Identifier")]
public string? ClientIdentifier { get; set; }
///
/// The name of the client product
///
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Product")]
public string? Product { get; set; }
///
/// The version of the client application
///
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Version")]
public string? Version { get; set; }
///
/// The platform of the client
///
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Platform")]
public string? Platform { get; set; }
///
/// The version of the platform
///
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Platform-Version")]
public string? PlatformVersion { get; set; }
///
/// A relatively friendly name for the client device
///
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Device")]
public string? Device { get; set; }
///
/// A potentially less friendly identifier for the device model
///
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Model")]
public string? Model { get; set; }
///
/// The device vendor
///
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Device-Vendor")]
public string? DeviceVendor { get; set; }
///
/// A friendly name for the client
///
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Device-Name")]
public string? DeviceName { get; set; }
///
/// The marketplace on which the client application is distributed
///
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Marketplace")]
public string? Marketplace { get; set; }
///
/// The index of the first item to return. If not specified, the first item will be returned.
///
///
/// If the number of items exceeds the limit, the response will be paginated.
/// By default this is 0
///
///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=X-Plex-Container-Start")]
public int? XPlexContainerStart { get; set; } = 0;
///
/// The number of items to return. If not specified, all items will be returned.
///
///
/// If the number of items exceeds the limit, the response will be paginated.
/// By default this is 50
///
///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=X-Plex-Container-Size")]
public int? XPlexContainerSize { get; set; } = 50;
///
/// A querystring-based filtering language used to select subsets of media. Can be provided as an object with typed properties for type safety, or as a string for complex queries with operators and boolean logic.
///
///
///
/// The query supports:
/// - Fields: integer, boolean, tag, string, date, language
/// - Operators: =, !=, ==, !==, <=, >=, >>=, <<= (varies by field type)
/// - Boolean operators: & (AND), , (OR), push/pop (parentheses), or=1 (explicit OR)
/// - Sorting: sort parameter with :desc, :nullsLast modifiers
/// - Grouping: group parameter
/// - Limits: limit parameter
///
/// Examples:
/// - Object format: `{type: 4, sourceType: 2, title: "24"}` → `type=4&sourceType=2&title=24`
/// - String format: `type=4&sourceType=2&title==24` - type = 4 AND sourceType = 2 AND title = "24"
/// - Complex: `push=1&index=1&or=1&rating=2&pop=1&duration=10` - (index = 1 OR rating = 2) AND duration = 10
///
/// See API Info section for detailed information on building media queries.
///
///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=mediaQuery")]
public MediaQuery? MediaQuery { get; set; }
///
/// Adds the Meta object to the response
///
///
///
///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeMeta")]
public BoolInt? IncludeMeta { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
///
/// Adds the Guid object to the response
///
///
///
///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeGuids")]
public BoolInt? IncludeGuids { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
///
/// The id of the section
///
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId")]
public string SectionId { get; set; } = default!;
}
}