//------------------------------------------------------------------------------
//
// 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.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System.Collections.Generic;
///
/// `MediaContainer` is the root element of most Plex API responses. It serves as a generic container for various types of content (Metadata, Hubs, Directories, etc.) and includes pagination information (offset, size, totalSize) when applicable.
///
///
/// Common attributes: - identifier: Unique identifier for this container - size: Number of items in this response page - totalSize: Total number of items available (for pagination) - offset: Starting index of this page (for pagination)
/// The container often "hoists" common attributes from its children. For example, if all tracks in a container share the same album title, the `parentTitle` attribute may appear on the MediaContainer rather than being repeated on each track.
///
///
///
public class ListProvidersMediaContainer
{
///
/// A unique identifier for the provider, e.g. `com.plexapp.plugins.library`.
///
[JsonProperty("identifier")]
public string? Identifier { get; set; }
///
/// The offset of where this container page starts among the total objects available. Also provided in the `X-Plex-Container-Start` header.
///
///
///
///
///
[JsonProperty("offset")]
public long? Offset { get; set; }
[JsonProperty("size")]
public long? Size { get; set; }
///
/// The total size of objects available. Also provided in the `X-Plex-Container-Total-Size` header.
///
///
///
///
///
[JsonProperty("totalSize")]
public long? TotalSize { get; set; }
[JsonProperty("allowCameraUpload")]
public bool? AllowCameraUpload { get; set; }
[JsonProperty("allowChannelAccess")]
public bool? AllowChannelAccess { get; set; }
[JsonProperty("allowMediaDeletion")]
public bool? AllowMediaDeletion { get; set; }
[JsonProperty("allowSharing")]
public bool? AllowSharing { get; set; }
[JsonProperty("allowSync")]
public bool? AllowSync { get; set; }
[JsonProperty("allowTuners")]
public bool? AllowTuners { get; set; }
[JsonProperty("backgroundProcessing")]
public bool? BackgroundProcessing { get; set; }
[JsonProperty("certificate")]
public bool? Certificate { get; set; }
[JsonProperty("companionProxy")]
public bool? CompanionProxy { get; set; }
[JsonProperty("countryCode")]
public string? CountryCode { get; set; }
[JsonProperty("diagnostics")]
public string? Diagnostics { get; set; }
[JsonProperty("eventStream")]
public bool? EventStream { get; set; }
[JsonProperty("friendlyName")]
public string? FriendlyName { get; set; }
[JsonProperty("hubSearch")]
public bool? HubSearch { get; set; }
[JsonProperty("itemClusters")]
public bool? ItemClusters { get; set; }
[JsonProperty("livetv")]
public long? Livetv { get; set; }
[JsonProperty("machineIdentifier")]
public object? MachineIdentifier { get; set; }
[JsonProperty("mediaProviders")]
public bool? MediaProviders { get; set; }
[JsonProperty("multiuser")]
public bool? Multiuser { get; set; }
[JsonProperty("musicAnalysis")]
public long? MusicAnalysis { get; set; }
[JsonProperty("myPlex")]
public bool? MyPlex { get; set; }
[JsonProperty("myPlexMappingState")]
public object? MyPlexMappingState { get; set; }
[JsonProperty("myPlexSigninState")]
public object? MyPlexSigninState { get; set; }
[JsonProperty("myPlexSubscription")]
public bool? MyPlexSubscription { get; set; }
[JsonProperty("myPlexUsername")]
public string? MyPlexUsername { get; set; }
[JsonProperty("offlineTranscode")]
public object? OfflineTranscode { get; set; }
///
/// A comma-separated list of features which are enabled for the server owner
///
[JsonProperty("ownerFeatures")]
public string? OwnerFeatures { get; set; }
[JsonProperty("platform")]
public string? Platform { get; set; }
[JsonProperty("platformVersion")]
public string? PlatformVersion { get; set; }
[JsonProperty("pluginHost")]
public bool? PluginHost { get; set; }
[JsonProperty("pushNotifications")]
public bool? PushNotifications { get; set; }
[JsonProperty("readOnlyLibraries")]
public bool? ReadOnlyLibraries { get; set; }
[JsonProperty("streamingBrainABRVersion")]
public long? StreamingBrainABRVersion { get; set; }
[JsonProperty("streamingBrainVersion")]
public long? StreamingBrainVersion { get; set; }
[JsonProperty("sync")]
public bool? Sync { get; set; }
[JsonProperty("transcoderActiveVideoSessions")]
public long? TranscoderActiveVideoSessions { get; set; }
[JsonProperty("transcoderAudio")]
public bool? TranscoderAudio { get; set; }
[JsonProperty("transcoderLyrics")]
public bool? TranscoderLyrics { get; set; }
[JsonProperty("transcoderPhoto")]
public bool? TranscoderPhoto { get; set; }
[JsonProperty("transcoderSubtitles")]
public bool? TranscoderSubtitles { get; set; }
[JsonProperty("transcoderVideo")]
public bool? TranscoderVideo { get; set; }
///
/// The suggested video quality bitrates to present to the user
///
[JsonProperty("transcoderVideoBitrates")]
public object? TranscoderVideoBitrates { get; set; }
[JsonProperty("transcoderVideoQualities")]
public string? TranscoderVideoQualities { get; set; }
///
/// The suggested video resolutions to the above quality bitrates
///
[JsonProperty("transcoderVideoResolutions")]
public object? TranscoderVideoResolutions { get; set; }
[JsonProperty("updatedAt")]
public long? UpdatedAt { get; set; }
[JsonProperty("updater")]
public bool? Updater { get; set; }
[JsonProperty("version")]
public string? Version { get; set; }
[JsonProperty("voiceSearch")]
public bool? VoiceSearch { get; set; }
[JsonProperty("Feature")]
public List? Feature { get; set; }
///
/// A comma-separated list of default protocols for the provider, which can be:
///
///
/// - `stream`: The provider allows streaming media directly from the provider (e.g. for Vimeo). - `download`: The provider allows downloading media for offline storage, sync, etc. (e.g. Podcasts). - `livetv`: The provider provides live content which is only available on a schedule basis.
///
///
[JsonProperty("protocols")]
public string? Protocols { get; set; }
///
/// The title of the provider.
///
[JsonProperty("title")]
public string? Title { get; set; }
///
/// This attribute contains a comma-separated list of the media types exposed by the provider (e.g. `video, audio`).
///
[JsonProperty("types")]
public string? Types { get; set; }
}
}