// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.

package components

type LibrarySectionsDirectory struct {
	Count *int64 `json:"count,omitempty"`
	// The key where this directory is found
	Key   *string `json:"key,omitempty"`
	Title *string `json:"title,omitempty"`
}

func (l *LibrarySectionsDirectory) GetCount() *int64 {
	if l == nil {
		return nil
	}
	return l.Count
}

func (l *LibrarySectionsDirectory) GetKey() *string {
	if l == nil {
		return nil
	}
	return l.Key
}

func (l *LibrarySectionsDirectory) GetTitle() *string {
	if l == nil {
		return nil
	}
	return l.Title
}

// LibrarySectionsMediaContainer - `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.
type LibrarySectionsMediaContainer struct {
	Identifier *string `json:"identifier,omitempty"`
	// The offset of where this container page starts among the total objects available. Also provided in the `X-Plex-Container-Start` header.
	//
	Offset *int64 `json:"offset,omitempty"`
	Size   *int64 `json:"size,omitempty"`
	// The total size of objects available. Also provided in the `X-Plex-Container-Total-Size` header.
	//
	TotalSize            *int64  `json:"totalSize,omitempty"`
	AllowCameraUpload    *bool   `json:"allowCameraUpload,omitempty"`
	AllowChannelAccess   *bool   `json:"allowChannelAccess,omitempty"`
	AllowMediaDeletion   *bool   `json:"allowMediaDeletion,omitempty"`
	AllowSharing         *bool   `json:"allowSharing,omitempty"`
	AllowSync            *bool   `json:"allowSync,omitempty"`
	AllowTuners          *bool   `json:"allowTuners,omitempty"`
	BackgroundProcessing *bool   `json:"backgroundProcessing,omitempty"`
	Certificate          *bool   `json:"certificate,omitempty"`
	CompanionProxy       *bool   `json:"companionProxy,omitempty"`
	CountryCode          *string `json:"countryCode,omitempty"`
	Diagnostics          *string `json:"diagnostics,omitempty"`
	EventStream          *bool   `json:"eventStream,omitempty"`
	FriendlyName         *string `json:"friendlyName,omitempty"`
	HubSearch            *bool   `json:"hubSearch,omitempty"`
	ItemClusters         *bool   `json:"itemClusters,omitempty"`
	Livetv               *int64  `json:"livetv,omitempty"`
	MachineIdentifier    any     `json:"machineIdentifier,omitempty"`
	MediaProviders       *bool   `json:"mediaProviders,omitempty"`
	Multiuser            *bool   `json:"multiuser,omitempty"`
	MusicAnalysis        *int64  `json:"musicAnalysis,omitempty"`
	MyPlex               *bool   `json:"myPlex,omitempty"`
	MyPlexMappingState   any     `json:"myPlexMappingState,omitempty"`
	MyPlexSigninState    any     `json:"myPlexSigninState,omitempty"`
	MyPlexSubscription   *bool   `json:"myPlexSubscription,omitempty"`
	MyPlexUsername       *string `json:"myPlexUsername,omitempty"`
	OfflineTranscode     any     `json:"offlineTranscode,omitempty"`
	// A comma-separated list of features which are enabled for the server owner
	OwnerFeatures                 *string `json:"ownerFeatures,omitempty"`
	Platform                      *string `json:"platform,omitempty"`
	PlatformVersion               *string `json:"platformVersion,omitempty"`
	PluginHost                    *bool   `json:"pluginHost,omitempty"`
	PushNotifications             *bool   `json:"pushNotifications,omitempty"`
	ReadOnlyLibraries             *bool   `json:"readOnlyLibraries,omitempty"`
	StreamingBrainABRVersion      *int64  `json:"streamingBrainABRVersion,omitempty"`
	StreamingBrainVersion         *int64  `json:"streamingBrainVersion,omitempty"`
	Sync                          *bool   `json:"sync,omitempty"`
	TranscoderActiveVideoSessions *int64  `json:"transcoderActiveVideoSessions,omitempty"`
	TranscoderAudio               *bool   `json:"transcoderAudio,omitempty"`
	TranscoderLyrics              *bool   `json:"transcoderLyrics,omitempty"`
	TranscoderPhoto               *bool   `json:"transcoderPhoto,omitempty"`
	TranscoderSubtitles           *bool   `json:"transcoderSubtitles,omitempty"`
	TranscoderVideo               *bool   `json:"transcoderVideo,omitempty"`
	// The suggested video quality bitrates to present to the user
	TranscoderVideoBitrates  any     `json:"transcoderVideoBitrates,omitempty"`
	TranscoderVideoQualities *string `json:"transcoderVideoQualities,omitempty"`
	// The suggested video resolutions to the above quality bitrates
	TranscoderVideoResolutions any                        `json:"transcoderVideoResolutions,omitempty"`
	UpdatedAt                  *int64                     `json:"updatedAt,omitempty"`
	Updater                    *bool                      `json:"updater,omitempty"`
	Version                    *string                    `json:"version,omitempty"`
	VoiceSearch                *bool                      `json:"voiceSearch,omitempty"`
	Directory                  []LibrarySectionsDirectory `json:"Directory,omitempty"`
}

func (l *LibrarySectionsMediaContainer) GetIdentifier() *string {
	if l == nil {
		return nil
	}
	return l.Identifier
}

func (l *LibrarySectionsMediaContainer) GetOffset() *int64 {
	if l == nil {
		return nil
	}
	return l.Offset
}

func (l *LibrarySectionsMediaContainer) GetSize() *int64 {
	if l == nil {
		return nil
	}
	return l.Size
}

func (l *LibrarySectionsMediaContainer) GetTotalSize() *int64 {
	if l == nil {
		return nil
	}
	return l.TotalSize
}

func (l *LibrarySectionsMediaContainer) GetAllowCameraUpload() *bool {
	if l == nil {
		return nil
	}
	return l.AllowCameraUpload
}

func (l *LibrarySectionsMediaContainer) GetAllowChannelAccess() *bool {
	if l == nil {
		return nil
	}
	return l.AllowChannelAccess
}

func (l *LibrarySectionsMediaContainer) GetAllowMediaDeletion() *bool {
	if l == nil {
		return nil
	}
	return l.AllowMediaDeletion
}

func (l *LibrarySectionsMediaContainer) GetAllowSharing() *bool {
	if l == nil {
		return nil
	}
	return l.AllowSharing
}

func (l *LibrarySectionsMediaContainer) GetAllowSync() *bool {
	if l == nil {
		return nil
	}
	return l.AllowSync
}

func (l *LibrarySectionsMediaContainer) GetAllowTuners() *bool {
	if l == nil {
		return nil
	}
	return l.AllowTuners
}

func (l *LibrarySectionsMediaContainer) GetBackgroundProcessing() *bool {
	if l == nil {
		return nil
	}
	return l.BackgroundProcessing
}

func (l *LibrarySectionsMediaContainer) GetCertificate() *bool {
	if l == nil {
		return nil
	}
	return l.Certificate
}

func (l *LibrarySectionsMediaContainer) GetCompanionProxy() *bool {
	if l == nil {
		return nil
	}
	return l.CompanionProxy
}

func (l *LibrarySectionsMediaContainer) GetCountryCode() *string {
	if l == nil {
		return nil
	}
	return l.CountryCode
}

func (l *LibrarySectionsMediaContainer) GetDiagnostics() *string {
	if l == nil {
		return nil
	}
	return l.Diagnostics
}

func (l *LibrarySectionsMediaContainer) GetEventStream() *bool {
	if l == nil {
		return nil
	}
	return l.EventStream
}

func (l *LibrarySectionsMediaContainer) GetFriendlyName() *string {
	if l == nil {
		return nil
	}
	return l.FriendlyName
}

func (l *LibrarySectionsMediaContainer) GetHubSearch() *bool {
	if l == nil {
		return nil
	}
	return l.HubSearch
}

func (l *LibrarySectionsMediaContainer) GetItemClusters() *bool {
	if l == nil {
		return nil
	}
	return l.ItemClusters
}

func (l *LibrarySectionsMediaContainer) GetLivetv() *int64 {
	if l == nil {
		return nil
	}
	return l.Livetv
}

func (l *LibrarySectionsMediaContainer) GetMachineIdentifier() any {
	if l == nil {
		return nil
	}
	return l.MachineIdentifier
}

func (l *LibrarySectionsMediaContainer) GetMediaProviders() *bool {
	if l == nil {
		return nil
	}
	return l.MediaProviders
}

func (l *LibrarySectionsMediaContainer) GetMultiuser() *bool {
	if l == nil {
		return nil
	}
	return l.Multiuser
}

func (l *LibrarySectionsMediaContainer) GetMusicAnalysis() *int64 {
	if l == nil {
		return nil
	}
	return l.MusicAnalysis
}

func (l *LibrarySectionsMediaContainer) GetMyPlex() *bool {
	if l == nil {
		return nil
	}
	return l.MyPlex
}

func (l *LibrarySectionsMediaContainer) GetMyPlexMappingState() any {
	if l == nil {
		return nil
	}
	return l.MyPlexMappingState
}

func (l *LibrarySectionsMediaContainer) GetMyPlexSigninState() any {
	if l == nil {
		return nil
	}
	return l.MyPlexSigninState
}

func (l *LibrarySectionsMediaContainer) GetMyPlexSubscription() *bool {
	if l == nil {
		return nil
	}
	return l.MyPlexSubscription
}

func (l *LibrarySectionsMediaContainer) GetMyPlexUsername() *string {
	if l == nil {
		return nil
	}
	return l.MyPlexUsername
}

func (l *LibrarySectionsMediaContainer) GetOfflineTranscode() any {
	if l == nil {
		return nil
	}
	return l.OfflineTranscode
}

func (l *LibrarySectionsMediaContainer) GetOwnerFeatures() *string {
	if l == nil {
		return nil
	}
	return l.OwnerFeatures
}

func (l *LibrarySectionsMediaContainer) GetPlatform() *string {
	if l == nil {
		return nil
	}
	return l.Platform
}

func (l *LibrarySectionsMediaContainer) GetPlatformVersion() *string {
	if l == nil {
		return nil
	}
	return l.PlatformVersion
}

func (l *LibrarySectionsMediaContainer) GetPluginHost() *bool {
	if l == nil {
		return nil
	}
	return l.PluginHost
}

func (l *LibrarySectionsMediaContainer) GetPushNotifications() *bool {
	if l == nil {
		return nil
	}
	return l.PushNotifications
}

func (l *LibrarySectionsMediaContainer) GetReadOnlyLibraries() *bool {
	if l == nil {
		return nil
	}
	return l.ReadOnlyLibraries
}

func (l *LibrarySectionsMediaContainer) GetStreamingBrainABRVersion() *int64 {
	if l == nil {
		return nil
	}
	return l.StreamingBrainABRVersion
}

func (l *LibrarySectionsMediaContainer) GetStreamingBrainVersion() *int64 {
	if l == nil {
		return nil
	}
	return l.StreamingBrainVersion
}

func (l *LibrarySectionsMediaContainer) GetSync() *bool {
	if l == nil {
		return nil
	}
	return l.Sync
}

func (l *LibrarySectionsMediaContainer) GetTranscoderActiveVideoSessions() *int64 {
	if l == nil {
		return nil
	}
	return l.TranscoderActiveVideoSessions
}

func (l *LibrarySectionsMediaContainer) GetTranscoderAudio() *bool {
	if l == nil {
		return nil
	}
	return l.TranscoderAudio
}

func (l *LibrarySectionsMediaContainer) GetTranscoderLyrics() *bool {
	if l == nil {
		return nil
	}
	return l.TranscoderLyrics
}

func (l *LibrarySectionsMediaContainer) GetTranscoderPhoto() *bool {
	if l == nil {
		return nil
	}
	return l.TranscoderPhoto
}

func (l *LibrarySectionsMediaContainer) GetTranscoderSubtitles() *bool {
	if l == nil {
		return nil
	}
	return l.TranscoderSubtitles
}

func (l *LibrarySectionsMediaContainer) GetTranscoderVideo() *bool {
	if l == nil {
		return nil
	}
	return l.TranscoderVideo
}

func (l *LibrarySectionsMediaContainer) GetTranscoderVideoBitrates() any {
	if l == nil {
		return nil
	}
	return l.TranscoderVideoBitrates
}

func (l *LibrarySectionsMediaContainer) GetTranscoderVideoQualities() *string {
	if l == nil {
		return nil
	}
	return l.TranscoderVideoQualities
}

func (l *LibrarySectionsMediaContainer) GetTranscoderVideoResolutions() any {
	if l == nil {
		return nil
	}
	return l.TranscoderVideoResolutions
}

func (l *LibrarySectionsMediaContainer) GetUpdatedAt() *int64 {
	if l == nil {
		return nil
	}
	return l.UpdatedAt
}

func (l *LibrarySectionsMediaContainer) GetUpdater() *bool {
	if l == nil {
		return nil
	}
	return l.Updater
}

func (l *LibrarySectionsMediaContainer) GetVersion() *string {
	if l == nil {
		return nil
	}
	return l.Version
}

func (l *LibrarySectionsMediaContainer) GetVoiceSearch() *bool {
	if l == nil {
		return nil
	}
	return l.VoiceSearch
}

func (l *LibrarySectionsMediaContainer) GetDirectory() []LibrarySectionsDirectory {
	if l == nil {
		return nil
	}
	return l.Directory
}

// LibrarySections - OK
type LibrarySections struct {
	MediaContainer *LibrarySectionsMediaContainer `json:"MediaContainer,omitempty"`
}

func (l *LibrarySections) GetMediaContainer() *LibrarySectionsMediaContainer {
	if l == nil {
		return nil
	}
	return l.MediaContainer
}
