// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. package operations import ( "encoding/json" "fmt" "github.com/LukeHagar/plexgo/internal/utils" "github.com/LukeHagar/plexgo/models/components" "net/http" ) type CreatePlayQueueGlobals 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 (c CreatePlayQueueGlobals) MarshalJSON() ([]byte, error) { return utils.MarshalJSON(c, "", false) } func (c *CreatePlayQueueGlobals) UnmarshalJSON(data []byte) error { if err := utils.UnmarshalJSON(data, &c, "", false, nil); err != nil { return err } return nil } func (c *CreatePlayQueueGlobals) GetAccepts() *components.Accepts { if c == nil { return nil } return c.Accepts } func (c *CreatePlayQueueGlobals) GetClientIdentifier() *string { if c == nil { return nil } return c.ClientIdentifier } func (c *CreatePlayQueueGlobals) GetProduct() *string { if c == nil { return nil } return c.Product } func (c *CreatePlayQueueGlobals) GetVersion() *string { if c == nil { return nil } return c.Version } func (c *CreatePlayQueueGlobals) GetPlatform() *string { if c == nil { return nil } return c.Platform } func (c *CreatePlayQueueGlobals) GetPlatformVersion() *string { if c == nil { return nil } return c.PlatformVersion } func (c *CreatePlayQueueGlobals) GetDevice() *string { if c == nil { return nil } return c.Device } func (c *CreatePlayQueueGlobals) GetModel() *string { if c == nil { return nil } return c.Model } func (c *CreatePlayQueueGlobals) GetDeviceVendor() *string { if c == nil { return nil } return c.DeviceVendor } func (c *CreatePlayQueueGlobals) GetDeviceName() *string { if c == nil { return nil } return c.DeviceName } func (c *CreatePlayQueueGlobals) GetMarketplace() *string { if c == nil { return nil } return c.Marketplace } // Type - The type of play queue to create type Type string const ( TypeAudio Type = "audio" TypeVideo Type = "video" TypePhoto Type = "photo" ) func (e Type) ToPointer() *Type { return &e } func (e *Type) UnmarshalJSON(data []byte) error { var v string if err := json.Unmarshal(data, &v); err != nil { return err } switch v { case "audio": fallthrough case "video": fallthrough case "photo": *e = Type(v) return nil default: return fmt.Errorf("invalid value for Type: %v", v) } } type CreatePlayQueueRequest 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 content URI for what we're playing. URI *string `queryParam:"style=form,explode=true,name=uri"` // the ID of the playlist we're playing. PlaylistID *int64 `queryParam:"style=form,explode=true,name=playlistID"` // The type of play queue to create Type Type `queryParam:"style=form,explode=true,name=type"` // The key of the first item to play, defaults to the first in the play queue. Key *string `queryParam:"style=form,explode=true,name=key"` // Whether to shuffle the playlist, defaults to 0. Shuffle *components.BoolInt `default:"0" queryParam:"style=form,explode=true,name=shuffle"` // If the PQ is bigger than the window, fill any empty space with wraparound items, defaults to 0. Repeat *components.BoolInt `default:"0" queryParam:"style=form,explode=true,name=repeat"` // Whether to create a continuous play queue (e.g. from an episode), defaults to 0. Continuous *components.BoolInt `default:"0" queryParam:"style=form,explode=true,name=continuous"` // Number of trailers to prepend a movie with not including the pre-roll. If omitted the pre-roll will not be returned in the play queue. When resuming a movie `extrasPrefixCount` should be omitted as a parameter instead of passing 0. ExtrasPrefixCount *int64 `queryParam:"style=form,explode=true,name=extrasPrefixCount"` // Only applies to queues of type photo, whether to retrieve all descendent photos from an album or section, defaults to 1. Recursive *components.BoolInt `default:"0" queryParam:"style=form,explode=true,name=recursive"` // Only applies to queues of type show or seasons, whether to return a queue that is started on the On Deck episode if one exists. Otherwise begins the play queue on the beginning of the show or season. OnDeck *components.BoolInt `default:"0" queryParam:"style=form,explode=true,name=onDeck"` } func (c CreatePlayQueueRequest) MarshalJSON() ([]byte, error) { return utils.MarshalJSON(c, "", false) } func (c *CreatePlayQueueRequest) UnmarshalJSON(data []byte) error { if err := utils.UnmarshalJSON(data, &c, "", false, []string{"type"}); err != nil { return err } return nil } func (c *CreatePlayQueueRequest) GetAccepts() *components.Accepts { if c == nil { return nil } return c.Accepts } func (c *CreatePlayQueueRequest) GetClientIdentifier() *string { if c == nil { return nil } return c.ClientIdentifier } func (c *CreatePlayQueueRequest) GetProduct() *string { if c == nil { return nil } return c.Product } func (c *CreatePlayQueueRequest) GetVersion() *string { if c == nil { return nil } return c.Version } func (c *CreatePlayQueueRequest) GetPlatform() *string { if c == nil { return nil } return c.Platform } func (c *CreatePlayQueueRequest) GetPlatformVersion() *string { if c == nil { return nil } return c.PlatformVersion } func (c *CreatePlayQueueRequest) GetDevice() *string { if c == nil { return nil } return c.Device } func (c *CreatePlayQueueRequest) GetModel() *string { if c == nil { return nil } return c.Model } func (c *CreatePlayQueueRequest) GetDeviceVendor() *string { if c == nil { return nil } return c.DeviceVendor } func (c *CreatePlayQueueRequest) GetDeviceName() *string { if c == nil { return nil } return c.DeviceName } func (c *CreatePlayQueueRequest) GetMarketplace() *string { if c == nil { return nil } return c.Marketplace } func (c *CreatePlayQueueRequest) GetURI() *string { if c == nil { return nil } return c.URI } func (c *CreatePlayQueueRequest) GetPlaylistID() *int64 { if c == nil { return nil } return c.PlaylistID } func (c *CreatePlayQueueRequest) GetType() Type { if c == nil { return Type("") } return c.Type } func (c *CreatePlayQueueRequest) GetKey() *string { if c == nil { return nil } return c.Key } func (c *CreatePlayQueueRequest) GetShuffle() *components.BoolInt { if c == nil { return nil } return c.Shuffle } func (c *CreatePlayQueueRequest) GetRepeat() *components.BoolInt { if c == nil { return nil } return c.Repeat } func (c *CreatePlayQueueRequest) GetContinuous() *components.BoolInt { if c == nil { return nil } return c.Continuous } func (c *CreatePlayQueueRequest) GetExtrasPrefixCount() *int64 { if c == nil { return nil } return c.ExtrasPrefixCount } func (c *CreatePlayQueueRequest) GetRecursive() *components.BoolInt { if c == nil { return nil } return c.Recursive } func (c *CreatePlayQueueRequest) GetOnDeck() *components.BoolInt { if c == nil { return nil } return c.OnDeck } // CreatePlayQueueMediaContainer - `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 CreatePlayQueueMediaContainer 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"` // The ID of the play queue, which is used in subsequent requests. PlayQueueID *int64 `json:"playQueueID,omitempty"` // Defines where the "Up Next" region starts PlayQueueLastAddedItemID *string `json:"playQueueLastAddedItemID,omitempty"` // The queue item ID of the currently selected item. PlayQueueSelectedItemID *int64 `json:"playQueueSelectedItemID,omitempty"` // The offset of the selected item in the play queue, from the beginning of the queue. PlayQueueSelectedItemOffset *int64 `json:"playQueueSelectedItemOffset,omitempty"` // The metadata item ID of the currently selected item (matches `ratingKey` attribute in metadata item if the media provider is a library). PlayQueueSelectedMetadataItemID *int64 `json:"playQueueSelectedMetadataItemID,omitempty"` // Whether or not the queue is shuffled. PlayQueueShuffled *bool `json:"playQueueShuffled,omitempty"` // The original URI used to create the play queue. PlayQueueSourceURI *string `json:"playQueueSourceURI,omitempty"` // The total number of items in the play queue. PlayQueueTotalCount *int64 `json:"playQueueTotalCount,omitempty"` // The version of the play queue. It increments every time a change is made to the play queue to assist clients in knowing when to refresh. PlayQueueVersion *int64 `json:"playQueueVersion,omitempty"` } func (c *CreatePlayQueueMediaContainer) GetIdentifier() *string { if c == nil { return nil } return c.Identifier } func (c *CreatePlayQueueMediaContainer) GetOffset() *int64 { if c == nil { return nil } return c.Offset } func (c *CreatePlayQueueMediaContainer) GetSize() *int64 { if c == nil { return nil } return c.Size } func (c *CreatePlayQueueMediaContainer) GetTotalSize() *int64 { if c == nil { return nil } return c.TotalSize } func (c *CreatePlayQueueMediaContainer) GetPlayQueueID() *int64 { if c == nil { return nil } return c.PlayQueueID } func (c *CreatePlayQueueMediaContainer) GetPlayQueueLastAddedItemID() *string { if c == nil { return nil } return c.PlayQueueLastAddedItemID } func (c *CreatePlayQueueMediaContainer) GetPlayQueueSelectedItemID() *int64 { if c == nil { return nil } return c.PlayQueueSelectedItemID } func (c *CreatePlayQueueMediaContainer) GetPlayQueueSelectedItemOffset() *int64 { if c == nil { return nil } return c.PlayQueueSelectedItemOffset } func (c *CreatePlayQueueMediaContainer) GetPlayQueueSelectedMetadataItemID() *int64 { if c == nil { return nil } return c.PlayQueueSelectedMetadataItemID } func (c *CreatePlayQueueMediaContainer) GetPlayQueueShuffled() *bool { if c == nil { return nil } return c.PlayQueueShuffled } func (c *CreatePlayQueueMediaContainer) GetPlayQueueSourceURI() *string { if c == nil { return nil } return c.PlayQueueSourceURI } func (c *CreatePlayQueueMediaContainer) GetPlayQueueTotalCount() *int64 { if c == nil { return nil } return c.PlayQueueTotalCount } func (c *CreatePlayQueueMediaContainer) GetPlayQueueVersion() *int64 { if c == nil { return nil } return c.PlayQueueVersion } // CreatePlayQueueResponseBody - OK type CreatePlayQueueResponseBody struct { MediaContainer *CreatePlayQueueMediaContainer `json:"MediaContainer,omitempty"` } func (c *CreatePlayQueueResponseBody) GetMediaContainer() *CreatePlayQueueMediaContainer { if c == nil { return nil } return c.MediaContainer } type CreatePlayQueueResponse 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 *CreatePlayQueueResponseBody Headers map[string][]string } func (c *CreatePlayQueueResponse) GetContentType() string { if c == nil { return "" } return c.ContentType } func (c *CreatePlayQueueResponse) GetStatusCode() int { if c == nil { return 0 } return c.StatusCode } func (c *CreatePlayQueueResponse) GetRawResponse() *http.Response { if c == nil { return nil } return c.RawResponse } func (c *CreatePlayQueueResponse) GetObject() *CreatePlayQueueResponseBody { if c == nil { return nil } return c.Object } func (c *CreatePlayQueueResponse) GetHeaders() map[string][]string { if c == nil { return map[string][]string{} } return c.Headers }