// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. package operations import ( "github.com/LukeHagar/plexgo/internal/utils" "github.com/LukeHagar/plexgo/models/components" "net/http" ) type AddDownloadQueueItemsGlobals struct { // Indicates the client accepts the indicated media types Accepts *components.Accepts `default:"application/xml" header:"style=simple,explode=false,name=accepts"` // An opaque identifier unique to the client ClientIdentifier *string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"` // The name of the client product Product *string `header:"style=simple,explode=false,name=X-Plex-Product"` // The version of the client application Version *string `header:"style=simple,explode=false,name=X-Plex-Version"` // The platform of the client Platform *string `header:"style=simple,explode=false,name=X-Plex-Platform"` // The version of the platform PlatformVersion *string `header:"style=simple,explode=false,name=X-Plex-Platform-Version"` // A relatively friendly name for the client device Device *string `header:"style=simple,explode=false,name=X-Plex-Device"` // A potentially less friendly identifier for the device model Model *string `header:"style=simple,explode=false,name=X-Plex-Model"` // The device vendor DeviceVendor *string `header:"style=simple,explode=false,name=X-Plex-Device-Vendor"` // A friendly name for the client DeviceName *string `header:"style=simple,explode=false,name=X-Plex-Device-Name"` // The marketplace on which the client application is distributed Marketplace *string `header:"style=simple,explode=false,name=X-Plex-Marketplace"` } func (a AddDownloadQueueItemsGlobals) MarshalJSON() ([]byte, error) { return utils.MarshalJSON(a, "", false) } func (a *AddDownloadQueueItemsGlobals) UnmarshalJSON(data []byte) error { if err := utils.UnmarshalJSON(data, &a, "", false, nil); err != nil { return err } return nil } func (a *AddDownloadQueueItemsGlobals) GetAccepts() *components.Accepts { if a == nil { return nil } return a.Accepts } func (a *AddDownloadQueueItemsGlobals) GetClientIdentifier() *string { if a == nil { return nil } return a.ClientIdentifier } func (a *AddDownloadQueueItemsGlobals) GetProduct() *string { if a == nil { return nil } return a.Product } func (a *AddDownloadQueueItemsGlobals) GetVersion() *string { if a == nil { return nil } return a.Version } func (a *AddDownloadQueueItemsGlobals) GetPlatform() *string { if a == nil { return nil } return a.Platform } func (a *AddDownloadQueueItemsGlobals) GetPlatformVersion() *string { if a == nil { return nil } return a.PlatformVersion } func (a *AddDownloadQueueItemsGlobals) GetDevice() *string { if a == nil { return nil } return a.Device } func (a *AddDownloadQueueItemsGlobals) GetModel() *string { if a == nil { return nil } return a.Model } func (a *AddDownloadQueueItemsGlobals) GetDeviceVendor() *string { if a == nil { return nil } return a.DeviceVendor } func (a *AddDownloadQueueItemsGlobals) GetDeviceName() *string { if a == nil { return nil } return a.DeviceName } func (a *AddDownloadQueueItemsGlobals) GetMarketplace() *string { if a == nil { return nil } return a.Marketplace } type AddDownloadQueueItemsRequest struct { // Indicates the client accepts the indicated media types Accepts *components.Accepts `default:"application/xml" header:"style=simple,explode=false,name=accepts"` // An opaque identifier unique to the client ClientIdentifier *string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"` // The name of the client product Product *string `header:"style=simple,explode=false,name=X-Plex-Product"` // The version of the client application Version *string `header:"style=simple,explode=false,name=X-Plex-Version"` // The platform of the client Platform *string `header:"style=simple,explode=false,name=X-Plex-Platform"` // The version of the platform PlatformVersion *string `header:"style=simple,explode=false,name=X-Plex-Platform-Version"` // A relatively friendly name for the client device Device *string `header:"style=simple,explode=false,name=X-Plex-Device"` // A potentially less friendly identifier for the device model Model *string `header:"style=simple,explode=false,name=X-Plex-Model"` // The device vendor DeviceVendor *string `header:"style=simple,explode=false,name=X-Plex-Device-Vendor"` // A friendly name for the client DeviceName *string `header:"style=simple,explode=false,name=X-Plex-Device-Name"` // The marketplace on which the client application is distributed Marketplace *string `header:"style=simple,explode=false,name=X-Plex-Marketplace"` // The queue id QueueID int64 `pathParam:"style=simple,explode=false,name=queueId"` // Keys to add Keys []string `queryParam:"style=form,explode=false,name=keys"` // Indicates how incompatible advanced subtitles (such as ass/ssa) should be included: * 'burn' - Burn incompatible advanced text subtitles into the video stream * 'text' - Transcode incompatible advanced text subtitles to a compatible text format, even if some markup is lost // AdvancedSubtitles *components.AdvancedSubtitles `queryParam:"style=form,explode=true,name=advancedSubtitles"` // Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) AudioBoost *int64 `queryParam:"style=form,explode=true,name=audioBoost"` // Target video number of audio channels. AudioChannelCount *int64 `queryParam:"style=form,explode=true,name=audioChannelCount"` // Indicates the client supports ABR. AutoAdjustQuality *components.BoolInt `default:"0" queryParam:"style=form,explode=true,name=autoAdjustQuality"` // Indicates if the server should adjust subtitles based on Voice Activity Data. AutoAdjustSubtitle *components.BoolInt `default:"0" queryParam:"style=form,explode=true,name=autoAdjustSubtitle"` // Indicates the client supports direct playing the indicated content. DirectPlay *components.BoolInt `default:"0" queryParam:"style=form,explode=true,name=directPlay"` // Indicates the client supports direct streaming the video of the indicated content. DirectStream *components.BoolInt `default:"0" queryParam:"style=form,explode=true,name=directStream"` // Indicates the client supports direct streaming the audio of the indicated content. DirectStreamAudio *components.BoolInt `default:"0" queryParam:"style=form,explode=true,name=directStreamAudio"` // Indicates if resolution should be adjusted for orientation. DisableResolutionRotation *components.BoolInt `default:"0" queryParam:"style=form,explode=true,name=disableResolutionRotation"` // Ignore client profiles when determining if direct play is possible. Only has an effect when directPlay=1 and both mediaIndex and partIndex are specified and neither are -1 HasMDE *components.BoolInt `default:"0" queryParam:"style=form,explode=true,name=hasMDE"` // Network type of the client, can be used to help determine target bitrate. Location *components.Location `queryParam:"style=form,explode=true,name=location"` // Buffer size used in playback (in KB). Clients should specify a lower bound if not known exactly. This value could make the difference between transcoding and direct play on bandwidth constrained networks. MediaBufferSize *int64 `queryParam:"style=form,explode=true,name=mediaBufferSize"` // Index of the media to transcode. -1 or not specified indicates let the server choose. MediaIndex *int64 `queryParam:"style=form,explode=true,name=mediaIndex"` // Target bitrate for audio only files (in kbps, used to transcode). MusicBitrate *int64 `queryParam:"style=form,explode=true,name=musicBitrate"` // Offset from the start of the media (in seconds). Offset *float64 `queryParam:"style=form,explode=true,name=offset"` // Index of the part to transcode. -1 or not specified indicates the server should join parts together in a transcode PartIndex *int64 `queryParam:"style=form,explode=true,name=partIndex"` // Internal PMS path of the media to transcode. Path *string `queryParam:"style=form,explode=true,name=path"` // Maximum bitrate (in kbps) to use in ABR. PeakBitrate *int64 `queryParam:"style=form,explode=true,name=peakBitrate"` // Target photo resolution. PhotoResolution *string `queryParam:"style=form,explode=true,name=photoResolution"` // Indicates the network streaming protocol to be used for the transcode session: * 'http' - include the file in the http response such as MKV streaming * 'hls' - hls stream (RFC 8216) * 'dash' - dash stream (ISO/IEC 23009-1:2022) // Protocol *components.Protocol `queryParam:"style=form,explode=true,name=protocol"` // Number of seconds to include in each transcoded segment SecondsPerSegment *int64 `queryParam:"style=form,explode=true,name=secondsPerSegment"` // Percentage of original subtitle size to use when burning subtitles (100 is equivalent to original size, 50 is half, ect) SubtitleSize *int64 `queryParam:"style=form,explode=true,name=subtitleSize"` // Indicates how subtitles should be included: * 'auto' - Compute the appropriate subtitle setting automatically * 'burn' - Burn the selected subtitle; auto if no selected subtitle * 'none' - Ignore all subtitle streams * 'sidecar' - The selected subtitle should be provided as a sidecar * 'embedded' - The selected subtitle should be provided as an embedded stream * 'segmented' - The selected subtitle should be provided as a segmented stream // Subtitles *components.Subtitles `queryParam:"style=form,explode=true,name=subtitles"` // Target video bitrate (in kbps). VideoBitrate *int64 `queryParam:"style=form,explode=true,name=videoBitrate"` // Target photo quality. VideoQuality *int64 `queryParam:"style=form,explode=true,name=videoQuality"` // Target maximum video resolution. VideoResolution *string `queryParam:"style=form,explode=true,name=videoResolution"` } func (a AddDownloadQueueItemsRequest) MarshalJSON() ([]byte, error) { return utils.MarshalJSON(a, "", false) } func (a *AddDownloadQueueItemsRequest) UnmarshalJSON(data []byte) error { if err := utils.UnmarshalJSON(data, &a, "", false, []string{"queueId", "keys"}); err != nil { return err } return nil } func (a *AddDownloadQueueItemsRequest) GetAccepts() *components.Accepts { if a == nil { return nil } return a.Accepts } func (a *AddDownloadQueueItemsRequest) GetClientIdentifier() *string { if a == nil { return nil } return a.ClientIdentifier } func (a *AddDownloadQueueItemsRequest) GetProduct() *string { if a == nil { return nil } return a.Product } func (a *AddDownloadQueueItemsRequest) GetVersion() *string { if a == nil { return nil } return a.Version } func (a *AddDownloadQueueItemsRequest) GetPlatform() *string { if a == nil { return nil } return a.Platform } func (a *AddDownloadQueueItemsRequest) GetPlatformVersion() *string { if a == nil { return nil } return a.PlatformVersion } func (a *AddDownloadQueueItemsRequest) GetDevice() *string { if a == nil { return nil } return a.Device } func (a *AddDownloadQueueItemsRequest) GetModel() *string { if a == nil { return nil } return a.Model } func (a *AddDownloadQueueItemsRequest) GetDeviceVendor() *string { if a == nil { return nil } return a.DeviceVendor } func (a *AddDownloadQueueItemsRequest) GetDeviceName() *string { if a == nil { return nil } return a.DeviceName } func (a *AddDownloadQueueItemsRequest) GetMarketplace() *string { if a == nil { return nil } return a.Marketplace } func (a *AddDownloadQueueItemsRequest) GetQueueID() int64 { if a == nil { return 0 } return a.QueueID } func (a *AddDownloadQueueItemsRequest) GetKeys() []string { if a == nil { return []string{} } return a.Keys } func (a *AddDownloadQueueItemsRequest) GetAdvancedSubtitles() *components.AdvancedSubtitles { if a == nil { return nil } return a.AdvancedSubtitles } func (a *AddDownloadQueueItemsRequest) GetAudioBoost() *int64 { if a == nil { return nil } return a.AudioBoost } func (a *AddDownloadQueueItemsRequest) GetAudioChannelCount() *int64 { if a == nil { return nil } return a.AudioChannelCount } func (a *AddDownloadQueueItemsRequest) GetAutoAdjustQuality() *components.BoolInt { if a == nil { return nil } return a.AutoAdjustQuality } func (a *AddDownloadQueueItemsRequest) GetAutoAdjustSubtitle() *components.BoolInt { if a == nil { return nil } return a.AutoAdjustSubtitle } func (a *AddDownloadQueueItemsRequest) GetDirectPlay() *components.BoolInt { if a == nil { return nil } return a.DirectPlay } func (a *AddDownloadQueueItemsRequest) GetDirectStream() *components.BoolInt { if a == nil { return nil } return a.DirectStream } func (a *AddDownloadQueueItemsRequest) GetDirectStreamAudio() *components.BoolInt { if a == nil { return nil } return a.DirectStreamAudio } func (a *AddDownloadQueueItemsRequest) GetDisableResolutionRotation() *components.BoolInt { if a == nil { return nil } return a.DisableResolutionRotation } func (a *AddDownloadQueueItemsRequest) GetHasMDE() *components.BoolInt { if a == nil { return nil } return a.HasMDE } func (a *AddDownloadQueueItemsRequest) GetLocation() *components.Location { if a == nil { return nil } return a.Location } func (a *AddDownloadQueueItemsRequest) GetMediaBufferSize() *int64 { if a == nil { return nil } return a.MediaBufferSize } func (a *AddDownloadQueueItemsRequest) GetMediaIndex() *int64 { if a == nil { return nil } return a.MediaIndex } func (a *AddDownloadQueueItemsRequest) GetMusicBitrate() *int64 { if a == nil { return nil } return a.MusicBitrate } func (a *AddDownloadQueueItemsRequest) GetOffset() *float64 { if a == nil { return nil } return a.Offset } func (a *AddDownloadQueueItemsRequest) GetPartIndex() *int64 { if a == nil { return nil } return a.PartIndex } func (a *AddDownloadQueueItemsRequest) GetPath() *string { if a == nil { return nil } return a.Path } func (a *AddDownloadQueueItemsRequest) GetPeakBitrate() *int64 { if a == nil { return nil } return a.PeakBitrate } func (a *AddDownloadQueueItemsRequest) GetPhotoResolution() *string { if a == nil { return nil } return a.PhotoResolution } func (a *AddDownloadQueueItemsRequest) GetProtocol() *components.Protocol { if a == nil { return nil } return a.Protocol } func (a *AddDownloadQueueItemsRequest) GetSecondsPerSegment() *int64 { if a == nil { return nil } return a.SecondsPerSegment } func (a *AddDownloadQueueItemsRequest) GetSubtitleSize() *int64 { if a == nil { return nil } return a.SubtitleSize } func (a *AddDownloadQueueItemsRequest) GetSubtitles() *components.Subtitles { if a == nil { return nil } return a.Subtitles } func (a *AddDownloadQueueItemsRequest) GetVideoBitrate() *int64 { if a == nil { return nil } return a.VideoBitrate } func (a *AddDownloadQueueItemsRequest) GetVideoQuality() *int64 { if a == nil { return nil } return a.VideoQuality } func (a *AddDownloadQueueItemsRequest) GetVideoResolution() *string { if a == nil { return nil } return a.VideoResolution } type AddedQueueItems struct { // The queue item id that was added or the existing one if an item already exists in this queue with the same parameters ID *int64 `json:"id,omitempty"` // The key added to the queue Key *string `json:"key,omitempty"` } func (a *AddedQueueItems) GetID() *int64 { if a == nil { return nil } return a.ID } func (a *AddedQueueItems) GetKey() *string { if a == nil { return nil } return a.Key } // AddDownloadQueueItemsMediaContainer - `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 AddDownloadQueueItemsMediaContainer 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"` AddedQueueItems []AddedQueueItems `json:"AddedQueueItems,omitempty"` } func (a *AddDownloadQueueItemsMediaContainer) GetIdentifier() *string { if a == nil { return nil } return a.Identifier } func (a *AddDownloadQueueItemsMediaContainer) GetOffset() *int64 { if a == nil { return nil } return a.Offset } func (a *AddDownloadQueueItemsMediaContainer) GetSize() *int64 { if a == nil { return nil } return a.Size } func (a *AddDownloadQueueItemsMediaContainer) GetTotalSize() *int64 { if a == nil { return nil } return a.TotalSize } func (a *AddDownloadQueueItemsMediaContainer) GetAddedQueueItems() []AddedQueueItems { if a == nil { return nil } return a.AddedQueueItems } // AddDownloadQueueItemsResponseBody - OK type AddDownloadQueueItemsResponseBody struct { MediaContainer *AddDownloadQueueItemsMediaContainer `json:"MediaContainer,omitempty"` } func (a *AddDownloadQueueItemsResponseBody) GetMediaContainer() *AddDownloadQueueItemsMediaContainer { if a == nil { return nil } return a.MediaContainer } type AddDownloadQueueItemsResponse struct { // HTTP response content type for this operation ContentType string // HTTP response status code for this operation StatusCode int // Raw HTTP response; suitable for custom response parsing RawResponse *http.Response // OK Object *AddDownloadQueueItemsResponseBody } func (a *AddDownloadQueueItemsResponse) GetContentType() string { if a == nil { return "" } return a.ContentType } func (a *AddDownloadQueueItemsResponse) GetStatusCode() int { if a == nil { return 0 } return a.StatusCode } func (a *AddDownloadQueueItemsResponse) GetRawResponse() *http.Response { if a == nil { return nil } return a.RawResponse } func (a *AddDownloadQueueItemsResponse) GetObject() *AddDownloadQueueItemsResponseBody { if a == nil { return nil } return a.Object }