Files
plexgo/models/operations/starttranscodesession.go
speakeasybot 3ae6d27c3c ## Go SDK Changes:
* `PlexApi.LibraryPlaylists.AddPlaylistItems()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Hubs.GetMetadataHubs()`: 
  *  `request.Request.OnlyTransient` **Changed**
  *  `response.MediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.LibraryCollections.MoveCollectionItem()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.LibraryCollections.DeleteCollectionItem()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.LibraryCollections.AddCollectionItems()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Content.GetSonicallySimilar()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Butler.StopTask()`:  `request.Request` **Changed** **Breaking** ⚠️
* `PlexApi.Butler.StartTask()`:  `request.Request` **Changed** **Breaking** ⚠️
* `PlexApi.Content.GetSonicPath()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.DownloadQueue.GetItemDecision()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Hubs.GetAllHubs()`: 
  *  `request.Request.OnlyTransient` **Changed**
  *  `response.MediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Hubs.GetContinueWatching()`:  `response.MediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Hubs.GetPromotedHubs()`:  `response.MediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Content.GetAllLeaves()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Hubs.GetPostplayHubs()`: 
  *  `request.Request.OnlyTransient` **Changed**
  *  `response.MediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Hubs.GetRelatedHubs()`: 
  *  `request.Request.OnlyTransient` **Changed**
  *  `response.MediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Hubs.GetSectionHubs()`: 
  *  `request.Request.OnlyTransient` **Changed**
  *  `response.MediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Content.ListContent()`: 
  *  `request.Request` **Changed**
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Content.GetAlbums()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Search.SearchHubs()`:  `response.MediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Search.VoiceSearchHubs()`: 
  *  `request.Request.Type` **Changed** **Breaking** ⚠️
  *  `response.MediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.GetLibraryItems()`: 
  *  `request.Request.MediaQuery` **Changed**
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.IngestTransientItem()`: 
  *  `request.Request` **Changed**
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.GetLibraryMatches()`: 
  *  `request.Request` **Changed** **Breaking** ⚠️
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Content.GetMetadataItem()`: 
  *  `request.Request` **Changed**
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.GetSections()`:  `response.MediaContainer.Directory.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.AddSection()`: 
  *  `request.Request` **Changed**
  *  `response.MediaContainer.Directory.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.GetTags()`: 
  *  `request.Request.Type` **Changed** **Breaking** ⚠️
* `PlexApi.Content.GetCollectionItems()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.GetAllItemLeaves()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Status.ListSessions()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.PlayQueue.MovePlayQueueItem()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.GetExtras()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.PlayQueue.DeletePlayQueueItem()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.PlayQueue.Unshuffle()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.ListMatches()`: 
  *  `request.Request.Manual` **Changed**
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.ListSonicallySimilar()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.PlayQueue.ResetPlayQueue()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.GetRelatedItems()`:  `response.MediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.ListSimilar()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.PlayQueue.ClearPlayQueue()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.GetItemTree()`:  `response.MediaContainer.MetadataItem.[]` **Changed** **Breaking** ⚠️
* `PlexApi.PlayQueue.AddToPlayQueue()`: 
  *  `request.Request.Next` **Changed**
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.PlayQueue.GetPlayQueue()`: 
  *  `request.Request` **Changed**
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.LibraryPlaylists.MovePlaylistItem()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.GetPerson()`:  `response.MediaContainer.Directory.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.ListPersonMedia()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.LibraryPlaylists.GetPlaylistGeneratorItems()`:  `response.MediaContainer.Metadata` **Changed** **Breaking** ⚠️
* `PlexApi.Library.GetLibraryDetails()`: 
  *  `request.Request.IncludeDetails` **Changed**
  *  `response.MediaContainer.Directory.[]` **Changed** **Breaking** ⚠️
* `PlexApi.LibraryPlaylists.ModifyPlaylistGenerator()`: 
  *  `request.Request.Item` **Changed**
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.Autocomplete()`: 
  *  `request.Request.MediaQuery` **Changed**
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.GetCollections()`: 
  *  `request.Request.MediaQuery` **Changed**
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.GetCommon()`: 
  *  `request.Request.MediaQuery` **Changed**
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.LibraryPlaylists.DeletePlaylistItem()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.LibraryPlaylists.ClearPlaylistItems()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.PlayQueue.Shuffle()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.LibraryPlaylists.CreatePlaylist()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Playlist.GetPlaylistItems()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Playlist.GetPlaylist()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Collections.CreateCollection()`: 
  *  `request.Request.Type` **Changed** **Breaking** ⚠️
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.DvRs.TuneChannel()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.LiveTv.GetSessions()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.LiveTv.GetLiveTvSession()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Playlist.ListPlaylists()`:  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Subscriptions.GetAllSubscriptions()`: 
  *  `request.Request` **Changed**
  *  `response.MediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️
* `PlexApi.Subscriptions.CreateSubscription()`:  `response.MediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️
* `PlexApi.Subscriptions.GetScheduledRecordings()`:  `response.MediaContainer.MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️
* `PlexApi.Subscriptions.GetTemplate()`:  `response.MediaContainer.SubscriptionTemplate.[].MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️
* `PlexApi.Subscriptions.GetSubscription()`: 
  *  `request.Request` **Changed**
  *  `response.MediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️
* `PlexApi.Subscriptions.EditSubscriptionPreferences()`:  `response.MediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️
* `PlexApi.Subscriptions.ReorderSubscription()`:  `response.MediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️
* `PlexApi.Transcoder.MakeDecision()`: 
  *  `request.Request` **Changed**
  *  `response.MediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️
* `PlexApi.Library.RefreshItemsMetadata()`: 
  *  `request.Request.MarkUpdated` **Changed**
* `PlexApi.Authentication.Post-Users-Sign-In-Data()`: **Added**
* `PlexApi.Transcoder.StartTranscodeSession()`:  `request.Request` **Changed**
* `PlexApi.Devices.ModifyDevice()`: 
  *  `request.Request.Enabled` **Changed**
* `PlexApi.Library.GetMediaPart()`: 
  *  `request.Request.Download` **Changed**
* `PlexApi.Library.DetectIntros()`: 
  *  `request.Request.Force` **Changed**
* `PlexApi.Library.RefreshSection()`: 
  *  `request.Request.Force` **Changed**
* `PlexApi.LibraryPlaylists.UploadPlaylist()`: 
  *  `request.Request.Force` **Changed**
* `PlexApi.Library.DeleteMediaItem()`: 
  *  `request.Request.Proxy` **Changed**
* `PlexApi.Authentication.GetTokenDetails()`: **Added**
* `PlexApi.Library.GetFirstCharacters()`: 
  *  `request.Request.MediaQuery` **Changed**
* `PlexApi.Library.UpdateItems()`: 
  *  `request.Request.Field.locked` **Changed**
* `PlexApi.Library.DeleteLibrarySection()`: 
  *  `request.Request.Async` **Changed**
* `PlexApi.Library.SetStreamSelection()`: 
  *  `request.Request.AllParts` **Changed**
* `PlexApi.PlayQueue.CreatePlayQueue()`:  `request.Request` **Changed**
* `PlexApi.Library.GetAugmentationStatus()`: 
  *  `request.Request.Wait` **Changed**
* `PlexApi.Library.DetectVoiceActivity()`:  `request.Request` **Changed**
* `PlexApi.Transcoder.TranscodeImage()`:  `request.Request` **Changed**
* `PlexApi.Transcoder.TranscodeSubtitles()`:  `request.Request` **Changed**
* `PlexApi.Library.AddSubtitles()`:  `request.Request` **Changed**
* `PlexApi.Library.GetStream()`: 
  *  `request.Request.AutoAdjustSubtitle` **Changed**
* `PlexApi.Library.StartBifGeneration()`: 
  *  `request.Request.Force` **Changed**
* `PlexApi.Library.DetectCredits()`:  `request.Request` **Changed**
* `PlexApi.UltraBlur.GetImage()`: 
  *  `request.Request.Noise` **Changed**
* `PlexApi.Library.GenerateThumbs()`: 
  *  `request.Request.Force` **Changed**
* `PlexApi.Updater.ApplyUpdates()`:  `request.Request` **Changed**
* `PlexApi.Updater.CheckUpdates()`: 
  *  `request.Request.Download` **Changed**
* `PlexApi.Library.DeleteMetadataItem()`: 
  *  `request.Request.Proxy` **Changed**
* `PlexApi.Library.OptimizeDatabase()`: 
  *  `request.Request.Async` **Changed**
* `PlexApi.Hubs.UpdateHubVisibility()`:  `request.Request` **Changed**
* `PlexApi.Hubs.CreateCustomHub()`:  `request.Request` **Changed**
* `PlexApi.Library.GetSectionImage()`: 
  *  `request.Request.MediaQuery` **Changed**
* `PlexApi.DownloadQueue.AddDownloadQueueItems()`:  `request.Request` **Changed**
* `PlexApi.Timeline.Report()`:  `request.Request` **Changed**
* `PlexApi.General.GetSourceConnectionInformation()`: 
  *  `request.Request.Refresh` **Changed**
* `PlexApi.Plex.Get-Server-Resources()`: **Added**
* `PlexApi.Users.Get-Users()`: **Added**
2025-12-01 00:15:28 +00:00

700 lines
22 KiB
Go

// 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"
"io"
"net/http"
)
type StartTranscodeSessionGlobals 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 (s StartTranscodeSessionGlobals) MarshalJSON() ([]byte, error) {
return utils.MarshalJSON(s, "", false)
}
func (s *StartTranscodeSessionGlobals) UnmarshalJSON(data []byte) error {
if err := utils.UnmarshalJSON(data, &s, "", false, nil); err != nil {
return err
}
return nil
}
func (s *StartTranscodeSessionGlobals) GetAccepts() *components.Accepts {
if s == nil {
return nil
}
return s.Accepts
}
func (s *StartTranscodeSessionGlobals) GetClientIdentifier() *string {
if s == nil {
return nil
}
return s.ClientIdentifier
}
func (s *StartTranscodeSessionGlobals) GetProduct() *string {
if s == nil {
return nil
}
return s.Product
}
func (s *StartTranscodeSessionGlobals) GetVersion() *string {
if s == nil {
return nil
}
return s.Version
}
func (s *StartTranscodeSessionGlobals) GetPlatform() *string {
if s == nil {
return nil
}
return s.Platform
}
func (s *StartTranscodeSessionGlobals) GetPlatformVersion() *string {
if s == nil {
return nil
}
return s.PlatformVersion
}
func (s *StartTranscodeSessionGlobals) GetDevice() *string {
if s == nil {
return nil
}
return s.Device
}
func (s *StartTranscodeSessionGlobals) GetModel() *string {
if s == nil {
return nil
}
return s.Model
}
func (s *StartTranscodeSessionGlobals) GetDeviceVendor() *string {
if s == nil {
return nil
}
return s.DeviceVendor
}
func (s *StartTranscodeSessionGlobals) GetDeviceName() *string {
if s == nil {
return nil
}
return s.DeviceName
}
func (s *StartTranscodeSessionGlobals) GetMarketplace() *string {
if s == nil {
return nil
}
return s.Marketplace
}
// Extension
type Extension string
const (
ExtensionM3u8 Extension = "m3u8"
ExtensionMpd Extension = "mpd"
)
func (e Extension) ToPointer() *Extension {
return &e
}
func (e *Extension) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "m3u8":
fallthrough
case "mpd":
*e = Extension(v)
return nil
default:
return fmt.Errorf("invalid value for Extension: %v", v)
}
}
// StartTranscodeSessionQueryParamLocation - Network type of the client, can be used to help determine target bitrate.
type StartTranscodeSessionQueryParamLocation string
const (
StartTranscodeSessionQueryParamLocationLan StartTranscodeSessionQueryParamLocation = "lan"
StartTranscodeSessionQueryParamLocationWan StartTranscodeSessionQueryParamLocation = "wan"
StartTranscodeSessionQueryParamLocationCellular StartTranscodeSessionQueryParamLocation = "cellular"
)
func (e StartTranscodeSessionQueryParamLocation) ToPointer() *StartTranscodeSessionQueryParamLocation {
return &e
}
func (e *StartTranscodeSessionQueryParamLocation) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "lan":
fallthrough
case "wan":
fallthrough
case "cellular":
*e = StartTranscodeSessionQueryParamLocation(v)
return nil
default:
return fmt.Errorf("invalid value for StartTranscodeSessionQueryParamLocation: %v", v)
}
}
// StartTranscodeSessionQueryParamProtocol - 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)
type StartTranscodeSessionQueryParamProtocol string
const (
StartTranscodeSessionQueryParamProtocolHTTP StartTranscodeSessionQueryParamProtocol = "http"
StartTranscodeSessionQueryParamProtocolHls StartTranscodeSessionQueryParamProtocol = "hls"
StartTranscodeSessionQueryParamProtocolDash StartTranscodeSessionQueryParamProtocol = "dash"
)
func (e StartTranscodeSessionQueryParamProtocol) ToPointer() *StartTranscodeSessionQueryParamProtocol {
return &e
}
func (e *StartTranscodeSessionQueryParamProtocol) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "http":
fallthrough
case "hls":
fallthrough
case "dash":
*e = StartTranscodeSessionQueryParamProtocol(v)
return nil
default:
return fmt.Errorf("invalid value for StartTranscodeSessionQueryParamProtocol: %v", v)
}
}
// StartTranscodeSessionQueryParamSubtitles - 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
type StartTranscodeSessionQueryParamSubtitles string
const (
StartTranscodeSessionQueryParamSubtitlesAuto StartTranscodeSessionQueryParamSubtitles = "auto"
StartTranscodeSessionQueryParamSubtitlesBurn StartTranscodeSessionQueryParamSubtitles = "burn"
StartTranscodeSessionQueryParamSubtitlesNone StartTranscodeSessionQueryParamSubtitles = "none"
StartTranscodeSessionQueryParamSubtitlesSidecar StartTranscodeSessionQueryParamSubtitles = "sidecar"
StartTranscodeSessionQueryParamSubtitlesEmbedded StartTranscodeSessionQueryParamSubtitles = "embedded"
StartTranscodeSessionQueryParamSubtitlesSegmented StartTranscodeSessionQueryParamSubtitles = "segmented"
StartTranscodeSessionQueryParamSubtitlesUnknown StartTranscodeSessionQueryParamSubtitles = "unknown"
)
func (e StartTranscodeSessionQueryParamSubtitles) ToPointer() *StartTranscodeSessionQueryParamSubtitles {
return &e
}
func (e *StartTranscodeSessionQueryParamSubtitles) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "auto":
fallthrough
case "burn":
fallthrough
case "none":
fallthrough
case "sidecar":
fallthrough
case "embedded":
fallthrough
case "segmented":
fallthrough
case "unknown":
*e = StartTranscodeSessionQueryParamSubtitles(v)
return nil
default:
return fmt.Errorf("invalid value for StartTranscodeSessionQueryParamSubtitles: %v", v)
}
}
type StartTranscodeSessionRequest 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"`
// Type of transcode media
TranscodeType components.TranscodeType `pathParam:"style=simple,explode=false,name=transcodeType"`
// Transcode session UUID
TranscodeSessionID *string `queryParam:"style=form,explode=true,name=transcodeSessionId"`
// Extension
//
Extension Extension `pathParam:"style=simple,explode=false,name=extension"`
// 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 *StartTranscodeSessionQueryParamLocation `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 *StartTranscodeSessionQueryParamProtocol `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 *StartTranscodeSessionQueryParamSubtitles `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"`
// See [Profile Augmentations](#section/API-Info/Profile-Augmentations) .
XPlexClientProfileExtra *string `header:"style=simple,explode=false,name=X-Plex-Client-Profile-Extra"`
// Which built in Client Profile to use in the decision. Generally should only be used to specify the Generic profile.
XPlexClientProfileName *string `header:"style=simple,explode=false,name=X-Plex-Client-Profile-Name"`
// Unique per client playback session. Used if a client can playback multiple items at a time (such as a browser with multiple tabs)
XPlexSessionIdentifier *string `header:"style=simple,explode=false,name=X-Plex-Session-Identifier"`
}
func (s StartTranscodeSessionRequest) MarshalJSON() ([]byte, error) {
return utils.MarshalJSON(s, "", false)
}
func (s *StartTranscodeSessionRequest) UnmarshalJSON(data []byte) error {
if err := utils.UnmarshalJSON(data, &s, "", false, []string{"transcodeType", "extension"}); err != nil {
return err
}
return nil
}
func (s *StartTranscodeSessionRequest) GetAccepts() *components.Accepts {
if s == nil {
return nil
}
return s.Accepts
}
func (s *StartTranscodeSessionRequest) GetClientIdentifier() *string {
if s == nil {
return nil
}
return s.ClientIdentifier
}
func (s *StartTranscodeSessionRequest) GetProduct() *string {
if s == nil {
return nil
}
return s.Product
}
func (s *StartTranscodeSessionRequest) GetVersion() *string {
if s == nil {
return nil
}
return s.Version
}
func (s *StartTranscodeSessionRequest) GetPlatform() *string {
if s == nil {
return nil
}
return s.Platform
}
func (s *StartTranscodeSessionRequest) GetPlatformVersion() *string {
if s == nil {
return nil
}
return s.PlatformVersion
}
func (s *StartTranscodeSessionRequest) GetDevice() *string {
if s == nil {
return nil
}
return s.Device
}
func (s *StartTranscodeSessionRequest) GetModel() *string {
if s == nil {
return nil
}
return s.Model
}
func (s *StartTranscodeSessionRequest) GetDeviceVendor() *string {
if s == nil {
return nil
}
return s.DeviceVendor
}
func (s *StartTranscodeSessionRequest) GetDeviceName() *string {
if s == nil {
return nil
}
return s.DeviceName
}
func (s *StartTranscodeSessionRequest) GetMarketplace() *string {
if s == nil {
return nil
}
return s.Marketplace
}
func (s *StartTranscodeSessionRequest) GetTranscodeType() components.TranscodeType {
if s == nil {
return components.TranscodeType("")
}
return s.TranscodeType
}
func (s *StartTranscodeSessionRequest) GetTranscodeSessionID() *string {
if s == nil {
return nil
}
return s.TranscodeSessionID
}
func (s *StartTranscodeSessionRequest) GetExtension() Extension {
if s == nil {
return Extension("")
}
return s.Extension
}
func (s *StartTranscodeSessionRequest) GetAdvancedSubtitles() *components.AdvancedSubtitles {
if s == nil {
return nil
}
return s.AdvancedSubtitles
}
func (s *StartTranscodeSessionRequest) GetAudioBoost() *int64 {
if s == nil {
return nil
}
return s.AudioBoost
}
func (s *StartTranscodeSessionRequest) GetAudioChannelCount() *int64 {
if s == nil {
return nil
}
return s.AudioChannelCount
}
func (s *StartTranscodeSessionRequest) GetAutoAdjustQuality() *components.BoolInt {
if s == nil {
return nil
}
return s.AutoAdjustQuality
}
func (s *StartTranscodeSessionRequest) GetAutoAdjustSubtitle() *components.BoolInt {
if s == nil {
return nil
}
return s.AutoAdjustSubtitle
}
func (s *StartTranscodeSessionRequest) GetDirectPlay() *components.BoolInt {
if s == nil {
return nil
}
return s.DirectPlay
}
func (s *StartTranscodeSessionRequest) GetDirectStream() *components.BoolInt {
if s == nil {
return nil
}
return s.DirectStream
}
func (s *StartTranscodeSessionRequest) GetDirectStreamAudio() *components.BoolInt {
if s == nil {
return nil
}
return s.DirectStreamAudio
}
func (s *StartTranscodeSessionRequest) GetDisableResolutionRotation() *components.BoolInt {
if s == nil {
return nil
}
return s.DisableResolutionRotation
}
func (s *StartTranscodeSessionRequest) GetHasMDE() *components.BoolInt {
if s == nil {
return nil
}
return s.HasMDE
}
func (s *StartTranscodeSessionRequest) GetLocation() *StartTranscodeSessionQueryParamLocation {
if s == nil {
return nil
}
return s.Location
}
func (s *StartTranscodeSessionRequest) GetMediaBufferSize() *int64 {
if s == nil {
return nil
}
return s.MediaBufferSize
}
func (s *StartTranscodeSessionRequest) GetMediaIndex() *int64 {
if s == nil {
return nil
}
return s.MediaIndex
}
func (s *StartTranscodeSessionRequest) GetMusicBitrate() *int64 {
if s == nil {
return nil
}
return s.MusicBitrate
}
func (s *StartTranscodeSessionRequest) GetOffset() *float64 {
if s == nil {
return nil
}
return s.Offset
}
func (s *StartTranscodeSessionRequest) GetPartIndex() *int64 {
if s == nil {
return nil
}
return s.PartIndex
}
func (s *StartTranscodeSessionRequest) GetPath() *string {
if s == nil {
return nil
}
return s.Path
}
func (s *StartTranscodeSessionRequest) GetPeakBitrate() *int64 {
if s == nil {
return nil
}
return s.PeakBitrate
}
func (s *StartTranscodeSessionRequest) GetPhotoResolution() *string {
if s == nil {
return nil
}
return s.PhotoResolution
}
func (s *StartTranscodeSessionRequest) GetProtocol() *StartTranscodeSessionQueryParamProtocol {
if s == nil {
return nil
}
return s.Protocol
}
func (s *StartTranscodeSessionRequest) GetSecondsPerSegment() *int64 {
if s == nil {
return nil
}
return s.SecondsPerSegment
}
func (s *StartTranscodeSessionRequest) GetSubtitleSize() *int64 {
if s == nil {
return nil
}
return s.SubtitleSize
}
func (s *StartTranscodeSessionRequest) GetSubtitles() *StartTranscodeSessionQueryParamSubtitles {
if s == nil {
return nil
}
return s.Subtitles
}
func (s *StartTranscodeSessionRequest) GetVideoBitrate() *int64 {
if s == nil {
return nil
}
return s.VideoBitrate
}
func (s *StartTranscodeSessionRequest) GetVideoQuality() *int64 {
if s == nil {
return nil
}
return s.VideoQuality
}
func (s *StartTranscodeSessionRequest) GetVideoResolution() *string {
if s == nil {
return nil
}
return s.VideoResolution
}
func (s *StartTranscodeSessionRequest) GetXPlexClientProfileExtra() *string {
if s == nil {
return nil
}
return s.XPlexClientProfileExtra
}
func (s *StartTranscodeSessionRequest) GetXPlexClientProfileName() *string {
if s == nil {
return nil
}
return s.XPlexClientProfileName
}
func (s *StartTranscodeSessionRequest) GetXPlexSessionIdentifier() *string {
if s == nil {
return nil
}
return s.XPlexSessionIdentifier
}
type StartTranscodeSessionResponse 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
// MPD file (see ISO/IEC 23009-1:2022), m3u8 file (see RFC 8216), or binary http stream
// The Close method must be called on this field, even if it is not used, to prevent resource leaks.
ResponseStream io.ReadCloser
}
func (s *StartTranscodeSessionResponse) GetContentType() string {
if s == nil {
return ""
}
return s.ContentType
}
func (s *StartTranscodeSessionResponse) GetStatusCode() int {
if s == nil {
return 0
}
return s.StatusCode
}
func (s *StartTranscodeSessionResponse) GetRawResponse() *http.Response {
if s == nil {
return nil
}
return s.RawResponse
}
func (s *StartTranscodeSessionResponse) GetResponseStream() io.ReadCloser {
if s == nil {
return nil
}
return s.ResponseStream
}