//------------------------------------------------------------------------------
//
// 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.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
public class CreateSubscriptionRequest
{
///
/// 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 library section into which we'll grab the media. Not actually required when the subscription is to a playlist.
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=targetLibrarySectionID")]
public long? TargetLibrarySectionID { get; set; }
///
/// The section location into which to grab.
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=targetSectionLocationID")]
public long? TargetSectionLocationID { get; set; }
///
/// The type of the thing we're subscribing too (e.g. show, season).
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")]
public long? Type { get; set; }
///
/// Hints describing what we're looking for. Note: The hint `ratingKey` is required for downloading from a PMS remote.
///
[SpeakeasyMetadata("queryParam:style=deepObject,explode=true,name=hints")]
public Hints? Hints { get; set; }
///
/// Subscription preferences.
///
[SpeakeasyMetadata("queryParam:style=deepObject,explode=true,name=prefs")]
public CreateSubscriptionQueryParamPrefs? Prefs { get; set; }
///
/// Subscription parameters.
///
///
/// - `mediaProviderID`: Required for downloads to indicate which MP the subscription will download into
/// - `source`: Required for downloads to indicate the source of the downloaded content.
///
///
///
[SpeakeasyMetadata("queryParam:style=deepObject,explode=true,name=params")]
public Params? Params { get; set; }
}
}