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

package components

// LibrarySectionLocation - Represents a top-level location on disk where media in this library section is stored
type LibrarySectionLocation struct {
	ID *int64 `json:"id,omitempty"`
	// The path of where this directory exists on disk
	Path any `json:"path,omitempty"`
}

func (l *LibrarySectionLocation) GetID() *int64 {
	if l == nil {
		return nil
	}
	return l.ID
}

func (l *LibrarySectionLocation) GetPath() any {
	if l == nil {
		return nil
	}
	return l.Path
}

type LibrarySection struct {
	// The title of the library
	Title *string `json:"title,omitempty"`
	// The type of media content in the Plex library. This can represent videos, music, or photos.
	//
	Type             MediaTypeString `json:"type"`
	Agent            *string         `json:"agent,omitempty"`
	AllowSync        *bool           `json:"allowSync,omitempty"`
	Art              *string         `json:"art,omitempty"`
	Composite        *string         `json:"composite,omitempty"`
	Content          *bool           `json:"content,omitempty"`
	ContentChangedAt *int64          `json:"contentChangedAt,omitempty"`
	CreatedAt        *int64          `json:"createdAt,omitempty"`
	Directory        *bool           `json:"directory,omitempty"`
	// Indicates whether this section has filtering capabilities
	Filters  *bool   `json:"filters,omitempty"`
	Hidden   *bool   `json:"hidden,omitempty"`
	Key      *string `json:"key,omitempty"`
	Language string  `json:"language"`
	// The universally unique identifier for the library.
	UUID     string                   `json:"uuid"`
	Location []LibrarySectionLocation `json:"Location,omitempty"`
	// Indicates whether this library section is currently scanning
	Refreshing *bool   `json:"refreshing,omitempty"`
	ScannedAt  *int64  `json:"scannedAt,omitempty"`
	Scanner    *string `json:"scanner,omitempty"`
	Thumb      *string `json:"thumb,omitempty"`
	UpdatedAt  *int64  `json:"updatedAt,omitempty"`
}

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

func (l *LibrarySection) GetType() MediaTypeString {
	if l == nil {
		return MediaTypeString("")
	}
	return l.Type
}

func (l *LibrarySection) GetAgent() *string {
	if l == nil {
		return nil
	}
	return l.Agent
}

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

func (l *LibrarySection) GetArt() *string {
	if l == nil {
		return nil
	}
	return l.Art
}

func (l *LibrarySection) GetComposite() *string {
	if l == nil {
		return nil
	}
	return l.Composite
}

func (l *LibrarySection) GetContent() *bool {
	if l == nil {
		return nil
	}
	return l.Content
}

func (l *LibrarySection) GetContentChangedAt() *int64 {
	if l == nil {
		return nil
	}
	return l.ContentChangedAt
}

func (l *LibrarySection) GetCreatedAt() *int64 {
	if l == nil {
		return nil
	}
	return l.CreatedAt
}

func (l *LibrarySection) GetDirectory() *bool {
	if l == nil {
		return nil
	}
	return l.Directory
}

func (l *LibrarySection) GetFilters() *bool {
	if l == nil {
		return nil
	}
	return l.Filters
}

func (l *LibrarySection) GetHidden() *bool {
	if l == nil {
		return nil
	}
	return l.Hidden
}

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

func (l *LibrarySection) GetLanguage() string {
	if l == nil {
		return ""
	}
	return l.Language
}

func (l *LibrarySection) GetUUID() string {
	if l == nil {
		return ""
	}
	return l.UUID
}

func (l *LibrarySection) GetLocation() []LibrarySectionLocation {
	if l == nil {
		return nil
	}
	return l.Location
}

func (l *LibrarySection) GetRefreshing() *bool {
	if l == nil {
		return nil
	}
	return l.Refreshing
}

func (l *LibrarySection) GetScannedAt() *int64 {
	if l == nil {
		return nil
	}
	return l.ScannedAt
}

func (l *LibrarySection) GetScanner() *string {
	if l == nil {
		return nil
	}
	return l.Scanner
}

func (l *LibrarySection) GetThumb() *string {
	if l == nil {
		return nil
	}
	return l.Thumb
}

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