Compare commits

...

67 Commits

Author SHA1 Message Date
speakeasybot
4f27055ae6 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.665.0 2025-12-01 01:50:09 +00:00
Luke Hagar
956c980d8b Update gen.yaml 2025-11-30 19:47:18 -06:00
Luke Hagar
8fdf3a4385 Update gen.yaml 2025-11-30 19:25:24 -06:00
Luke Hagar
0830add9f3 Update gen.yaml 2025-11-30 19:17:08 -06:00
speakeasybot
3994020ebb ## Typescript SDK Changes:
* `plex-api.libraryPlaylists.addPlaylistItems()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getMetadataHubs()`: 
  *  `request.onlyTransient` **Changed**
  *  `response.mediacontainer.hub.[].metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.libraryCollections.moveCollectionItem()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.libraryCollections.deleteCollectionItem()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.libraryCollections.addCollectionItems()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.content.getSonicallySimilar()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.butler.stopTask()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.butler.startTask()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.getSonicPath()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.downloadQueue.getItemDecision()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getAllHubs()`: 
  *  `request.onlyTransient` **Changed**
  *  `response.mediacontainer.hub.[].metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getContinueWatching()`:  `response.mediacontainer.hub.[].metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getPromotedHubs()`:  `response.mediacontainer.hub.[].metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.content.getAllLeaves()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getPostplayHubs()`: 
  *  `request.onlyTransient` **Changed**
  *  `response.mediacontainer.hub.[].metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getRelatedHubs()`: 
  *  `request.onlyTransient` **Changed**
  *  `response.mediacontainer.hub.[].metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getSectionHubs()`: 
  *  `request.onlyTransient` **Changed**
  *  `response.mediacontainer.hub.[].metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.content.listContent()`: 
  *  `request` **Changed**
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.content.getAlbums()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.search.searchHubs()`:  `response.mediacontainer.hub.[].metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.search.voiceSearchHubs()`: 
  *  `request.type` **Changed** **Breaking** ⚠️
  *  `response.mediacontainer.hub.[].metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.getLibraryItems()`: 
  *  `request.mediaQuery` **Changed**
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.ingestTransientItem()`: 
  *  `request` **Changed**
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.getLibraryMatches()`: 
  *  `request` **Changed** **Breaking** ⚠️
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.content.getMetadataItem()`: 
  *  `request` **Changed**
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.getSections()`:  `response.mediacontainer.directory.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.addSection()`: 
  *  `request` **Changed**
  *  `response.mediacontainer.directory.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.getTags()`: 
  *  `request.type` **Changed** **Breaking** ⚠️
* `plex-api.content.getCollectionItems()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.getAllItemLeaves()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.status.listSessions()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.movePlayQueueItem()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.getExtras()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.deletePlayQueueItem()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.unshuffle()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.listMatches()`: 
  *  `request.manual` **Changed**
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.listSonicallySimilar()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.resetPlayQueue()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.getRelatedItems()`:  `response.mediacontainer.hub.[].metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.listSimilar()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.clearPlayQueue()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.getItemTree()`:  `response.mediacontainer.metadataItem.[]` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.addToPlayQueue()`: 
  *  `request.next` **Changed**
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.getPlayQueue()`: 
  *  `request` **Changed**
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.movePlaylistItem()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.getPerson()`:  `response.mediacontainer.directory.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.listPersonMedia()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.getPlaylistGeneratorItems()`:  `response.mediacontainer.metadata` **Changed** **Breaking** ⚠️
* `plex-api.library.getLibraryDetails()`: 
  *  `request.includeDetails` **Changed**
  *  `response.mediacontainer.directory.[]` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.modifyPlaylistGenerator()`: 
  *  `request.item` **Changed**
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.autocomplete()`: 
  *  `request.mediaQuery` **Changed**
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.getCollections()`: 
  *  `request.mediaQuery` **Changed**
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.getCommon()`: 
  *  `request.mediaQuery` **Changed**
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.deletePlaylistItem()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.clearPlaylistItems()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.shuffle()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.createPlaylist()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.playlist.getPlaylistItems()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.playlist.getPlaylist()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.collections.createCollection()`: 
  *  `request.type` **Changed** **Breaking** ⚠️
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.dvRs.tuneChannel()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.liveTv.getSessions()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.liveTv.getLiveTvSession()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.playlist.listPlaylists()`:  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.getAllSubscriptions()`: 
  *  `request` **Changed**
  *  `response.mediacontainer.mediaSubscription.[].mediaGrabOperation.[].metadata` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.createSubscription()`:  `response.mediacontainer.mediaSubscription.[].mediaGrabOperation.[].metadata` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.getScheduledRecordings()`:  `response.mediacontainer.mediaGrabOperation.[].metadata` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.getTemplate()`:  `response.mediacontainer.subscriptionTemplate.[].mediaSubscription.[].mediaGrabOperation.[].metadata` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.getSubscription()`: 
  *  `request` **Changed**
  *  `response.mediacontainer.mediaSubscription.[].mediaGrabOperation.[].metadata` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.editSubscriptionPreferences()`:  `response.mediacontainer.mediaSubscription.[].mediaGrabOperation.[].metadata` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.reorderSubscription()`:  `response.mediacontainer.mediaSubscription.[].mediaGrabOperation.[].metadata` **Changed** **Breaking** ⚠️
* `plex-api.transcoder.makeDecision()`: 
  *  `request` **Changed**
  *  `response.mediacontainer.metadata.[]` **Changed** **Breaking** ⚠️
* `plex-api.library.refreshItemsMetadata()`: 
  *  `request.markUpdated` **Changed**
* `plex-api.authentication.postUsersSignInData()`: **Added**
* `plex-api.transcoder.startTranscodeSession()`:  `request` **Changed**
* `plex-api.devices.modifyDevice()`: 
  *  `request.enabled` **Changed**
* `plex-api.library.getMediaPart()`: 
  *  `request.download` **Changed**
* `plex-api.library.detectIntros()`: 
  *  `request.force` **Changed**
* `plex-api.library.refreshSection()`: 
  *  `request.force` **Changed**
* `plex-api.libraryPlaylists.uploadPlaylist()`: 
  *  `request.force` **Changed**
* `plex-api.library.deleteMediaItem()`: 
  *  `request.proxy` **Changed**
* `plex-api.authentication.getTokenDetails()`: **Added**
* `plex-api.library.getFirstCharacters()`: 
  *  `request.mediaQuery` **Changed**
* `plex-api.library.updateItems()`: 
  *  `request.field.locked` **Changed**
* `plex-api.library.deleteLibrarySection()`: 
  *  `request.async` **Changed**
* `plex-api.library.setStreamSelection()`: 
  *  `request.allParts` **Changed**
* `plex-api.playQueue.createPlayQueue()`:  `request` **Changed**
* `plex-api.library.getAugmentationStatus()`: 
  *  `request.wait` **Changed**
* `plex-api.library.detectVoiceActivity()`:  `request` **Changed**
* `plex-api.transcoder.transcodeImage()`:  `request` **Changed**
* `plex-api.transcoder.transcodeSubtitles()`:  `request` **Changed**
* `plex-api.library.addSubtitles()`:  `request` **Changed**
* `plex-api.library.getStream()`: 
  *  `request.autoAdjustSubtitle` **Changed**
* `plex-api.library.startBifGeneration()`: 
  *  `request.force` **Changed**
* `plex-api.library.detectCredits()`:  `request` **Changed**
* `plex-api.ultraBlur.getImage()`: 
  *  `request.noise` **Changed**
* `plex-api.library.generateThumbs()`: 
  *  `request.force` **Changed**
* `plex-api.updater.applyUpdates()`:  `request` **Changed**
* `plex-api.updater.checkUpdates()`: 
  *  `request.download` **Changed**
* `plex-api.library.deleteMetadataItem()`: 
  *  `request.proxy` **Changed**
* `plex-api.library.optimizeDatabase()`: 
  *  `request.async` **Changed**
* `plex-api.hubs.updateHubVisibility()`:  `request` **Changed**
* `plex-api.hubs.createCustomHub()`:  `request` **Changed**
* `plex-api.library.getSectionImage()`: 
  *  `request.mediaQuery` **Changed**
* `plex-api.downloadQueue.addDownloadQueueItems()`:  `request` **Changed**
* `plex-api.timeline.report()`:  `request` **Changed**
* `plex-api.general.getSourceConnectionInformation()`: 
  *  `request.refresh` **Changed**
* `plex-api.plex.getServerResources()`: **Added**
* `plex-api.users.getUsers()`: **Added**
2025-12-01 00:15:57 +00:00
speakeasybot
03c047afa2 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.656.1 2025-11-13 00:13:26 +00:00
speakeasybot
03910be91f ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.636.3 2025-10-12 07:28:01 +00:00
speakeasybot
25ed9aa97d ## Typescript SDK Changes Detected:
* `plex-api.general.getServerInfo()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.general.getSourceConnectionInformation()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.general.getTransientToken()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.events.getNotifications()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.events.connectWebSocket()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.preferences.setPreferences()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.preferences.getPreference()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.rate.setRating()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.timeline.markPlayed()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.timeline.report()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.timeline.unscrobble()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.activities.cancelActivity()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.butler.stopTask()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.butler.startTask()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.downloadQueue.getDownloadQueue()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.downloadQueue.addDownloadQueueItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.downloadQueue.listDownloadQueueItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.downloadQueue.getItemDecision()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.downloadQueue.getDownloadQueueMedia()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.downloadQueue.removeDownloadQueueItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.downloadQueue.getDownloadQueueItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.downloadQueue.restartProcessingDownloadQueueItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getAllHubs()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getContinueWatching()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getHubItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getPromotedHubs()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getMetadataHubs()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getPostplayHubs()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getRelatedHubs()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.getSectionHubs()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.resetSectionDefaults()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.listHubs()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.createCustomHub()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.moveHub()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.deleteCustomHub()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.hubs.updateHubVisibility()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.search.searchHubs()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.search.voiceSearchHubs()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getLibraryItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.ingestTransientItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getLibraryMatches()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.optimizeDatabase()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getRandomArtwork()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.addSection()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getSectionsPrefs()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.refreshSectionsMetadata()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getTags()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.deleteMetadataItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.editMetadataItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.detectAds()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getAllItemLeaves()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.analyzeMetadata()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.generateThumbs()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.detectCredits()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getExtras()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.addExtras()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getFile()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.startBifGeneration()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.detectIntros()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.createMarker()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.matchItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.listMatches()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.mergeItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.listSonicallySimilar()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.setItemPreferences()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.refreshItemsMetadata()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getRelatedItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.listSimilar()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.splitItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.addSubtitles()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getItemTree()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.unmatch()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.listTopUsers()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.detectVoiceActivity()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getAugmentationStatus()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.setStreamSelection()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getPerson()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.listPersonMedia()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.deleteLibrarySection()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getLibraryDetails()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.editSection()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.updateItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.startAnalysis()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.autocomplete()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getCollections()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getCommon()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.emptyTrash()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getSectionFilters()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getFirstCharacters()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.deleteIndexes()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.deleteIntros()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getSectionPreferences()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.setSectionPreferences()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.cancelRefresh()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.refreshSection()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getAvailableSorts()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getStreamLevels()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getStreamLoudness()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getChapterImage()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.setItemArtwork()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.updateItemArtwork()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.deleteMarker()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.editMarker()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.deleteMediaItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getPartIndex()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.deleteCollection()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getSectionImage()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.deleteStream()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getStream()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.setStreamOffset()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getItemArtwork()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getMediaPart()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.library.getImageFromBif()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.collections.createCollection()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.dvRs.createDvr()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.dvRs.deleteDvr()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.dvRs.getDvr()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.dvRs.deleteLineup()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.dvRs.addLineup()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.dvRs.setDvrPreferences()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.dvRs.stopDvrReload()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.dvRs.reloadGuide()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.dvRs.tuneChannel()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.dvRs.removeDeviceFromDvr()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.dvRs.addDeviceToDvr()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.epg.computeChannelMap()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.epg.getChannels()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.epg.getLineup()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.epg.getLineupChannels()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.epg.getCountriesLineups()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.epg.getCountryRegions()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.epg.listLineups()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.liveTv.getLiveTvSession()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.liveTv.getSessionPlaylistIndex()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.liveTv.getSessionSegment()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.log.writeMessage()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.log.enablePapertrail()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.devices.getAvailableGrabbers()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.devices.addDevice()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.devices.removeDevice()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.devices.getDeviceDetails()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.devices.modifyDevice()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.devices.setChannelmap()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.devices.getDevicesChannels()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.devices.setDevicePreferences()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.devices.stopScan()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.devices.scan()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.devices.getThumb()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.provider.addProvider()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.provider.deleteMediaProvider()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.getAllSubscriptions()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.createSubscription()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.getTemplate()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.cancelGrab()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.deleteSubscription()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.getSubscription()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.editSubscriptionPreferences()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.subscriptions.reorderSubscription()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.transcoder.transcodeImage()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.transcoder.makeDecision()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.transcoder.triggerFallback()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.transcoder.transcodeSubtitles()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.transcoder.startTranscodeSession()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.playlist.listPlaylists()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.playlist.getPlaylist()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.playlist.getPlaylistItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.createPlaylist()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.uploadPlaylist()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.deletePlaylist()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.updatePlaylist()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.getPlaylistGenerators()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.clearPlaylistItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.addPlaylistItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.deletePlaylistItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.getPlaylistGenerator()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.modifyPlaylistGenerator()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.getPlaylistGeneratorItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.movePlaylistItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryPlaylists.refreshPlaylist()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.createPlayQueue()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.getPlayQueue()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.addToPlayQueue()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.clearPlayQueue()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.resetPlayQueue()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.shuffle()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.unshuffle()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.deletePlayQueueItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.playQueue.movePlayQueueItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.ultraBlur.getColors()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.ultraBlur.getImage()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.status.listPlaybackHistory()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.status.terminateSession()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.status.deleteHistory()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.status.getHistoryItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.updater.applyUpdates()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.updater.checkUpdates()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.getCollectionItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.getMetadataItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.getAlbums()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.listContent()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.getAllLeaves()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.getArts()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.getCategories()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.getCluster()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.getSonicPath()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.getFolders()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.listMoments()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.getSonicallySimilar()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.content.getCollectionImage()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryCollections.addCollectionItems()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryCollections.deleteCollectionItem()`:  `request` **Changed** **Breaking** ⚠️
* `plex-api.libraryCollections.moveCollectionItem()`:  `request` **Changed** **Breaking** ⚠️
2025-10-12 05:53:52 +00:00
speakeasybot
cf2cf981be ## Typescript SDK Changes Detected:
* `plex-api.butler.startTask()`: 
  *  `request` **Changed** **Breaking** ⚠️
  *  `error` **Changed** **Breaking** ⚠️
* `plex-api.butler.stopTask()`: 
  *  `request` **Changed** **Breaking** ⚠️
  *  `error` **Changed** **Breaking** ⚠️
* `plex-api.updater.applyUpdates()`: 
  *  `request` **Changed** **Breaking** ⚠️
  *  `error` **Changed** **Breaking** ⚠️
* `plex-api.general.getServerInfo()`: **Added**
* `plex-api.general.getIdentity()`: **Added**
* `plex-api.general.getSourceConnectionInformation()`: **Added**
* `plex-api.general.getTransientToken()`: **Added**
* `plex-api.events.getNotifications()`: **Added**
* `plex-api.events.connectWebSocket()`: **Added**
* `plex-api.preferences.getAllPreferences()`: **Added**
* `plex-api.preferences.setPreferences()`: **Added**
* `plex-api.preferences.getPreference()`: **Added**
* `plex-api.rate.setRating()`: **Added**
* `plex-api.timeline.markPlayed()`: **Added**
* `plex-api.timeline.report()`: **Added**
* `plex-api.timeline.unscrobble()`: **Added**
* `plex-api.activities.listActivities()`: **Added**
* `plex-api.activities.cancelActivity()`: **Added**
* `plex-api.butler.stopTasks()`: **Added**
* `plex-api.butler.getTasks()`: **Added**
* `plex-api.butler.startTasks()`: **Added**
* `plex-api.downloadQueue.createDownloadQueue()`: **Added**
* `plex-api.downloadQueue.getDownloadQueue()`: **Added**
* `plex-api.downloadQueue.addDownloadQueueItems()`: **Added**
* `plex-api.downloadQueue.listDownloadQueueItems()`: **Added**
* `plex-api.downloadQueue.getItemDecision()`: **Added**
* `plex-api.downloadQueue.getDownloadQueueMedia()`: **Added**
* `plex-api.downloadQueue.removeDownloadQueueItems()`: **Added**
* `plex-api.downloadQueue.getDownloadQueueItems()`: **Added**
* `plex-api.downloadQueue.restartProcessingDownloadQueueItems()`: **Added**
* `plex-api.hubs.getAllHubs()`: **Added**
* `plex-api.hubs.getContinueWatching()`: **Added**
* `plex-api.hubs.getHubItems()`: **Added**
* `plex-api.hubs.getPromotedHubs()`: **Added**
* `plex-api.hubs.getMetadataHubs()`: **Added**
* `plex-api.hubs.getPostplayHubs()`: **Added**
* `plex-api.hubs.getRelatedHubs()`: **Added**
* `plex-api.hubs.getSectionHubs()`: **Added**
* `plex-api.hubs.resetSectionDefaults()`: **Added**
* `plex-api.hubs.listHubs()`: **Added**
* `plex-api.hubs.createCustomHub()`: **Added**
* `plex-api.hubs.moveHub()`: **Added**
* `plex-api.hubs.deleteCustomHub()`: **Added**
* `plex-api.hubs.updateHubVisibility()`: **Added**
* `plex-api.search.searchHubs()`: **Added**
* `plex-api.search.voiceSearchHubs()`: **Added**
* `plex-api.library.getLibraryItems()`: **Added**
* `plex-api.library.deleteCaches()`: **Added**
* `plex-api.library.cleanBundles()`: **Added**
* `plex-api.library.ingestTransientItem()`: **Added**
* `plex-api.library.getLibraryMatches()`: **Added**
* `plex-api.library.optimizeDatabase()`: **Added**
* `plex-api.library.getRandomArtwork()`: **Added**
* `plex-api.library.getSections()`: **Added**
* `plex-api.library.addSection()`: **Added**
* `plex-api.library.stopAllRefreshes()`: **Added**
* `plex-api.library.getSectionsPrefs()`: **Added**
* `plex-api.library.refreshSectionsMetadata()`: **Added**
* `plex-api.library.getTags()`: **Added**
* `plex-api.library.deleteMetadataItem()`: **Added**
* `plex-api.library.editMetadataItem()`: **Added**
* `plex-api.library.detectAds()`: **Added**
* `plex-api.library.getAllItemLeaves()`: **Added**
* `plex-api.library.analyzeMetadata()`: **Added**
* `plex-api.library.generateThumbs()`: **Added**
* `plex-api.library.detectCredits()`: **Added**
* `plex-api.library.getExtras()`: **Added**
* `plex-api.library.addExtras()`: **Added**
* `plex-api.library.getFile()`: **Added**
* `plex-api.library.startBifGeneration()`: **Added**
* `plex-api.library.detectIntros()`: **Added**
* `plex-api.library.createMarker()`: **Added**
* `plex-api.library.matchItem()`: **Added**
* `plex-api.library.listMatches()`: **Added**
* `plex-api.library.mergeItems()`: **Added**
* `plex-api.library.listSonicallySimilar()`: **Added**
* `plex-api.library.setItemPreferences()`: **Added**
* `plex-api.library.refreshItemsMetadata()`: **Added**
* `plex-api.library.getRelatedItems()`: **Added**
* `plex-api.library.listSimilar()`: **Added**
* `plex-api.library.splitItem()`: **Added**
* `plex-api.library.addSubtitles()`: **Added**
* `plex-api.library.getItemTree()`: **Added**
* `plex-api.library.unmatch()`: **Added**
* `plex-api.library.listTopUsers()`: **Added**
* `plex-api.library.detectVoiceActivity()`: **Added**
* `plex-api.library.getAugmentationStatus()`: **Added**
* `plex-api.library.setStreamSelection()`: **Added**
* `plex-api.library.getPerson()`: **Added**
* `plex-api.library.listPersonMedia()`: **Added**
* `plex-api.library.deleteLibrarySection()`: **Added**
* `plex-api.library.getLibraryDetails()`: **Added**
* `plex-api.library.editSection()`: **Added**
* `plex-api.library.updateItems()`: **Added**
* `plex-api.library.startAnalysis()`: **Added**
* `plex-api.library.autocomplete()`: **Added**
* `plex-api.library.getCollections()`: **Added**
* `plex-api.library.getCommon()`: **Added**
* `plex-api.library.emptyTrash()`: **Added**
* `plex-api.library.getSectionFilters()`: **Added**
* `plex-api.library.getFirstCharacters()`: **Added**
* `plex-api.library.deleteIndexes()`: **Added**
* `plex-api.library.deleteIntros()`: **Added**
* `plex-api.library.getSectionPreferences()`: **Added**
* `plex-api.library.setSectionPreferences()`: **Added**
* `plex-api.library.cancelRefresh()`: **Added**
* `plex-api.library.refreshSection()`: **Added**
* `plex-api.library.getAvailableSorts()`: **Added**
* `plex-api.library.getStreamLevels()`: **Added**
* `plex-api.library.getStreamLoudness()`: **Added**
* `plex-api.library.getChapterImage()`: **Added**
* `plex-api.library.setItemArtwork()`: **Added**
* `plex-api.library.updateItemArtwork()`: **Added**
* `plex-api.library.deleteMarker()`: **Added**
* `plex-api.library.editMarker()`: **Added**
* `plex-api.library.deleteMediaItem()`: **Added**
* `plex-api.library.getPartIndex()`: **Added**
* `plex-api.library.deleteCollection()`: **Added**
* `plex-api.library.getSectionImage()`: **Added**
* `plex-api.library.deleteStream()`: **Added**
* `plex-api.library.getStream()`: **Added**
* `plex-api.library.setStreamOffset()`: **Added**
* `plex-api.library.getItemArtwork()`: **Added**
* `plex-api.library.getMediaPart()`: **Added**
* `plex-api.library.getImageFromBif()`: **Added**
* `plex-api.collections.createCollection()`: **Added**
* `plex-api.dvRs.listDvRs()`: **Added**
* `plex-api.dvRs.createDvr()`: **Added**
* `plex-api.dvRs.deleteDvr()`: **Added**
* `plex-api.dvRs.getDvr()`: **Added**
* `plex-api.dvRs.deleteLineup()`: **Added**
* `plex-api.dvRs.addLineup()`: **Added**
* `plex-api.dvRs.setDvrPreferences()`: **Added**
* `plex-api.dvRs.stopDvrReload()`: **Added**
* `plex-api.dvRs.reloadGuide()`: **Added**
* `plex-api.dvRs.tuneChannel()`: **Added**
* `plex-api.dvRs.removeDeviceFromDvr()`: **Added**
* `plex-api.dvRs.addDeviceToDvr()`: **Added**
* `plex-api.epg.computeChannelMap()`: **Added**
* `plex-api.epg.getChannels()`: **Added**
* `plex-api.epg.getCountries()`: **Added**
* `plex-api.epg.getAllLanguages()`: **Added**
* `plex-api.epg.getLineup()`: **Added**
* `plex-api.epg.getLineupChannels()`: **Added**
* `plex-api.epg.getCountriesLineups()`: **Added**
* `plex-api.epg.getCountryRegions()`: **Added**
* `plex-api.epg.listLineups()`: **Added**
* `plex-api.liveTv.getSessions()`: **Added**
* `plex-api.liveTv.getLiveTvSession()`: **Added**
* `plex-api.liveTv.getSessionPlaylistIndex()`: **Added**
* `plex-api.liveTv.getSessionSegment()`: **Added**
* `plex-api.log.writeLog()`: **Added**
* `plex-api.log.writeMessage()`: **Added**
* `plex-api.log.enablePapertrail()`: **Added**
* `plex-api.devices.getAvailableGrabbers()`: **Added**
* `plex-api.devices.listDevices()`: **Added**
* `plex-api.devices.addDevice()`: **Added**
* `plex-api.devices.discoverDevices()`: **Added**
* `plex-api.devices.removeDevice()`: **Added**
* `plex-api.devices.getDeviceDetails()`: **Added**
* `plex-api.devices.modifyDevice()`: **Added**
* `plex-api.devices.setChannelmap()`: **Added**
* `plex-api.devices.getDevicesChannels()`: **Added**
* `plex-api.devices.setDevicePreferences()`: **Added**
* `plex-api.devices.stopScan()`: **Added**
* `plex-api.devices.scan()`: **Added**
* `plex-api.devices.getThumb()`: **Added**
* `plex-api.provider.listProviders()`: **Added**
* `plex-api.provider.addProvider()`: **Added**
* `plex-api.provider.refreshProviders()`: **Added**
* `plex-api.provider.deleteMediaProvider()`: **Added**
* `plex-api.subscriptions.getAllSubscriptions()`: **Added**
* `plex-api.subscriptions.createSubscription()`: **Added**
* `plex-api.subscriptions.processSubscriptions()`: **Added**
* `plex-api.subscriptions.getScheduledRecordings()`: **Added**
* `plex-api.subscriptions.getTemplate()`: **Added**
* `plex-api.subscriptions.cancelGrab()`: **Added**
* `plex-api.subscriptions.deleteSubscription()`: **Added**
* `plex-api.subscriptions.getSubscription()`: **Added**
* `plex-api.subscriptions.editSubscriptionPreferences()`: **Added**
* `plex-api.subscriptions.reorderSubscription()`: **Added**
* `plex-api.transcoder.transcodeImage()`: **Added**
* `plex-api.transcoder.makeDecision()`: **Added**
* `plex-api.transcoder.triggerFallback()`: **Added**
* `plex-api.transcoder.transcodeSubtitles()`: **Added**
* `plex-api.transcoder.startTranscodeSession()`: **Added**
* `plex-api.playlist.listPlaylists()`: **Added**
* `plex-api.playlist.getPlaylist()`: **Added**
* `plex-api.playlist.getPlaylistItems()`: **Added**
* `plex-api.libraryPlaylists.createPlaylist()`: **Added**
* `plex-api.libraryPlaylists.uploadPlaylist()`: **Added**
* `plex-api.libraryPlaylists.deletePlaylist()`: **Added**
* `plex-api.libraryPlaylists.updatePlaylist()`: **Added**
* `plex-api.libraryPlaylists.getPlaylistGenerators()`: **Added**
* `plex-api.libraryPlaylists.clearPlaylistItems()`: **Added**
* `plex-api.libraryPlaylists.addPlaylistItems()`: **Added**
* `plex-api.libraryPlaylists.deletePlaylistItem()`: **Added**
* `plex-api.libraryPlaylists.getPlaylistGenerator()`: **Added**
* `plex-api.libraryPlaylists.modifyPlaylistGenerator()`: **Added**
* `plex-api.libraryPlaylists.getPlaylistGeneratorItems()`: **Added**
* `plex-api.libraryPlaylists.movePlaylistItem()`: **Added**
* `plex-api.libraryPlaylists.refreshPlaylist()`: **Added**
* `plex-api.playQueue.createPlayQueue()`: **Added**
* `plex-api.playQueue.getPlayQueue()`: **Added**
* `plex-api.playQueue.addToPlayQueue()`: **Added**
* `plex-api.playQueue.clearPlayQueue()`: **Added**
* `plex-api.playQueue.resetPlayQueue()`: **Added**
* `plex-api.playQueue.shuffle()`: **Added**
* `plex-api.playQueue.unshuffle()`: **Added**
* `plex-api.playQueue.deletePlayQueueItem()`: **Added**
* `plex-api.playQueue.movePlayQueueItem()`: **Added**
* `plex-api.ultraBlur.getColors()`: **Added**
* `plex-api.ultraBlur.getImage()`: **Added**
* `plex-api.status.listSessions()`: **Added**
* `plex-api.status.getBackgroundTasks()`: **Added**
* `plex-api.status.listPlaybackHistory()`: **Added**
* `plex-api.status.terminateSession()`: **Added**
* `plex-api.status.deleteHistory()`: **Added**
* `plex-api.status.getHistoryItem()`: **Added**
* `plex-api.updater.checkUpdates()`: **Added**
* `plex-api.updater.getUpdatesStatus()`: **Added**
* `plex-api.content.getCollectionItems()`: **Added**
* `plex-api.content.getMetadataItem()`: **Added**
* `plex-api.content.getAlbums()`: **Added**
* `plex-api.content.listContent()`: **Added**
* `plex-api.content.getAllLeaves()`: **Added**
* `plex-api.content.getArts()`: **Added**
* `plex-api.content.getCategories()`: **Added**
* `plex-api.content.getCluster()`: **Added**
* `plex-api.content.getSonicPath()`: **Added**
* `plex-api.content.getFolders()`: **Added**
* `plex-api.content.listMoments()`: **Added**
* `plex-api.content.getSonicallySimilar()`: **Added**
* `plex-api.content.getCollectionImage()`: **Added**
* `plex-api.libraryCollections.addCollectionItems()`: **Added**
* `plex-api.libraryCollections.deleteCollectionItem()`: **Added**
* `plex-api.libraryCollections.moveCollectionItem()`: **Added**
* `plex-api.server.getServerCapabilities()`: **Deleted** **Breaking** ⚠️
* `plex-api.server.getServerPreferences()`: **Deleted** **Breaking** ⚠️
* `plex-api.server.getAvailableClients()`: **Deleted** **Breaking** ⚠️
* `plex-api.server.getDevices()`: **Deleted** **Breaking** ⚠️
* `plex-api.server.getServerIdentity()`: **Deleted** **Breaking** ⚠️
* `plex-api.server.getMyPlexAccount()`: **Deleted** **Breaking** ⚠️
* `plex-api.server.getResizedPhoto()`: **Deleted** **Breaking** ⚠️
* `plex-api.server.getMediaProviders()`: **Deleted** **Breaking** ⚠️
* `plex-api.server.getServerList()`: **Deleted** **Breaking** ⚠️
* `plex-api.media.markPlayed()`: **Deleted** **Breaking** ⚠️
* `plex-api.media.markUnplayed()`: **Deleted** **Breaking** ⚠️
* `plex-api.media.updatePlayProgress()`: **Deleted** **Breaking** ⚠️
* `plex-api.media.getBannerImage()`: **Deleted** **Breaking** ⚠️
* `plex-api.media.getThumbImage()`: **Deleted** **Breaking** ⚠️
* `plex-api.video.getTimeline()`: **Deleted** **Breaking** ⚠️
* `plex-api.video.startUniversalTranscode()`: **Deleted** **Breaking** ⚠️
* `plex-api.activities.getServerActivities()`: **Deleted** **Breaking** ⚠️
* `plex-api.activities.cancelServerActivities()`: **Deleted** **Breaking** ⚠️
* `plex-api.butler.getButlerTasks()`: **Deleted** **Breaking** ⚠️
* `plex-api.butler.startAllTasks()`: **Deleted** **Breaking** ⚠️
* `plex-api.butler.stopAllTasks()`: **Deleted** **Breaking** ⚠️
* `plex-api.plex.getCompanionsData()`: **Deleted** **Breaking** ⚠️
* `plex-api.plex.getUserFriends()`: **Deleted** **Breaking** ⚠️
* `plex-api.plex.getGeoData()`: **Deleted** **Breaking** ⚠️
* `plex-api.plex.getHomeData()`: **Deleted** **Breaking** ⚠️
* `plex-api.plex.getServerResources()`: **Deleted** **Breaking** ⚠️
* `plex-api.plex.getPin()`: **Deleted** **Breaking** ⚠️
* `plex-api.plex.getTokenByPinId()`: **Deleted** **Breaking** ⚠️
* `plex-api.hubs.getGlobalHubs()`: **Deleted** **Breaking** ⚠️
* `plex-api.hubs.getRecentlyAdded()`: **Deleted** **Breaking** ⚠️
* `plex-api.hubs.getLibraryHubs()`: **Deleted** **Breaking** ⚠️
* `plex-api.search.performSearch()`: **Deleted** **Breaking** ⚠️
* `plex-api.search.performVoiceSearch()`: **Deleted** **Breaking** ⚠️
* `plex-api.search.getSearchResults()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getFileHash()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getRecentlyAddedLibrary()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getAllLibraries()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getLibraryDetails()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.deleteLibrary()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getLibraryItems()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getLibrarySectionsAll()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getRefreshLibraryMetadata()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getSearchLibrary()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getGenresLibrary()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getCountriesLibrary()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getActorsLibrary()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getSearchAllLibraries()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getMediaMetaData()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getMediaArts()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.postMediaArts()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getMediaPosters()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.postMediaPoster()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getMetadataChildren()`: **Deleted** **Breaking** ⚠️
* `plex-api.library.getTopWatchedContent()`: **Deleted** **Breaking** ⚠️
* `plex-api.watchlist.getWatchList()`: **Deleted** **Breaking** ⚠️
* `plex-api.log.logLine()`: **Deleted** **Breaking** ⚠️
* `plex-api.log.logMultiLine()`: **Deleted** **Breaking** ⚠️
* `plex-api.log.enablePaperTrail()`: **Deleted** **Breaking** ⚠️
* `plex-api.playlists.createPlaylist()`: **Deleted** **Breaking** ⚠️
* `plex-api.playlists.getPlaylists()`: **Deleted** **Breaking** ⚠️
* `plex-api.playlists.getPlaylist()`: **Deleted** **Breaking** ⚠️
* `plex-api.playlists.deletePlaylist()`: **Deleted** **Breaking** ⚠️
* `plex-api.playlists.updatePlaylist()`: **Deleted** **Breaking** ⚠️
* `plex-api.playlists.getPlaylistContents()`: **Deleted** **Breaking** ⚠️
* `plex-api.playlists.clearPlaylistContents()`: **Deleted** **Breaking** ⚠️
* `plex-api.playlists.addPlaylistContents()`: **Deleted** **Breaking** ⚠️
* `plex-api.playlists.uploadPlaylist()`: **Deleted** **Breaking** ⚠️
* `plex-api.authentication.getTransientToken()`: **Deleted** **Breaking** ⚠️
* `plex-api.authentication.getSourceConnectionInformation()`: **Deleted** **Breaking** ⚠️
* `plex-api.authentication.getTokenDetails()`: **Deleted** **Breaking** ⚠️
* `plex-api.authentication.postUsersSignInData()`: **Deleted** **Breaking** ⚠️
* `plex-api.statistics.getStatistics()`: **Deleted** **Breaking** ⚠️
* `plex-api.statistics.getResourcesStatistics()`: **Deleted** **Breaking** ⚠️
* `plex-api.statistics.getBandwidthStatistics()`: **Deleted** **Breaking** ⚠️
* `plex-api.sessions.getSessions()`: **Deleted** **Breaking** ⚠️
* `plex-api.sessions.getSessionHistory()`: **Deleted** **Breaking** ⚠️
* `plex-api.sessions.getTranscodeSessions()`: **Deleted** **Breaking** ⚠️
* `plex-api.sessions.stopTranscodeSession()`: **Deleted** **Breaking** ⚠️
* `plex-api.updater.getUpdateStatus()`: **Deleted** **Breaking** ⚠️
* `plex-api.updater.checkForUpdates()`: **Deleted** **Breaking** ⚠️
* `plex-api.users.getUsers()`: **Deleted** **Breaking** ⚠️
2025-10-12 05:27:01 +00:00
Luke Hagar
de0bc5c344 Enable various name resolution and security fixes 2025-10-11 21:29:54 -05:00
Luke Hagar
c31a963aa6 Update input location for plexapi source 2025-10-11 21:16:22 -05:00
Luke Hagar
faffbfd137 Delete .github/workflows/publish-jsr.yaml 2025-10-11 21:15:25 -05:00
Luke Hagar
2853ce6b54 Enhance SDK generation workflow with publishing
Updated workflow to include publishing step to NPM and JSR.
2025-10-11 21:15:16 -05:00
speakeasybot
ed63eb13b9 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.615.2 2025-09-15 00:13:35 +00:00
speakeasybot
442b11c11a ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.598.3 2025-08-07 00:14:07 +00:00
speakeasybot
c56a0f5d3c ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.598.0 2025-08-06 00:13:53 +00:00
speakeasybot
fe48f93ccb ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.580.1 2025-07-10 00:13:20 +00:00
speakeasybot
a7ec77cd04 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.557.0 2025-06-09 00:13:46 +00:00
speakeasybot
2b38478255 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.555.2 2025-06-04 00:13:03 +00:00
speakeasybot
6bd12d8759 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.542.1 2025-05-05 00:13:14 +00:00
speakeasybot
891a7d39a1 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.541.2 2025-05-01 00:13:53 +00:00
speakeasybot
763aa8e800 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.535.1 2025-04-19 00:12:04 +00:00
speakeasybot
7a950ea773 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.531.4 2025-04-14 00:12:56 +00:00
speakeasybot
379a408d74 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.529.1 2025-04-06 00:12:51 +00:00
speakeasybot
2712820397 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.528.1 2025-04-03 00:12:07 +00:00
speakeasybot
c895213ae8 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.526.6 2025-03-31 19:44:01 +00:00
Luke Hagar
c473c9d326 Update workflow.yaml 2025-03-31 14:41:40 -05:00
speakeasybot
3c13bba9de ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.526.6 2025-03-31 19:35:21 +00:00
speakeasybot
650c5043ef ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.526.6 2025-03-31 16:33:24 +00:00
Luke Hagar
0234804578 correcting label override key value 2025-03-31 11:30:53 -05:00
Luke Hagar
60d913c8f9 adjusting codesample labels 2025-03-28 16:58:29 -05:00
speakeasybot
8d9f4bbaf1 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.513.4 2025-03-09 00:10:48 +00:00
speakeasybot
5d57cd7c34 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.513.2 2025-03-07 00:11:26 +00:00
speakeasybot
1a8e227874 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.487.1 2025-02-10 00:11:39 +00:00
speakeasybot
8360d057ab ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.487.0 2025-02-07 00:11:14 +00:00
speakeasybot
18b64727c3 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.484.1 2025-02-06 00:11:16 +00:00
speakeasybot
3152372037 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.484.1 2025-02-05 00:11:28 +00:00
speakeasybot
13cd8a7fe5 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.476.1 2025-01-27 00:11:19 +00:00
speakeasybot
cdcdc0ca8e ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.474.0 2025-01-24 00:11:07 +00:00
speakeasybot
b03cc6a609 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.459.2 2024-12-22 00:12:06 +00:00
speakeasybot
4e989e0de3 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.456.1 2024-12-20 16:02:41 +00:00
Luke Hagar
c10e011a68 adjusted workflow 2024-12-20 09:59:40 -06:00
speakeasybot
7e3dca8466 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.405.6 2024-12-16 22:20:26 +00:00
speakeasybot
8a2d3e04ab ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.405.6 2024-11-14 00:11:57 +00:00
speakeasybot
6c8a73ae84 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.405.6 2024-11-11 20:30:45 +00:00
speakeasybot
c839d9f6c7 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.406.0 2024-10-03 12:29:09 +00:00
speakeasybot
77b0ef9507 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.406.0 2024-10-03 00:11:46 +00:00
speakeasybot
1cfbd17f28 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.405.6 2024-10-02 02:30:07 +00:00
speakeasybot
2492807c65 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.405.6 2024-10-01 15:37:08 +00:00
speakeasybot
ead0a8773c ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.405.6 2024-10-01 00:12:18 +00:00
speakeasybot
e254f82e06 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.398.0 2024-09-17 00:10:26 +00:00
Luke Hagar
a4369c999a Update workflow.yaml 2024-09-16 13:14:07 -05:00
speakeasybot
c50b85f29a ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.397.2 2024-09-16 18:01:31 +00:00
Luke Hagar
496ebda695 Update workflow.yaml 2024-09-16 12:57:23 -05:00
speakeasybot
d436fc3452 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.396.9 2024-09-16 00:11:44 +00:00
speakeasybot
99cdf6effe ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.396.9 2024-09-15 00:12:31 +00:00
speakeasybot
fa2ba82f62 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.396.9 2024-09-14 00:10:58 +00:00
speakeasybot
fd8095a8df ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.396.6 2024-09-13 00:11:18 +00:00
speakeasybot
9911164ab0 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.396.2 2024-09-12 00:11:23 +00:00
speakeasybot
ffedf47cad ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.395.1 2024-09-11 00:11:04 +00:00
speakeasybot
39d3a40524 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.394.0 2024-09-10 00:11:07 +00:00
speakeasybot
8dc802ca50 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.392.1 2024-09-09 00:13:27 +00:00
speakeasybot
5465f1e74c ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.392.1 2024-09-08 17:41:10 +00:00
Luke Hagar
2d100b8e75 Merge branch 'main' of https://github.com/LukeHagar/plexjs 2024-09-08 03:27:27 +00:00
Luke Hagar
0533836427 altered JSR publishing flow 2024-09-08 03:27:03 +00:00
speakeasybot
f0b08b9bd9 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.392.1 2024-09-08 03:24:22 +00:00
Luke Hagar
244adab882 Normalized imports, regenerated 2024-09-08 03:06:14 +00:00
2287 changed files with 213413 additions and 81610 deletions

View File

@@ -1,28 +0,0 @@
/* eslint-env node */
module.exports = {
root: true,
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:import/recommended",
"plugin:import/typescript",
],
parser: "@typescript-eslint/parser",
plugins: ["@typescript-eslint"],
settings: {
"import/resolver": {
typescript: true,
node: true,
},
},
rules: {
// Handled by typescript compiler
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/no-explicit-any": "off",
"import/no-named-as-default-member": "off",
"import/no-default-export": "error",
},
};

View File

@@ -1,33 +0,0 @@
name: Publish to JSR
permissions:
checks: write
contents: write
pull-requests: write
statuses: write
on:
workflow_dispatch:
push:
branches:
- main
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Publish package
run: npx jsr publish

54
.github/workflows/sdk_generation.yaml vendored Normal file
View File

@@ -0,0 +1,54 @@
name: Generate and Publish to NPM and JSR
permissions:
checks: write
contents: write
pull-requests: write
statuses: write
on:
workflow_dispatch:
inputs:
force:
description: Force generation of SDKs
type: boolean
default: false
set_version:
description: optionally set a specific SDK version
type: string
schedule:
- cron: 0 0 * * *
jobs:
generate:
uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15
with:
force: ${{ github.event.inputs.force }}
mode: direct
set_version: ${{ github.event.inputs.set_version }}
speakeasy_version: latest
secrets:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
npm_token: ${{ secrets.NPM_TOKEN }}
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}
publish:
runs-on: ubuntu-latest
needs: generate
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: 20
- name: Install dependencies
run: npm install
- name: Publish package
run: npx jsr publish

View File

@@ -1,31 +0,0 @@
name: Generate
permissions:
checks: write
contents: write
pull-requests: write
statuses: write
"on":
workflow_dispatch:
inputs:
force:
description: Force generation of SDKs
type: boolean
default: false
push_code_samples_only:
description: Force push only code samples from SDK generation
type: boolean
default: false
schedule:
- cron: 0 0 * * *
jobs:
generate:
uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15
with:
force: ${{ github.event.inputs.force }}
mode: direct
push_code_samples_only: ${{ fromJSON(github.event.inputs.push_code_samples_only != '' && github.event.inputs.push_code_samples_only || 'false') }}
speakeasy_version: latest
secrets:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
npm_token: ${{ secrets.NPM_TOKEN }}
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}

View File

@@ -1,20 +0,0 @@
name: Speakeasy Tagging
permissions:
checks: write
contents: write
pull-requests: write
statuses: write
"on":
push:
branches:
- main
paths: []
workflow_dispatch: {}
jobs:
tag:
uses: speakeasy-api/sdk-generation-action/.github/workflows/tag.yaml@v15
with:
registry_tags: main
secrets:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}

16
.gitignore vendored
View File

@@ -1,3 +1,19 @@
/examples/node_modules
.env
.env.local
.env.*.local
.DS_Store
**/.speakeasy/temp/
**/.speakeasy/logs/
.DS_Store
/mcp-server
/bin
/.eslintcache
/.speakeasy/reports
/react-query
/sdk/models/errors
/sdk/types
/__tests__
/funcs
/core.*
/esm

View File

@@ -1,9 +1,15 @@
**/*
!/FUNCTIONS.md
!/RUNTIMES.md
!/REACT_QUERY.md
!/**/*.ts
!/**/*.js
!/**/*.mjs
!/**/*.json
!/**/*.map
/.eslintrc.js
/eslint.config.mjs
/cjs
/.tshy
/.tshy-*
/__tests__

File diff suppressed because one or more lines are too long

View File

@@ -4,38 +4,75 @@ generation:
maintainOpenAPIOrder: true
usageSnippets:
optionalPropertyRendering: withExample
sdkInitStyle: constructor
useClassNamesForArrayFields: true
fixes:
nameResolutionDec2023: true
nameResolutionFeb2025: true
parameterOrderingFeb2024: true
requestResponseComponentNamesFeb2024: true
securityFeb2025: true
sharedErrorComponentsApr2025: true
auth:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: false
hoistGlobalSecurity: true
schemas:
allOfMergeStrategy: shallowMerge
requestBodyFieldName: ""
tests:
generateTests: true
generateNewTests: true
skipResponseBodyAssertions: false
typescript:
version: 0.20.0
version: 0.44.1
acceptHeaderEnum: true
additionalDependencies:
dependencies: {}
devDependencies: {}
peerDependencies: {}
additionalPackageJSON: {}
additionalScripts: {}
alwaysIncludeInboundAndOutbound: false
author: LukeHagar
baseErrorName: PlexAPIError
clientServerStatusCodesAsErrors: true
constFieldsAlwaysOptional: true
defaultErrorName: SDKError
enableCustomCodeRegions: false
enableMCPServer: false
enableReactQuery: false
enumFormat: enum
exportZodModelNamespace: false
flattenGlobalSecurity: true
flatteningOrder: body-first
formStringArrayEncodeMode: encoded-string
forwardCompatibleEnumsByDefault: true
forwardCompatibleUnionsByDefault: tagged-only
generateExamples: true
imports:
option: openapi
paths:
callbacks: ""
errors: ""
operations: ""
shared: ""
webhooks: ""
callbacks: models/callbacks
errors: models/errors
operations: models/operations
shared: models/shared
webhooks: models/webhooks
inferUnionDiscriminators: true
inputModelSuffix: input
jsonpath: rfc9535
laxMode: lax
maxMethodParams: 4
methodArguments: require-security-and-request
modelPropertyCasing: camel
moduleFormat: commonjs
multipartArrayFormat: legacy
outputModelSuffix: output
packageName: '@lukehagar/plexjs'
responseFormat: envelope
responseFormat: flat
sseFlatResponse: false
templateVersion: v2
unionStrategy: populated-fields
usageSDKInitImports: []
useIndexModules: true
zodVersion: v4

8019
.speakeasy/tests.arazzo.yaml Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,38 +1,47 @@
speakeasyVersion: 1.390.7
speakeasyVersion: 1.665.0
sources:
my-source:
sourceNamespace: my-source
sourceRevisionDigest: sha256:fff67c8d70fdb1711caf3e9c61cdc91a4c88ac98b3419c1d287db6ca95c7278b
sourceBlobDigest: sha256:235067aeeeba40f6a4b062d9b9e6816a6e1282023f9664b46cbc1af6495b4c53
sourceRevisionDigest: sha256:1b8840d540c66b58d1009ec2581fb18464158ec9aa00464eac05ba737f31207e
sourceBlobDigest: sha256:f7e2709f52370dff16c1851a7a4e44a89f2e978e9cae335bffc10625950b3bd9
tags:
- latest
- main
plexapi:
sourceNamespace: plexapi
sourceRevisionDigest: sha256:ace004a3b232e8ab9ca3d89f2da8e40470236e6d997073a16c3f8872d67a7383
sourceBlobDigest: sha256:993bfb796a3833b0a3b813ad12469ca34db94f23c2d15ae988a26b4d1ed80fbe
tags:
- latest
- speakeasy-sdk-regen-1764553715
- 1.1.1
targets:
plexjs:
source: my-source
sourceNamespace: my-source
sourceRevisionDigest: sha256:fff67c8d70fdb1711caf3e9c61cdc91a4c88ac98b3419c1d287db6ca95c7278b
sourceBlobDigest: sha256:235067aeeeba40f6a4b062d9b9e6816a6e1282023f9664b46cbc1af6495b4c53
source: plexapi
sourceNamespace: plexapi
sourceRevisionDigest: sha256:ace004a3b232e8ab9ca3d89f2da8e40470236e6d997073a16c3f8872d67a7383
sourceBlobDigest: sha256:993bfb796a3833b0a3b813ad12469ca34db94f23c2d15ae988a26b4d1ed80fbe
codeSamplesNamespace: code-samples-typescript-plexjs
codeSamplesRevisionDigest: sha256:18919b4d52e4482e8771f2e3657d74cae7f332e481471d177e5b248a9ffc99bd
outLocation: /github/workspace/repo
codeSamplesRevisionDigest: sha256:8e6f77ee0be9e54c36682ee6244983f9a69ce9a05a6a251f64df3f5fbd5bc08a
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
sources:
my-source:
plexapi:
inputs:
- location: https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-media-server-spec-dereferenced.yaml
- location: https://raw.githubusercontent.com/LukeHagar/plex-api-spec/refs/heads/main/plex-api-spec.yaml
registry:
location: registry.speakeasyapi.dev/lukehagar/lukehagar/my-source
location: registry.speakeasyapi.dev/plexapi/plexapi/plexapi
targets:
plexjs:
target: typescript
source: my-source
source: plexapi
publish:
npm:
token: $NPM_TOKEN
token: $npm_token
codeSamples:
output: codeSamples.yaml
registry:
location: registry.speakeasyapi.dev/lukehagar/lukehagar/code-samples-typescript-plexjs
location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-typescript-plexjs
labelOverride:
fixedValue: PlexJS

View File

@@ -1,19 +1,21 @@
workflowVersion: 1.0.0
speakeasyVersion: latest
sources:
my-source:
plexapi:
inputs:
- location: https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-media-server-spec-dereferenced.yaml
- location: https://raw.githubusercontent.com/LukeHagar/plex-api-spec/refs/heads/main/plex-api-spec.yaml
registry:
location: registry.speakeasyapi.dev/lukehagar/lukehagar/my-source
location: registry.speakeasyapi.dev/plexapi/plexapi/plexapi
targets:
plexjs:
target: typescript
source: my-source
source: plexapi
publish:
npm:
token: $NPM_TOKEN
token: $npm_token
codeSamples:
output: codeSamples.yaml
registry:
location: registry.speakeasyapi.dev/lukehagar/lukehagar/code-samples-typescript-plexjs
location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-typescript-plexjs
labelOverride:
fixedValue: PlexJS

View File

@@ -20,40 +20,65 @@ specific category of applications.
```typescript
import { PlexAPICore } from "@lukehagar/plexjs/core.js";
import { serverGetServerCapabilities } from "@lukehagar/plexjs/funcs/serverGetServerCapabilities.js";
import { SDKValidationError } from "@lukehagar/plexjs/models/sdkvalidationerror.js";
import { transcoderStartTranscodeSession } from "@lukehagar/plexjs/funcs/transcoderStartTranscodeSession.js";
import { Extension, StartTranscodeSessionLocation, StartTranscodeSessionProtocol } from "@lukehagar/plexjs/models/operations";
import { Accepts, AdvancedSubtitles, BoolInt, TranscodeType } from "@lukehagar/plexjs/models/shared";
// Use `PlexAPICore` for best tree-shaking performance.
// You can create one instance of it to use across an application.
const plexAPI = new PlexAPICore({
accessToken: "<YOUR_API_KEY_HERE>",
xPlexClientIdentifier: "gcgzw5rz2xovp84b4vha3a40",
accepts: Accepts.ApplicationXml,
clientIdentifier: "abc123",
product: "Plex for Roku",
version: "2.4.1",
platform: "Roku",
platformVersion: "4.3 build 1057",
device: "Roku 3",
model: "4200X",
deviceVendor: "Roku",
deviceName: "Living Room TV",
marketplace: "googlePlay",
token: "<YOUR_API_KEY_HERE>",
});
async function run() {
const res = await serverGetServerCapabilities(plexAPI);
switch (true) {
case res.ok:
// The success case will be handled outside of the switch block
break;
case res.error instanceof SDKValidationError:
// Pretty-print validation errors.
return console.log(res.error.pretty());
case res.error instanceof Error:
return console.log(res.error);
default:
// TypeScript's type checking will fail on the following line if the above
// cases were not exhaustive.
res.error satisfies never;
throw new Error("Assertion failed: expected error checks to be exhaustive: " + res.error);
const res = await transcoderStartTranscodeSession(plexAPI, {
transcodeType: TranscodeType.Music,
extension: Extension.Mpd,
advancedSubtitles: AdvancedSubtitles.Burn,
audioBoost: 50,
audioChannelCount: 5,
autoAdjustQuality: BoolInt.True,
autoAdjustSubtitle: BoolInt.True,
directPlay: BoolInt.True,
directStream: BoolInt.True,
directStreamAudio: BoolInt.True,
disableResolutionRotation: BoolInt.True,
hasMDE: BoolInt.True,
location: StartTranscodeSessionLocation.Wan,
mediaBufferSize: 102400,
mediaIndex: 0,
musicBitrate: 5000,
offset: 90.5,
partIndex: 0,
path: "/library/metadata/151671",
peakBitrate: 12000,
photoResolution: "1080x1080",
protocol: StartTranscodeSessionProtocol.Dash,
secondsPerSegment: 5,
subtitleSize: 50,
videoBitrate: 12000,
videoQuality: 50,
videoResolution: "1080x1080",
xPlexClientProfileExtra: "add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.frameRate&value=60&replace=true)+append-transcode-target-codec(type=videoProfile&context=streaming&videoCodec=h264%2Chevc&audioCodec=aac&protocol=dash)",
xPlexClientProfileName: "generic",
});
if (res.ok) {
const { value: result } = res;
console.log(result);
} else {
console.log("transcoderStartTranscodeSession failed:", res.error);
}
const { value: result } = res;
// Handle the result
console.log(result)
}
run();

1216
README.md

File diff suppressed because it is too large Load Diff

View File

@@ -948,4 +948,514 @@ Based on:
### Generated
- [typescript v0.20.0] .
### Releases
- [NPM v0.20.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.20.0 - .
- [NPM v0.20.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.20.0 - .
## 2024-09-08 03:21:12
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.392.1 (2.411.9) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.20.2] .
### Releases
- [NPM v0.20.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.20.2 - .
## 2024-09-08 17:37:50
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.392.1 (2.411.9) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.21.0] .
### Releases
- [NPM v0.21.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.21.0 - .
## 2024-09-09 00:09:42
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.392.1 (2.411.9) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.21.1] .
### Releases
- [NPM v0.21.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.21.1 - .
## 2024-09-10 00:09:01
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.394.0 (2.413.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.22.0] .
### Releases
- [NPM v0.22.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.22.0 - .
## 2024-09-11 00:09:01
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.395.1 (2.415.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.22.1] .
### Releases
- [NPM v0.22.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.22.1 - .
## 2024-09-12 00:09:10
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.396.2 (2.415.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.22.2] .
### Releases
- [NPM v0.22.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.22.2 - .
## 2024-09-13 00:09:09
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.396.6 (2.415.6) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.23.0] .
### Releases
- [NPM v0.23.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.23.0 - .
## 2024-09-14 00:08:56
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.396.9 (2.415.7) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.23.1] .
### Releases
- [NPM v0.23.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.23.1 - .
## 2024-09-15 00:10:25
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.396.9 (2.415.7) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.23.2] .
### Releases
- [NPM v0.23.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.23.2 - .
## 2024-09-16 00:09:42
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.396.9 (2.415.7) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.23.3] .
### Releases
- [NPM v0.23.3] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.23.3 - .
## 2024-09-16 17:59:12
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.397.2 (2.415.8) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.23.4] .
### Releases
- [NPM v0.23.4] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.23.4 - .
## 2024-09-17 00:08:25
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.398.0 (2.415.8) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.23.5] .
### Releases
- [NPM v0.23.5] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.23.5 - .
## 2024-10-01 00:10:47
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.405.6 (2.428.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.24.0] .
### Releases
- [NPM v0.24.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.24.0 - .
## 2024-10-01 15:35:33
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.405.6 (2.428.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.24.1] .
### Releases
- [NPM v0.24.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.24.1 - .
## 2024-10-02 02:28:25
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.405.6 (2.428.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.24.2] .
### Releases
- [NPM v0.24.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.24.2 - .
## 2024-10-03 00:09:30
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.406.0 (2.429.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.25.1] .
### Releases
- [NPM v0.25.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.25.1 - .
## 2024-10-03 12:26:50
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.406.0 (2.429.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.26.1] .
### Releases
- [NPM v0.26.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.26.1 - .
## 2024-11-11 20:28:21
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.405.6 (2.428.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.28.0] .
### Releases
- [NPM v0.28.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.28.0 - .
## 2024-11-14 00:09:39
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.405.6 (2.428.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.30.0] .
### Releases
- [NPM v0.30.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.30.0 - .
## 2024-12-16 22:17:52
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.405.6 (2.428.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.31.1] .
### Releases
- [NPM v0.31.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.31.1 - .
## 2024-12-20 16:01:16
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.456.1 (2.481.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.32.0] .
### Releases
- [NPM v0.32.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.32.0 - .
## 2024-12-22 00:10:48
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.459.2 (2.483.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.32.1] .
### Releases
- [NPM v0.32.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.32.1 - .
## 2025-01-24 00:09:35
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.474.0 (2.495.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.32.2] .
### Releases
- [NPM v0.32.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.32.2 - .
## 2025-01-27 00:09:48
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.476.1 (2.495.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.32.3] .
### Releases
- [NPM v0.32.3] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.32.3 - .
## 2025-02-05 00:09:58
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.484.1 (2.503.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.32.4] .
### Releases
- [NPM v0.32.4] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.32.4 - .
## 2025-02-06 00:09:46
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.484.1 (2.503.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.32.5] .
### Releases
- [NPM v0.32.5] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.32.5 - .
## 2025-02-07 00:09:41
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.487.0 (2.506.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.33.0] .
### Releases
- [NPM v0.33.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.33.0 - .
## 2025-02-10 00:10:04
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.487.1 (2.506.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.34.0] .
### Releases
- [NPM v0.34.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.34.0 - .
## 2025-03-07 00:09:55
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.513.2 (2.545.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.35.0] .
### Releases
- [NPM v0.35.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.35.0 - .
## 2025-03-09 00:09:12
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.513.4 (2.545.4) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.35.1] .
### Releases
- [NPM v0.35.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.35.1 - .
## 2025-03-31 16:31:46
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.526.6 (2.563.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.35.2] .
### Releases
- [NPM v0.35.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.35.2 - .
## 2025-03-31 19:33:46
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.526.6 (2.563.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.35.3] .
### Releases
- [NPM v0.35.3] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.35.3 - .
## 2025-03-31 19:42:25
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.526.6 (2.563.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.35.4] .
### Releases
- [NPM v0.35.4] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.35.4 - .
## 2025-04-03 00:10:29
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.528.1 (2.565.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.36.0] .
### Releases
- [NPM v0.36.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.36.0 - .
## 2025-04-06 00:11:19
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.529.1 (2.566.5) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.36.1] .
### Releases
- [NPM v0.36.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.36.1 - .
## 2025-04-14 00:11:23
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.531.4 (2.570.4) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.36.2] .
### Releases
- [NPM v0.36.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.36.2 - .
## 2025-04-19 00:10:19
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.535.1 (2.585.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.37.0] .
### Releases
- [NPM v0.37.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.37.0 - .
## 2025-05-01 00:12:16
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.541.2 (2.595.4) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.37.1] .
### Releases
- [NPM v0.37.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.37.1 - .
## 2025-05-05 00:11:37
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.542.1 (2.597.9) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.37.2] .
### Releases
- [NPM v0.37.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.37.2 - .
## 2025-06-04 00:11:21
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.555.2 (2.620.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.38.0] .
### Releases
- [NPM v0.38.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.38.0 - .
## 2025-06-09 00:12:06
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.557.0 (2.623.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.39.0] .
### Releases
- [NPM v0.39.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.39.0 - .
## 2025-07-10 00:11:39
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.580.1 (2.656.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.40.0] .
### Releases
- [NPM v0.40.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.40.0 - .
## 2025-08-06 00:12:14
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.598.0 (2.674.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.40.1] .
### Releases
- [NPM v0.40.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.40.1 - .
## 2025-08-07 00:12:28
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.598.3 (2.674.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.40.2] .
### Releases
- [NPM v0.40.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.40.2 - .
## 2025-09-15 00:11:38
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.615.2 (2.698.4) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.40.3] .
### Releases
- [NPM v0.40.3] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.40.3 - .
## 2025-10-12 05:24:41
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.636.3 (2.723.11) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.41.0] .
### Releases
- [NPM v0.41.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.41.0 - .
## 2025-10-12 05:51:28
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.636.3 (2.723.11) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.42.0] .
### Releases
- [NPM v0.42.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.42.0 - .
## 2025-10-12 07:25:38
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.636.3 (2.723.11) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.42.1] .
### Releases
- [NPM v0.42.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.42.1 - .
## 2025-11-13 00:11:23
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.656.1 (2.753.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.43.0] .
### Releases
- [NPM v0.43.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.43.0 - .
## 2025-12-01 00:13:55
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.665.0 (2.767.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.44.0] .
### Releases
- [NPM v0.44.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.44.0 - .
## 2025-12-01 01:48:15
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.665.0 (2.767.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.44.1] .
### Releases
- [NPM v0.44.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.44.1 - .

View File

@@ -1,10 +1,10 @@
# Supported JavaScript runtimes
This SDK is intended to be used in JavaScript runtimes that support the following features:
This SDK is intended to be used in JavaScript runtimes that support ECMAScript 2020 or newer. The SDK uses the following features:
* [Web Fetch API][web-fetch]
* [Web Streams API][web-streams] and in particular `ReadableStream`
* [Async iterables][async-iter] using `Symbol.asyncIterator`
- [Web Fetch API][web-fetch]
- [Web Streams API][web-streams] and in particular `ReadableStream`
- [Async iterables][async-iter] using `Symbol.asyncIterator`
[web-fetch]: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
[web-streams]: https://developer.mozilla.org/en-US/docs/Web/API/Streams_API
@@ -20,3 +20,29 @@ Runtime environments that are explicitly supported are:
- Note that Deno does not currently have native support for streaming file uploads backed by the filesystem ([issue link][deno-file-streaming])
[deno-file-streaming]: https://github.com/denoland/deno/issues/11018
## Recommended TypeScript compiler options
The following `tsconfig.json` options are recommended for projects using this
SDK in order to get static type support for features like async iterables,
streams and `fetch`-related APIs ([`for await...of`][for-await-of],
[`AbortSignal`][abort-signal], [`Request`][request], [`Response`][response] and
so on):
[for-await-of]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of
[abort-signal]: https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
[request]: https://developer.mozilla.org/en-US/docs/Web/API/Request
[response]: https://developer.mozilla.org/en-US/docs/Web/API/Response
```jsonc
{
"compilerOptions": {
"target": "es2020", // or higher
"lib": ["es2020", "dom", "dom.iterable"]
}
}
```
While `target` can be set to older ECMAScript versions, it may result in extra,
unnecessary compatibility code being generated if you are not targeting old
runtimes.

View File

@@ -1,17 +1,68 @@
<!-- Start SDK Example Usage [usage] -->
```typescript
import { PlexAPI } from "@lukehagar/plexjs";
import {
Extension,
StartTranscodeSessionLocation,
StartTranscodeSessionProtocol,
} from "@lukehagar/plexjs/models/operations";
import {
Accepts,
AdvancedSubtitles,
BoolInt,
TranscodeType,
} from "@lukehagar/plexjs/models/shared";
const plexAPI = new PlexAPI({
accessToken: "<YOUR_API_KEY_HERE>",
xPlexClientIdentifier: "gcgzw5rz2xovp84b4vha3a40",
accepts: Accepts.ApplicationXml,
clientIdentifier: "abc123",
product: "Plex for Roku",
version: "2.4.1",
platform: "Roku",
platformVersion: "4.3 build 1057",
device: "Roku 3",
model: "4200X",
deviceVendor: "Roku",
deviceName: "Living Room TV",
marketplace: "googlePlay",
token: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await plexAPI.server.getServerCapabilities();
const result = await plexAPI.transcoder.startTranscodeSession({
transcodeType: TranscodeType.Music,
extension: Extension.Mpd,
advancedSubtitles: AdvancedSubtitles.Burn,
audioBoost: 50,
audioChannelCount: 5,
autoAdjustQuality: BoolInt.True,
autoAdjustSubtitle: BoolInt.True,
directPlay: BoolInt.True,
directStream: BoolInt.True,
directStreamAudio: BoolInt.True,
disableResolutionRotation: BoolInt.True,
hasMDE: BoolInt.True,
location: StartTranscodeSessionLocation.Wan,
mediaBufferSize: 102400,
mediaIndex: 0,
musicBitrate: 5000,
offset: 90.5,
partIndex: 0,
path: "/library/metadata/151671",
peakBitrate: 12000,
photoResolution: "1080x1080",
protocol: StartTranscodeSessionProtocol.Dash,
secondsPerSegment: 5,
subtitleSize: 50,
videoBitrate: 12000,
videoQuality: 50,
videoResolution: "1080x1080",
xPlexClientProfileExtra:
"add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.frameRate&value=60&replace=true)+append-transcode-target-codec(type=videoProfile&context=streaming&videoCodec=h264%2Chevc&audioCodec=aac&protocol=dash)",
xPlexClientProfileName: "generic",
});
// Handle the result
console.log(result);
console.log(result);
}
run();

File diff suppressed because it is too large Load Diff

View File

@@ -1,31 +0,0 @@
# Account
## Example Usage
```typescript
import { Account } from "@lukehagar/plexjs";
let value: Account = {
id: 238960586,
key: "/accounts/238960586",
name: "Diane",
defaultAudioLanguage: "en",
autoSelectAudio: true,
defaultSubtitleLanguage: "en",
subtitleMode: 1,
thumb: "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967",
};
```
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
| `id` | *number* | :heavy_minus_sign: | N/A | 238960586 |
| `key` | *string* | :heavy_minus_sign: | N/A | /accounts/238960586 |
| `name` | *string* | :heavy_minus_sign: | N/A | Diane |
| `defaultAudioLanguage` | *string* | :heavy_minus_sign: | N/A | en |
| `autoSelectAudio` | *boolean* | :heavy_minus_sign: | N/A | true |
| `defaultSubtitleLanguage` | *string* | :heavy_minus_sign: | N/A | en |
| `subtitleMode` | *number* | :heavy_minus_sign: | N/A | 1 |
| `thumb` | *string* | :heavy_minus_sign: | N/A | https://plex.tv/users/50d83634246da1de/avatar?c=1707110967 |

View File

@@ -1,22 +0,0 @@
# Activity
## Example Usage
```typescript
import { Activity } from "@lukehagar/plexjs";
let value: Activity = {};
```
## Fields
| Field | Type | Required | Description |
| -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- |
| `uuid` | *string* | :heavy_minus_sign: | N/A |
| `type` | *string* | :heavy_minus_sign: | N/A |
| `cancellable` | *boolean* | :heavy_minus_sign: | N/A |
| `userID` | *number* | :heavy_minus_sign: | N/A |
| `title` | *string* | :heavy_minus_sign: | N/A |
| `subtitle` | *string* | :heavy_minus_sign: | N/A |
| `progress` | *number* | :heavy_minus_sign: | N/A |
| `context` | [models.Context](../models/context.md) | :heavy_minus_sign: | N/A |

View File

@@ -1,21 +0,0 @@
# AddPlaylistContentsErrors
## Example Usage
```typescript
import { AddPlaylistContentsErrors } from "@lukehagar/plexjs";
let value: AddPlaylistContentsErrors = {
code: 1001,
message: "User could not be authenticated",
status: 401,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `code` | *number* | :heavy_minus_sign: | N/A | 1001 |
| `message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `status` | *number* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -1,39 +0,0 @@
# AddPlaylistContentsMediaContainer
## Example Usage
```typescript
import { AddPlaylistContentsMediaContainer } from "@lukehagar/plexjs";
let value: AddPlaylistContentsMediaContainer = {
size: 1,
leafCountAdded: 1,
leafCountRequested: 1,
metadata: [
{
ratingKey: "94",
key: "/playlists/94/items",
guid: "com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2",
type: "playlist",
title: "A great playlist",
summary: "One of my great playlists",
smart: false,
playlistType: "video",
composite: "/playlists/94/composite/1705800070",
duration: 423000,
leafCount: 3,
addedAt: 1705716458,
updatedAt: 1705800070,
},
],
};
```
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `size` | *number* | :heavy_minus_sign: | N/A | 1 |
| `leafCountAdded` | *number* | :heavy_minus_sign: | N/A | 1 |
| `leafCountRequested` | *number* | :heavy_minus_sign: | N/A | 1 |
| `metadata` | [models.AddPlaylistContentsMetadata](../models/addplaylistcontentsmetadata.md)[] | :heavy_minus_sign: | N/A | |

View File

@@ -1,41 +0,0 @@
# AddPlaylistContentsMetadata
## Example Usage
```typescript
import { AddPlaylistContentsMetadata } from "@lukehagar/plexjs";
let value: AddPlaylistContentsMetadata = {
ratingKey: "94",
key: "/playlists/94/items",
guid: "com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2",
type: "playlist",
title: "A great playlist",
summary: "One of my great playlists",
smart: false,
playlistType: "video",
composite: "/playlists/94/composite/1705800070",
duration: 423000,
leafCount: 3,
addedAt: 1705716458,
updatedAt: 1705800070,
};
```
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
| `ratingKey` | *string* | :heavy_minus_sign: | N/A | 94 |
| `key` | *string* | :heavy_minus_sign: | N/A | /playlists/94/items |
| `guid` | *string* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2 |
| `type` | *string* | :heavy_minus_sign: | N/A | playlist |
| `title` | *string* | :heavy_minus_sign: | N/A | A great playlist |
| `summary` | *string* | :heavy_minus_sign: | N/A | One of my great playlists |
| `smart` | *boolean* | :heavy_minus_sign: | N/A | false |
| `playlistType` | *string* | :heavy_minus_sign: | N/A | video |
| `composite` | *string* | :heavy_minus_sign: | N/A | /playlists/94/composite/1705800070 |
| `duration` | *number* | :heavy_minus_sign: | N/A | 423000 |
| `leafCount` | *number* | :heavy_minus_sign: | N/A | 3 |
| `addedAt` | *number* | :heavy_minus_sign: | N/A | 1705716458 |
| `updatedAt` | *number* | :heavy_minus_sign: | N/A | 1705800070 |

View File

@@ -1,18 +0,0 @@
# AddPlaylistContentsPlaylistsResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { AddPlaylistContentsPlaylistsResponseBody } from "@lukehagar/plexjs";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `errors` | [models.AddPlaylistContentsErrors](../models/addplaylistcontentserrors.md)[] | :heavy_minus_sign: | N/A |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,21 +0,0 @@
# AddPlaylistContentsRequest
## Example Usage
```typescript
import { AddPlaylistContentsRequest } from "@lukehagar/plexjs";
let value: AddPlaylistContentsRequest = {
playlistID: 6625.27,
uri: "server://12345/com.plexapp.plugins.library/library/metadata/1",
playQueueID: 123,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- |
| `playlistID` | *number* | :heavy_check_mark: | the ID of the playlist | |
| `uri` | *string* | :heavy_check_mark: | the content URI for the playlist | server://12345/com.plexapp.plugins.library/library/metadata/1 |
| `playQueueID` | *number* | :heavy_minus_sign: | the play queue to add to a playlist | 123 |

View File

@@ -1,48 +0,0 @@
# AddPlaylistContentsResponse
## Example Usage
```typescript
import { AddPlaylistContentsResponse } from "@lukehagar/plexjs";
let value: AddPlaylistContentsResponse = {
contentType: "<value>",
statusCode: 820994,
rawResponse: new Response('{"message": "hello world"}', {
headers: { "Content-Type": "application/json" },
}),
object: {
mediaContainer: {
size: 1,
leafCountAdded: 1,
leafCountRequested: 1,
metadata: [
{
ratingKey: "94",
key: "/playlists/94/items",
guid: "com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2",
type: "playlist",
title: "A great playlist",
summary: "One of my great playlists",
smart: false,
playlistType: "video",
composite: "/playlists/94/composite/1705800070",
duration: 423000,
leafCount: 3,
addedAt: 1705716458,
updatedAt: 1705800070,
},
],
},
},
};
```
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
| `object` | [models.AddPlaylistContentsResponseBody](../models/addplaylistcontentsresponsebody.md) | :heavy_minus_sign: | Playlist Updated |

View File

@@ -1,40 +0,0 @@
# AddPlaylistContentsResponseBody
Playlist Updated
## Example Usage
```typescript
import { AddPlaylistContentsResponseBody } from "@lukehagar/plexjs";
let value: AddPlaylistContentsResponseBody = {
mediaContainer: {
size: 1,
leafCountAdded: 1,
leafCountRequested: 1,
metadata: [
{
ratingKey: "94",
key: "/playlists/94/items",
guid: "com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2",
type: "playlist",
title: "A great playlist",
summary: "One of my great playlists",
smart: false,
playlistType: "video",
composite: "/playlists/94/composite/1705800070",
duration: 423000,
leafCount: 3,
addedAt: 1705716458,
updatedAt: 1705800070,
},
],
},
};
```
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
| `mediaContainer` | [models.AddPlaylistContentsMediaContainer](../models/addplaylistcontentsmediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -1,21 +0,0 @@
# ApplyUpdatesErrors
## Example Usage
```typescript
import { ApplyUpdatesErrors } from "@lukehagar/plexjs";
let value: ApplyUpdatesErrors = {
code: 1001,
message: "User could not be authenticated",
status: 401,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `code` | *number* | :heavy_minus_sign: | N/A | 1001 |
| `message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `status` | *number* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -1,19 +0,0 @@
# ApplyUpdatesRequest
## Example Usage
```typescript
import { ApplyUpdatesRequest, Skip, Tonight } from "@lukehagar/plexjs";
let value: ApplyUpdatesRequest = {
tonight: Tonight.One,
skip: Skip.One,
};
```
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `tonight` | [models.Tonight](../models/tonight.md) | :heavy_minus_sign: | Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install | 1 |
| `skip` | [models.Skip](../models/skip.md) | :heavy_minus_sign: | Indicate that the latest version should be marked as skipped. The [Release] entry for this version will have the `state` set to `skipped`. | 1 |

View File

@@ -1,23 +0,0 @@
# ApplyUpdatesResponse
## Example Usage
```typescript
import { ApplyUpdatesResponse } from "@lukehagar/plexjs";
let value: ApplyUpdatesResponse = {
contentType: "<value>",
statusCode: 318569,
rawResponse: new Response('{"message": "hello world"}', {
headers: { "Content-Type": "application/json" },
}),
};
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,18 +0,0 @@
# ApplyUpdatesResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { ApplyUpdatesResponseBody } from "@lukehagar/plexjs";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `errors` | [models.ApplyUpdatesErrors](../models/applyupdateserrors.md)[] | :heavy_minus_sign: | N/A |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,18 +0,0 @@
# AutoSelectSubtitle
The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled)
## Example Usage
```typescript
import { AutoSelectSubtitle } from "@lukehagar/plexjs";
let value: AutoSelectSubtitle = AutoSelectSubtitle.One;
```
## Values
| Name | Value |
| ------ | ------ |
| `Zero` | 0 |
| `One` | 1 |

View File

@@ -1,19 +0,0 @@
# Billing
## Example Usage
```typescript
import { Billing } from "@lukehagar/plexjs";
let value: Billing = {
internalPaymentMethod: {},
paymentMethodId: 317983,
};
```
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| `internalPaymentMethod` | [models.InternalPaymentMethod](../models/internalpaymentmethod.md) | :heavy_check_mark: | N/A |
| `paymentMethodId` | *number* | :heavy_check_mark: | N/A |

View File

@@ -1,25 +0,0 @@
# ButlerTask
## Example Usage
```typescript
import { ButlerTask } from "@lukehagar/plexjs";
let value: ButlerTask = {
name: "BackupDatabase",
interval: 3,
title: "Backup Database",
description: "Create a backup copy of the server's database in the configured backup directory",
};
```
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `name` | *string* | :heavy_minus_sign: | N/A | BackupDatabase |
| `interval` | *number* | :heavy_minus_sign: | N/A | 3 |
| `scheduleRandomized` | *boolean* | :heavy_minus_sign: | N/A | |
| `enabled` | *boolean* | :heavy_minus_sign: | N/A | |
| `title` | *string* | :heavy_minus_sign: | N/A | Backup Database |
| `description` | *string* | :heavy_minus_sign: | N/A | Create a backup copy of the server's database in the configured backup directory |

View File

@@ -1,25 +0,0 @@
# ButlerTasks
## Example Usage
```typescript
import { ButlerTasks } from "@lukehagar/plexjs";
let value: ButlerTasks = {
butlerTask: [
{
name: "BackupDatabase",
interval: 3,
title: "Backup Database",
description:
"Create a backup copy of the server's database in the configured backup directory",
},
],
};
```
## Fields
| Field | Type | Required | Description |
| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- |
| `butlerTask` | [models.ButlerTask](../models/butlertask.md)[] | :heavy_minus_sign: | N/A |

View File

@@ -1,21 +0,0 @@
# CancelServerActivitiesErrors
## Example Usage
```typescript
import { CancelServerActivitiesErrors } from "@lukehagar/plexjs";
let value: CancelServerActivitiesErrors = {
code: 1001,
message: "User could not be authenticated",
status: 401,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `code` | *number* | :heavy_minus_sign: | N/A | 1001 |
| `message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `status` | *number* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -1,17 +0,0 @@
# CancelServerActivitiesRequest
## Example Usage
```typescript
import { CancelServerActivitiesRequest } from "@lukehagar/plexjs";
let value: CancelServerActivitiesRequest = {
activityUUID: "25b71ed5-0f9d-461c-baa7-d404e9e10d3e",
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
| `activityUUID` | *string* | :heavy_check_mark: | The UUID of the activity to cancel. | 25b71ed5-0f9d-461c-baa7-d404e9e10d3e |

View File

@@ -1,23 +0,0 @@
# CancelServerActivitiesResponse
## Example Usage
```typescript
import { CancelServerActivitiesResponse } from "@lukehagar/plexjs";
let value: CancelServerActivitiesResponse = {
contentType: "<value>",
statusCode: 791725,
rawResponse: new Response('{"message": "hello world"}', {
headers: { "Content-Type": "application/json" },
}),
};
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,18 +0,0 @@
# CancelServerActivitiesResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { CancelServerActivitiesResponseBody } from "@lukehagar/plexjs";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| `errors` | [models.CancelServerActivitiesErrors](../models/cancelserveractivitieserrors.md)[] | :heavy_minus_sign: | N/A |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,21 +0,0 @@
# CheckForUpdatesErrors
## Example Usage
```typescript
import { CheckForUpdatesErrors } from "@lukehagar/plexjs";
let value: CheckForUpdatesErrors = {
code: 1001,
message: "User could not be authenticated",
status: 401,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `code` | *number* | :heavy_minus_sign: | N/A | 1001 |
| `message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `status` | *number* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -1,17 +0,0 @@
# CheckForUpdatesRequest
## Example Usage
```typescript
import { CheckForUpdatesRequest, Download } from "@lukehagar/plexjs";
let value: CheckForUpdatesRequest = {
download: Download.One,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
| `download` | [models.Download](../models/download.md) | :heavy_minus_sign: | Indicate that you want to start download any updates found. | 1 |

View File

@@ -1,23 +0,0 @@
# CheckForUpdatesResponse
## Example Usage
```typescript
import { CheckForUpdatesResponse } from "@lukehagar/plexjs";
let value: CheckForUpdatesResponse = {
contentType: "<value>",
statusCode: 277718,
rawResponse: new Response('{"message": "hello world"}', {
headers: { "Content-Type": "application/json" },
}),
};
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,18 +0,0 @@
# CheckForUpdatesResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { CheckForUpdatesResponseBody } from "@lukehagar/plexjs";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `errors` | [models.CheckForUpdatesErrors](../models/checkforupdateserrors.md)[] | :heavy_minus_sign: | N/A |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,21 +0,0 @@
# ClearPlaylistContentsErrors
## Example Usage
```typescript
import { ClearPlaylistContentsErrors } from "@lukehagar/plexjs";
let value: ClearPlaylistContentsErrors = {
code: 1001,
message: "User could not be authenticated",
status: 401,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `code` | *number* | :heavy_minus_sign: | N/A | 1001 |
| `message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `status` | *number* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -1,17 +0,0 @@
# ClearPlaylistContentsRequest
## Example Usage
```typescript
import { ClearPlaylistContentsRequest } from "@lukehagar/plexjs";
let value: ClearPlaylistContentsRequest = {
playlistID: 9495.72,
};
```
## Fields
| Field | Type | Required | Description |
| ---------------------- | ---------------------- | ---------------------- | ---------------------- |
| `playlistID` | *number* | :heavy_check_mark: | the ID of the playlist |

View File

@@ -1,23 +0,0 @@
# ClearPlaylistContentsResponse
## Example Usage
```typescript
import { ClearPlaylistContentsResponse } from "@lukehagar/plexjs";
let value: ClearPlaylistContentsResponse = {
contentType: "<value>",
statusCode: 368725,
rawResponse: new Response('{"message": "hello world"}', {
headers: { "Content-Type": "application/json" },
}),
};
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,18 +0,0 @@
# ClearPlaylistContentsResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { ClearPlaylistContentsResponseBody } from "@lukehagar/plexjs";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `errors` | [models.ClearPlaylistContentsErrors](../models/clearplaylistcontentserrors.md)[] | :heavy_minus_sign: | N/A |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,29 +0,0 @@
# Connections
## Example Usage
```typescript
import { Connections } from "@lukehagar/plexjs";
let value: Connections = {
protocol: "<value>",
address: "971 Strosin Wall",
port: 4736.08,
uri: "https://starry-initialise.name",
local: false,
relay: false,
iPv6: false,
};
```
## Fields
| Field | Type | Required | Description |
| ------------------ | ------------------ | ------------------ | ------------------ |
| `protocol` | *string* | :heavy_check_mark: | N/A |
| `address` | *string* | :heavy_check_mark: | N/A |
| `port` | *number* | :heavy_check_mark: | N/A |
| `uri` | *string* | :heavy_check_mark: | N/A |
| `local` | *boolean* | :heavy_check_mark: | N/A |
| `relay` | *boolean* | :heavy_check_mark: | N/A |
| `iPv6` | *boolean* | :heavy_check_mark: | N/A |

View File

@@ -1,15 +0,0 @@
# Context
## Example Usage
```typescript
import { Context } from "@lukehagar/plexjs";
let value: Context = {};
```
## Fields
| Field | Type | Required | Description |
| ------------------ | ------------------ | ------------------ | ------------------ |
| `librarySectionID` | *string* | :heavy_minus_sign: | N/A |

View File

@@ -1,17 +0,0 @@
# Country
## Example Usage
```typescript
import { Country } from "@lukehagar/plexjs";
let value: Country = {
tag: "United States of America",
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
| `tag` | *string* | :heavy_minus_sign: | N/A | United States of America |

View File

@@ -1,21 +0,0 @@
# CreatePlaylistErrors
## Example Usage
```typescript
import { CreatePlaylistErrors } from "@lukehagar/plexjs";
let value: CreatePlaylistErrors = {
code: 1001,
message: "User could not be authenticated",
status: 401,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `code` | *number* | :heavy_minus_sign: | N/A | 1001 |
| `message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `status` | *number* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -1,38 +0,0 @@
# CreatePlaylistMediaContainer
## Example Usage
```typescript
import { CreatePlaylistMediaContainer } from "@lukehagar/plexjs";
let value: CreatePlaylistMediaContainer = {
size: 7,
metadata: [
{
ratingKey: "96",
key: "/playlists/96/items",
guid: "com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55",
type: "playlist",
title: "A Great Playlist",
summary: "What a great playlist",
smart: false,
playlistType: "video",
icon: "playlist://image.smart",
viewCount: 1,
lastViewedAt: 1705719589,
leafCount: 1,
addedAt: 1705719589,
updatedAt: 1705724593,
composite: "/playlists/96/composite/1705724593",
duration: 141000,
},
],
};
```
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| `size` | *number* | :heavy_minus_sign: | N/A | 7 |
| `metadata` | [models.CreatePlaylistMetadata](../models/createplaylistmetadata.md)[] | :heavy_minus_sign: | N/A | |

View File

@@ -1,47 +0,0 @@
# CreatePlaylistMetadata
## Example Usage
```typescript
import { CreatePlaylistMetadata } from "@lukehagar/plexjs";
let value: CreatePlaylistMetadata = {
ratingKey: "96",
key: "/playlists/96/items",
guid: "com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55",
type: "playlist",
title: "A Great Playlist",
summary: "What a great playlist",
smart: false,
playlistType: "video",
icon: "playlist://image.smart",
viewCount: 1,
lastViewedAt: 1705719589,
leafCount: 1,
addedAt: 1705719589,
updatedAt: 1705724593,
composite: "/playlists/96/composite/1705724593",
duration: 141000,
};
```
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
| `ratingKey` | *string* | :heavy_minus_sign: | N/A | 96 |
| `key` | *string* | :heavy_minus_sign: | N/A | /playlists/96/items |
| `guid` | *string* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55 |
| `type` | *string* | :heavy_minus_sign: | N/A | playlist |
| `title` | *string* | :heavy_minus_sign: | N/A | A Great Playlist |
| `summary` | *string* | :heavy_minus_sign: | N/A | What a great playlist |
| `smart` | *boolean* | :heavy_minus_sign: | N/A | false |
| `playlistType` | *string* | :heavy_minus_sign: | N/A | video |
| `icon` | *string* | :heavy_minus_sign: | N/A | playlist://image.smart |
| `viewCount` | *number* | :heavy_minus_sign: | N/A | 1 |
| `lastViewedAt` | *number* | :heavy_minus_sign: | N/A | 1705719589 |
| `leafCount` | *number* | :heavy_minus_sign: | N/A | 1 |
| `addedAt` | *number* | :heavy_minus_sign: | N/A | 1705719589 |
| `updatedAt` | *number* | :heavy_minus_sign: | N/A | 1705724593 |
| `composite` | *string* | :heavy_minus_sign: | N/A | /playlists/96/composite/1705724593 |
| `duration` | *number* | :heavy_minus_sign: | N/A | 141000 |

View File

@@ -1,18 +0,0 @@
# CreatePlaylistPlaylistsResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { CreatePlaylistPlaylistsResponseBody } from "@lukehagar/plexjs";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `errors` | [models.CreatePlaylistErrors](../models/createplaylisterrors.md)[] | :heavy_minus_sign: | N/A |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,19 +0,0 @@
# CreatePlaylistQueryParamType
type of playlist to create
## Example Usage
```typescript
import { CreatePlaylistQueryParamType } from "@lukehagar/plexjs";
let value: CreatePlaylistQueryParamType = CreatePlaylistQueryParamType.Video;
```
## Values
| Name | Value |
| ------- | ------- |
| `Audio` | audio |
| `Video` | video |
| `Photo` | photo |

View File

@@ -1,24 +0,0 @@
# CreatePlaylistRequest
## Example Usage
```typescript
import { CreatePlaylistQueryParamType, CreatePlaylistRequest, Smart } from "@lukehagar/plexjs";
let value: CreatePlaylistRequest = {
title: "<value>",
type: CreatePlaylistQueryParamType.Photo,
smart: Smart.One,
uri: "https://exotic-harm.info",
};
```
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `title` | *string* | :heavy_check_mark: | name of the playlist |
| `type` | [models.CreatePlaylistQueryParamType](../models/createplaylistqueryparamtype.md) | :heavy_check_mark: | type of playlist to create |
| `smart` | [models.Smart](../models/smart.md) | :heavy_check_mark: | whether the playlist is smart or not |
| `uri` | *string* | :heavy_check_mark: | the content URI for the playlist |
| `playQueueID` | *number* | :heavy_minus_sign: | the play queue to copy to a playlist |

View File

@@ -1,49 +0,0 @@
# CreatePlaylistResponse
## Example Usage
```typescript
import { CreatePlaylistResponse } from "@lukehagar/plexjs";
let value: CreatePlaylistResponse = {
contentType: "<value>",
statusCode: 474697,
rawResponse: new Response('{"message": "hello world"}', {
headers: { "Content-Type": "application/json" },
}),
object: {
mediaContainer: {
size: 7,
metadata: [
{
ratingKey: "96",
key: "/playlists/96/items",
guid: "com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55",
type: "playlist",
title: "A Great Playlist",
summary: "What a great playlist",
smart: false,
playlistType: "video",
icon: "playlist://image.smart",
viewCount: 1,
lastViewedAt: 1705719589,
leafCount: 1,
addedAt: 1705719589,
updatedAt: 1705724593,
composite: "/playlists/96/composite/1705724593",
duration: 141000,
},
],
},
},
};
```
## Fields
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
| `object` | [models.CreatePlaylistResponseBody](../models/createplaylistresponsebody.md) | :heavy_minus_sign: | returns all playlists |

View File

@@ -1,41 +0,0 @@
# CreatePlaylistResponseBody
returns all playlists
## Example Usage
```typescript
import { CreatePlaylistResponseBody } from "@lukehagar/plexjs";
let value: CreatePlaylistResponseBody = {
mediaContainer: {
size: 7,
metadata: [
{
ratingKey: "96",
key: "/playlists/96/items",
guid: "com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55",
type: "playlist",
title: "A Great Playlist",
summary: "What a great playlist",
smart: false,
playlistType: "video",
icon: "playlist://image.smart",
viewCount: 1,
lastViewedAt: 1705719589,
leafCount: 1,
addedAt: 1705719589,
updatedAt: 1705724593,
composite: "/playlists/96/composite/1705724593",
duration: 141000,
},
],
},
};
```
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `mediaContainer` | [models.CreatePlaylistMediaContainer](../models/createplaylistmediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -1,18 +0,0 @@
# DefaultSubtitleAccessibility
The subtitles for the deaf or hard-of-hearing (SDH) searches mode (0 = Prefer non-SDH subtitles, 1 = Prefer SDH subtitles, 2 = Only show SDH subtitles, 3 = Only shown non-SDH subtitles)
## Example Usage
```typescript
import { DefaultSubtitleAccessibility } from "@lukehagar/plexjs";
let value: DefaultSubtitleAccessibility = DefaultSubtitleAccessibility.One;
```
## Values
| Name | Value |
| ------ | ------ |
| `Zero` | 0 |
| `One` | 1 |

View File

@@ -1,18 +0,0 @@
# DefaultSubtitleForced
The forced subtitles searches mode (0 = Prefer non-forced subtitles, 1 = Prefer forced subtitles, 2 = Only show forced subtitles, 3 = Only show non-forced subtitles)
## Example Usage
```typescript
import { DefaultSubtitleForced } from "@lukehagar/plexjs";
let value: DefaultSubtitleForced = DefaultSubtitleForced.One;
```
## Values
| Name | Value |
| ------ | ------ |
| `Zero` | 0 |
| `One` | 1 |

View File

@@ -1,21 +0,0 @@
# DeleteLibraryErrors
## Example Usage
```typescript
import { DeleteLibraryErrors } from "@lukehagar/plexjs";
let value: DeleteLibraryErrors = {
code: 1001,
message: "User could not be authenticated",
status: 401,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `code` | *number* | :heavy_minus_sign: | N/A | 1001 |
| `message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `status` | *number* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -1,17 +0,0 @@
# DeleteLibraryRequest
## Example Usage
```typescript
import { DeleteLibraryRequest } from "@lukehagar/plexjs";
let value: DeleteLibraryRequest = {
sectionKey: 9518,
};
```
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| `sectionKey` | *number* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |

View File

@@ -1,23 +0,0 @@
# DeleteLibraryResponse
## Example Usage
```typescript
import { DeleteLibraryResponse } from "@lukehagar/plexjs";
let value: DeleteLibraryResponse = {
contentType: "<value>",
statusCode: 697631,
rawResponse: new Response('{"message": "hello world"}', {
headers: { "Content-Type": "application/json" },
}),
};
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,18 +0,0 @@
# DeleteLibraryResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { DeleteLibraryResponseBody } from "@lukehagar/plexjs";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `errors` | [models.DeleteLibraryErrors](../models/deletelibraryerrors.md)[] | :heavy_minus_sign: | N/A |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,21 +0,0 @@
# DeletePlaylistErrors
## Example Usage
```typescript
import { DeletePlaylistErrors } from "@lukehagar/plexjs";
let value: DeletePlaylistErrors = {
code: 1001,
message: "User could not be authenticated",
status: 401,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `code` | *number* | :heavy_minus_sign: | N/A | 1001 |
| `message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `status` | *number* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -1,17 +0,0 @@
# DeletePlaylistRequest
## Example Usage
```typescript
import { DeletePlaylistRequest } from "@lukehagar/plexjs";
let value: DeletePlaylistRequest = {
playlistID: 6747.52,
};
```
## Fields
| Field | Type | Required | Description |
| ---------------------- | ---------------------- | ---------------------- | ---------------------- |
| `playlistID` | *number* | :heavy_check_mark: | the ID of the playlist |

View File

@@ -1,23 +0,0 @@
# DeletePlaylistResponse
## Example Usage
```typescript
import { DeletePlaylistResponse } from "@lukehagar/plexjs";
let value: DeletePlaylistResponse = {
contentType: "<value>",
statusCode: 656330,
rawResponse: new Response('{"message": "hello world"}', {
headers: { "Content-Type": "application/json" },
}),
};
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,18 +0,0 @@
# DeletePlaylistResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { DeletePlaylistResponseBody } from "@lukehagar/plexjs";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `errors` | [models.DeletePlaylistErrors](../models/deleteplaylisterrors.md)[] | :heavy_minus_sign: | N/A |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,24 +0,0 @@
# Device
## Example Usage
```typescript
import { Device } from "@lukehagar/plexjs";
let value: Device = {
id: 1,
name: "iPhone",
platform: "iOS",
createdAt: 1654131230,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `id` | *number* | :heavy_minus_sign: | N/A | 1 |
| `name` | *string* | :heavy_minus_sign: | N/A | iPhone |
| `platform` | *string* | :heavy_minus_sign: | N/A | iOS |
| `clientIdentifier` | *string* | :heavy_minus_sign: | N/A | |
| `createdAt` | *number* | :heavy_minus_sign: | N/A | 1654131230 |

View File

@@ -1,17 +0,0 @@
# Director
## Example Usage
```typescript
import { Director } from "@lukehagar/plexjs";
let value: Director = {
tag: "Peyton Reed",
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `tag` | *string* | :heavy_minus_sign: | N/A | Peyton Reed |

View File

@@ -1,17 +0,0 @@
# Directory
## Example Usage
```typescript
import { Directory } from "@lukehagar/plexjs";
let value: Directory = {};
```
## Fields
| Field | Type | Required | Description |
| ------------------ | ------------------ | ------------------ | ------------------ |
| `count` | *number* | :heavy_minus_sign: | N/A |
| `key` | *string* | :heavy_minus_sign: | N/A |
| `title` | *string* | :heavy_minus_sign: | N/A |

View File

@@ -1,18 +0,0 @@
# Download
Indicate that you want to start download any updates found.
## Example Usage
```typescript
import { Download } from "@lukehagar/plexjs";
let value: Download = Download.One;
```
## Values
| Name | Value |
| ------ | ------ |
| `Zero` | 0 |
| `One` | 1 |

View File

@@ -1,21 +0,0 @@
# EnablePaperTrailErrors
## Example Usage
```typescript
import { EnablePaperTrailErrors } from "@lukehagar/plexjs";
let value: EnablePaperTrailErrors = {
code: 1001,
message: "User could not be authenticated",
status: 401,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `code` | *number* | :heavy_minus_sign: | N/A | 1001 |
| `message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `status` | *number* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -1,23 +0,0 @@
# EnablePaperTrailResponse
## Example Usage
```typescript
import { EnablePaperTrailResponse } from "@lukehagar/plexjs";
let value: EnablePaperTrailResponse = {
contentType: "<value>",
statusCode: 208876,
rawResponse: new Response('{"message": "hello world"}', {
headers: { "Content-Type": "application/json" },
}),
};
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,18 +0,0 @@
# EnablePaperTrailResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { EnablePaperTrailResponseBody } from "@lukehagar/plexjs";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| `errors` | [models.EnablePaperTrailErrors](../models/enablepapertrailerrors.md)[] | :heavy_minus_sign: | N/A |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,21 +0,0 @@
# Errors
## Example Usage
```typescript
import { Errors } from "@lukehagar/plexjs";
let value: Errors = {
code: 1001,
message: "User could not be authenticated",
status: 401,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `code` | *number* | :heavy_minus_sign: | N/A | 1001 |
| `message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `status` | *number* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -0,0 +1,17 @@
# GetServerResourcesUnauthorizedError
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { GetServerResourcesUnauthorizedError } from "@lukehagar/plexjs/models/errors";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
| `errors` | [operations.GetServerResourcesError](../../models/operations/getserverresourceserror.md)[] | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,17 @@
# GetTokenDetailsBadRequestError
Bad Request - A parameter was not specified, or was specified incorrectly.
## Example Usage
```typescript
import { GetTokenDetailsBadRequestError } from "@lukehagar/plexjs/models/errors";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `errors` | [operations.GetTokenDetailsBadRequestError](../../models/operations/gettokendetailsbadrequesterror.md)[] | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,17 @@
# GetTokenDetailsUnauthorizedError
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { GetTokenDetailsUnauthorizedError } from "@lukehagar/plexjs/models/errors";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
| `errors` | [operations.GetTokenDetailsUnauthorizedError](../../models/operations/gettokendetailsunauthorizederror.md)[] | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,17 @@
# GetUsersBadRequestError
Bad Request - A parameter was not specified, or was specified incorrectly.
## Example Usage
```typescript
import { GetUsersBadRequestError } from "@lukehagar/plexjs/models/errors";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
| `errors` | [operations.GetUsersBadRequestError](../../models/operations/getusersbadrequesterror.md)[] | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,17 @@
# GetUsersUnauthorizedError
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { GetUsersUnauthorizedError } from "@lukehagar/plexjs/models/errors";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `errors` | [operations.GetUsersUnauthorizedError](../../models/operations/getusersunauthorizederror.md)[] | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,17 @@
# PostUsersSignInDataBadRequestError
Bad Request - A parameter was not specified, or was specified incorrectly.
## Example Usage
```typescript
import { PostUsersSignInDataBadRequestError } from "@lukehagar/plexjs/models/errors";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `errors` | [operations.PostUsersSignInDataBadRequestError](../../models/operations/postuserssignindatabadrequesterror.md)[] | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,17 @@
# PostUsersSignInDataUnauthorizedError
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { PostUsersSignInDataUnauthorizedError } from "@lukehagar/plexjs/models/errors";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `errors` | [operations.PostUsersSignInDataUnauthorizedError](../../models/operations/postuserssignindataunauthorizederror.md)[] | :heavy_minus_sign: | N/A |

View File

@@ -1,17 +0,0 @@
# Feature
## Example Usage
```typescript
import { Feature } from "@lukehagar/plexjs";
let value: Feature = {};
```
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
| `key` | *string* | :heavy_minus_sign: | N/A |
| `type` | *string* | :heavy_minus_sign: | N/A |
| `directory` | [models.GetMediaProvidersDirectory](../models/getmediaprovidersdirectory.md)[] | :heavy_minus_sign: | N/A |

View File

@@ -1,73 +0,0 @@
# Features
## Example Usage
```typescript
import { Features } from "@lukehagar/plexjs";
let value: Features = Features.WatchTogetherInvite;
```
## Values
| Name | Value |
| --------------------------------------- | --------------------------------------- |
| `AndroidDolbyVision` | Android - Dolby Vision |
| `AndroidPiP` | Android - PiP |
| `CUSunset` | CU Sunset |
| `HRKEnableEUR` | HRK_enable_EUR |
| `TREBLEShowFeatures` | TREBLE-show-features |
| `AdCountdownTimer` | ad-countdown-timer |
| `AdaptiveBitrate` | adaptive_bitrate |
| `AmazonLoopDebug` | amazon-loop-debug |
| `AvodAdAnalysis` | avod-ad-analysis |
| `AvodNewMedia` | avod-new-media |
| `BlacklistGetSignin` | blacklist_get_signin |
| `ClientRadioStations` | client-radio-stations |
| `CloudflareTurnstileRequired` | cloudflare-turnstile-required |
| `Collections` | collections |
| `CommentsAndRepliesPushNotifications` | comments_and_replies_push_notifications |
| `CommunityAccessPlexTv` | community_access_plex_tv |
| `CompanionsSonos` | companions_sonos |
| `CustomHomeRemoval` | custom-home-removal |
| `DisableHomeUserFriendships` | disable_home_user_friendships |
| `DisableSharingFriendships` | disable_sharing_friendships |
| `DrmSupport` | drm_support |
| `ExcludeRestrictions` | exclude restrictions |
| `FederatedAuth` | federated-auth |
| `FriendRequestPushNotifications` | friend_request_push_notifications |
| `GuidedUpgrade` | guided-upgrade |
| `Home` | home |
| `IncreasePasswordComplexity` | increase-password-complexity |
| `Ios14PrivacyBanner` | ios14-privacy-banner |
| `IterableNotificationTokens` | iterable-notification-tokens |
| `KeepPaymentMethod` | keep-payment-method |
| `KevinBacon` | kevin-bacon |
| `KoreaConsent` | korea-consent |
| `LeIsrgRootX1` | le_isrg_root_x1 |
| `LetsEncrypt` | lets_encrypt |
| `LightningDvrPivot` | lightning-dvr-pivot |
| `LiveTvSupportIncompleteSegments` | live-tv-support-incomplete-segments |
| `Livetv` | livetv |
| `MetadataSearch` | metadata_search |
| `NewPlexPassPrices` | new_plex_pass_prices |
| `NewsProviderSunsetModal` | news-provider-sunset-modal |
| `PhotosFavorites` | photos-favorites |
| `PhotosMetadataEdition` | photos-metadata-edition |
| `PmsHealth` | pms_health |
| `Radio` | radio |
| `RateLimitClientToken` | rate-limit-client-token |
| `ScrobblingServicePlexTv` | scrobbling-service-plex-tv |
| `SharedServerNotification` | shared_server_notification |
| `SharedSourceNotification` | shared_source_notification |
| `SigninWithApple` | signin_with_apple |
| `SpringServeAdProvider` | spring_serve_ad_provider |
| `TranscoderCache` | transcoder_cache |
| `TunerSharing` | tuner-sharing |
| `TwoFactorAuthentication` | two-factor-authentication |
| `Unsupportedtuners` | unsupportedtuners |
| `Upgrade3ds2` | upgrade-3ds2 |
| `VodSchema` | vod-schema |
| `VodCloudflare` | vod_cloudflare |
| `WatchTogetherInvite` | watch-together-invite |
| `WebServerDashboard` | web_server_dashboard |

View File

@@ -1,23 +0,0 @@
# Field
## Example Usage
```typescript
import { Field } from "@lukehagar/plexjs";
let value: Field = {
key: "label",
title: "Label",
type: "tag",
subType: "bitrate",
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `key` | *string* | :heavy_minus_sign: | N/A | label |
| `title` | *string* | :heavy_minus_sign: | N/A | Label |
| `type` | *string* | :heavy_minus_sign: | N/A | tag |
| `subType` | *string* | :heavy_minus_sign: | N/A | bitrate |

View File

@@ -1,24 +0,0 @@
# FieldType
## Example Usage
```typescript
import { FieldType } from "@lukehagar/plexjs";
let value: FieldType = {
type: "resolution",
operator: [
{
key: "=",
title: "is",
},
],
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
| `type` | *string* | :heavy_minus_sign: | N/A | resolution |
| `operator` | [models.Operator](../models/operator.md)[] | :heavy_minus_sign: | N/A | |

View File

@@ -1,19 +0,0 @@
# Filter
Filter
## Example Usage
```typescript
import { Filter } from "@lukehagar/plexjs";
let value: Filter = Filter.Available;
```
## Values
| Name | Value |
| ----------- | ----------- |
| `All` | all |
| `Available` | available |
| `Released` | released |

View File

@@ -1,18 +0,0 @@
# Force
Force the refresh even if the library is already being refreshed.
## Example Usage
```typescript
import { Force } from "@lukehagar/plexjs";
let value: Force = Force.One;
```
## Values
| Name | Value |
| ------ | ------ |
| `Zero` | 0 |
| `One` | 1 |

View File

@@ -1,39 +0,0 @@
# Friend
## Example Usage
```typescript
import { Friend, Status } from "@lukehagar/plexjs";
let value: Friend = {
email: "username@email.com",
friendlyName: "exampleUser",
home: true,
id: 0,
restricted: false,
sharedServers: [{}],
sharedSources: [{}],
status: Status.Accepted,
thumb: "https://plex.tv/users/7d1916e0d8f6e76b/avatar?c=1694481578",
title: "username123",
username: "username123",
uuid: "7d1916e0d8f6e76b",
};
```
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
| `email` | *string* | :heavy_check_mark: | The account email address | username@email.com |
| `friendlyName` | *string* | :heavy_check_mark: | The account full name | exampleUser |
| `home` | *boolean* | :heavy_check_mark: | If the account is a Plex Home user | |
| `id` | *number* | :heavy_check_mark: | The Plex account ID | |
| `restricted` | *boolean* | :heavy_minus_sign: | If the account is a Plex Home managed user | |
| `sharedServers` | [models.SharedServers](../models/sharedservers.md)[] | :heavy_check_mark: | N/A | |
| `sharedSources` | [models.SharedSources](../models/sharedsources.md)[] | :heavy_check_mark: | N/A | |
| `status` | [models.Status](../models/status.md) | :heavy_check_mark: | Current friend request status | accepted |
| `thumb` | *string* | :heavy_check_mark: | URL of the account thumbnail | https://plex.tv/users/7d1916e0d8f6e76b/avatar?c=1694481578 |
| `title` | *string* | :heavy_check_mark: | The title of the account (username or friendly name) | username123 |
| `username` | *string* | :heavy_check_mark: | The account username | username123 |
| `uuid` | *string* | :heavy_check_mark: | The account Universally Unique Identifier (UUID) | 7d1916e0d8f6e76b |

View File

@@ -1,17 +0,0 @@
# Genre
## Example Usage
```typescript
import { Genre } from "@lukehagar/plexjs";
let value: Genre = {
tag: "Comedy",
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `tag` | *string* | :heavy_minus_sign: | N/A | Comedy |

View File

@@ -1,39 +0,0 @@
# GeoData
Geo location data
## Example Usage
```typescript
import { GeoData } from "@lukehagar/plexjs";
let value: GeoData = {
code: "VI",
continentCode: "NA",
country: "United States Virgin Islands",
city: "Amsterdam",
europeanUnionMember: true,
timeZone: "America/St_Thomas",
postalCode: 802,
inPrivacyRestrictedCountry: true,
inPrivacyRestrictedRegion: true,
subdivisions: "Saint Thomas",
coordinates: "18.3381, -64.8941",
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
| `code` | *string* | :heavy_check_mark: | The ISO 3166-1 alpha-2 code of the country. | VI |
| `continentCode` | *string* | :heavy_check_mark: | The continent code where the country is located. | NA |
| `country` | *string* | :heavy_check_mark: | The official name of the country. | United States Virgin Islands |
| `city` | *string* | :heavy_check_mark: | The name of the city. | Amsterdam |
| `europeanUnionMember` | *boolean* | :heavy_minus_sign: | Indicates if the country is a member of the European Union. | true |
| `timeZone` | *string* | :heavy_check_mark: | The time zone of the country. | America/St_Thomas |
| `postalCode` | *number* | :heavy_check_mark: | The postal code of the location. | 802 |
| `inPrivacyRestrictedCountry` | *boolean* | :heavy_minus_sign: | Indicates if the country has privacy restrictions. | true |
| `inPrivacyRestrictedRegion` | *boolean* | :heavy_minus_sign: | Indicates if the region has privacy restrictions. | true |
| `subdivisions` | *string* | :heavy_check_mark: | The name of the primary administrative subdivision. | Saint Thomas |
| `coordinates` | *string* | :heavy_check_mark: | The geographical coordinates (latitude, longitude) of the location. | 18.3381, -64.8941 |

View File

@@ -1,62 +0,0 @@
# GetAllLibrariesDirectory
## Example Usage
```typescript
import { GetAllLibrariesDirectory } from "@lukehagar/plexjs";
let value: GetAllLibrariesDirectory = {
allowSync: true,
art: "/:/resources/movie-fanart.jpg",
composite: "/library/sections/1/composite/1705615584",
filters: true,
refreshing: false,
thumb: "/:/resources/movie.png",
key: "1",
type: "movie",
title: "Movies",
agent: "tv.plex.agents.movie",
scanner: "Plex Movie",
language: "en-US",
uuid: "322a231a-b7f7-49f5-920f-14c61199cd30",
updatedAt: 1556281940,
createdAt: 1556281940,
scannedAt: 1556281940,
content: true,
directory: true,
contentChangedAt: 3192854,
hidden: 0,
location: [
{
id: 1,
path: "/movies",
},
],
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
| `allowSync` | *boolean* | :heavy_minus_sign: | N/A | true |
| `art` | *string* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
| `composite` | *string* | :heavy_minus_sign: | N/A | /library/sections/1/composite/1705615584 |
| `filters` | *boolean* | :heavy_minus_sign: | N/A | true |
| `refreshing` | *boolean* | :heavy_minus_sign: | N/A | false |
| `thumb` | *string* | :heavy_minus_sign: | N/A | /:/resources/movie.png |
| `key` | *string* | :heavy_minus_sign: | N/A | 1 |
| `type` | *string* | :heavy_minus_sign: | N/A | movie |
| `title` | *string* | :heavy_minus_sign: | N/A | Movies |
| `agent` | *string* | :heavy_minus_sign: | N/A | tv.plex.agents.movie |
| `scanner` | *string* | :heavy_minus_sign: | N/A | Plex Movie |
| `language` | *string* | :heavy_minus_sign: | N/A | en-US |
| `uuid` | *string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
| `updatedAt` | *number* | :heavy_minus_sign: | Unix epoch datetime | 1556281940 |
| `createdAt` | *number* | :heavy_minus_sign: | Unix epoch datetime | 1556281940 |
| `scannedAt` | *number* | :heavy_minus_sign: | Unix epoch datetime | 1556281940 |
| `content` | *boolean* | :heavy_minus_sign: | N/A | true |
| `directory` | *boolean* | :heavy_minus_sign: | N/A | true |
| `contentChangedAt` | *number* | :heavy_minus_sign: | N/A | 3192854 |
| `hidden` | *number* | :heavy_minus_sign: | N/A | 0 |
| `location` | [models.Location](../models/location.md)[] | :heavy_minus_sign: | N/A | |

View File

@@ -1,21 +0,0 @@
# GetAllLibrariesErrors
## Example Usage
```typescript
import { GetAllLibrariesErrors } from "@lukehagar/plexjs";
let value: GetAllLibrariesErrors = {
code: 1001,
message: "User could not be authenticated",
status: 401,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `code` | *number* | :heavy_minus_sign: | N/A | 1001 |
| `message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `status` | *number* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -1,18 +0,0 @@
# GetAllLibrariesLibraryResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Example Usage
```typescript
import { GetAllLibrariesLibraryResponseBody } from "@lukehagar/plexjs";
// No examples available for this model
```
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `errors` | [models.GetAllLibrariesErrors](../models/getalllibrarieserrors.md)[] | :heavy_minus_sign: | N/A |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,52 +0,0 @@
# GetAllLibrariesMediaContainer
## Example Usage
```typescript
import { GetAllLibrariesMediaContainer } from "@lukehagar/plexjs";
let value: GetAllLibrariesMediaContainer = {
size: 5,
allowSync: false,
title1: "Plex Library",
directory: [
{
allowSync: true,
art: "/:/resources/movie-fanart.jpg",
composite: "/library/sections/1/composite/1705615584",
filters: true,
refreshing: false,
thumb: "/:/resources/movie.png",
key: "1",
type: "movie",
title: "Movies",
agent: "tv.plex.agents.movie",
scanner: "Plex Movie",
language: "en-US",
uuid: "322a231a-b7f7-49f5-920f-14c61199cd30",
updatedAt: 1556281940,
createdAt: 1556281940,
scannedAt: 1556281940,
content: true,
directory: true,
contentChangedAt: 3192854,
hidden: 0,
location: [
{
id: 1,
path: "/movies",
},
],
},
],
};
```
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| `size` | *number* | :heavy_check_mark: | N/A | 5 |
| `allowSync` | *boolean* | :heavy_check_mark: | N/A | false |
| `title1` | *string* | :heavy_check_mark: | N/A | Plex Library |
| `directory` | [models.GetAllLibrariesDirectory](../models/getalllibrariesdirectory.md)[] | :heavy_minus_sign: | N/A | |

View File

@@ -1,61 +0,0 @@
# GetAllLibrariesResponse
## Example Usage
```typescript
import { GetAllLibrariesResponse } from "@lukehagar/plexjs";
let value: GetAllLibrariesResponse = {
contentType: "<value>",
statusCode: 613064,
rawResponse: new Response('{"message": "hello world"}', {
headers: { "Content-Type": "application/json" },
}),
object: {
mediaContainer: {
size: 5,
allowSync: false,
title1: "Plex Library",
directory: [
{
allowSync: true,
art: "/:/resources/movie-fanart.jpg",
composite: "/library/sections/1/composite/1705615584",
filters: true,
refreshing: false,
thumb: "/:/resources/movie.png",
key: "1",
type: "movie",
title: "Movies",
agent: "tv.plex.agents.movie",
scanner: "Plex Movie",
language: "en-US",
uuid: "322a231a-b7f7-49f5-920f-14c61199cd30",
updatedAt: 1556281940,
createdAt: 1556281940,
scannedAt: 1556281940,
content: true,
directory: true,
contentChangedAt: 3192854,
hidden: 0,
location: [
{
id: 1,
path: "/movies",
},
],
},
],
},
},
};
```
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
| `object` | [models.GetAllLibrariesResponseBody](../models/getalllibrariesresponsebody.md) | :heavy_minus_sign: | The libraries available on the Server |

View File

@@ -1,53 +0,0 @@
# GetAllLibrariesResponseBody
The libraries available on the Server
## Example Usage
```typescript
import { GetAllLibrariesResponseBody } from "@lukehagar/plexjs";
let value: GetAllLibrariesResponseBody = {
mediaContainer: {
size: 5,
allowSync: false,
title1: "Plex Library",
directory: [
{
allowSync: true,
art: "/:/resources/movie-fanart.jpg",
composite: "/library/sections/1/composite/1705615584",
filters: true,
refreshing: false,
thumb: "/:/resources/movie.png",
key: "1",
type: "movie",
title: "Movies",
agent: "tv.plex.agents.movie",
scanner: "Plex Movie",
language: "en-US",
uuid: "322a231a-b7f7-49f5-920f-14c61199cd30",
updatedAt: 1556281940,
createdAt: 1556281940,
scannedAt: 1556281940,
content: true,
directory: true,
contentChangedAt: 3192854,
hidden: 0,
location: [
{
id: 1,
path: "/movies",
},
],
},
],
},
};
```
## Fields
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| `mediaContainer` | [models.GetAllLibrariesMediaContainer](../models/getalllibrariesmediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -1,21 +0,0 @@
# GetAvailableClientsErrors
## Example Usage
```typescript
import { GetAvailableClientsErrors } from "@lukehagar/plexjs";
let value: GetAvailableClientsErrors = {
code: 1001,
message: "User could not be authenticated",
status: 401,
};
```
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `code` | *number* | :heavy_minus_sign: | N/A | 1001 |
| `message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `status` | *number* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -1,33 +0,0 @@
# GetAvailableClientsMediaContainer
## Example Usage
```typescript
import { GetAvailableClientsMediaContainer } from "@lukehagar/plexjs";
let value: GetAvailableClientsMediaContainer = {
size: 1,
server: [
{
name: "iPad",
host: "10.10.10.102",
address: "10.10.10.102",
port: 32500,
machineIdentifier: "A2E901F8-E016-43A7-ADFB-EF8CA8A4AC05",
version: "8.17",
protocol: "plex",
product: "Plex for iOS",
deviceClass: "tablet",
protocolVersion: 2,
protocolCapabilities: "playback,playqueues,timeline,provider-playback",
},
],
};
```
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `size` | *number* | :heavy_minus_sign: | N/A | 1 |
| `server` | [models.GetAvailableClientsServer](../models/getavailableclientsserver.md)[] | :heavy_minus_sign: | N/A | |

Some files were not shown because too many files have changed in this diff Show More