mirror of
https://github.com/LukeHagar/plex-api-spec.git
synced 2025-12-06 04:20:40 +00:00
Complete Overhaul
This commit is contained in:
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -1,2 +0,0 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
2
.github/PULL_REQUEST_TEMPLATE/default.md
vendored
2
.github/PULL_REQUEST_TEMPLATE/default.md
vendored
@@ -2,4 +2,4 @@
|
||||
|
||||
@coderabbitai summary
|
||||
|
||||
Fixes # (issue)
|
||||
Fixes # (issue)
|
||||
|
||||
32
.github/workflows/build-and-copy-pms-spec.yml
vendored
32
.github/workflows/build-and-copy-pms-spec.yml
vendored
@@ -1,32 +0,0 @@
|
||||
name: Build and Copy Dereferenced Plex Media Server API Spec
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- src/**
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
dereference_api:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Project Setup
|
||||
uses: ./.github/workflows/steps/project-setup
|
||||
|
||||
- name: Dereference Plex Media Server Specification
|
||||
run: bun run build
|
||||
|
||||
- name: Commit Dereferenced Specification File
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
commit_message: "build: dereferenced Plex Media Server API Spec updated"
|
||||
skip_checkout: true
|
||||
skip_fetch: true
|
||||
add_options: "-f"
|
||||
file_pattern: "./output/*.yaml"
|
||||
skip_dirty_check: true
|
||||
55
.github/workflows/pull-request-checks.yaml
vendored
55
.github/workflows/pull-request-checks.yaml
vendored
@@ -1,55 +0,0 @@
|
||||
name: Checks
|
||||
"on":
|
||||
pull_request:
|
||||
paths:
|
||||
- src/**
|
||||
- tests/**
|
||||
|
||||
jobs:
|
||||
unit-test:
|
||||
name: Run Unit Tests
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Project Setup
|
||||
uses: ./.github/workflows/steps/project-setup
|
||||
|
||||
- name: Bundle OpenAPI Spec
|
||||
run: bun run build
|
||||
|
||||
- name: Run Unit Tests
|
||||
run: bun run test
|
||||
|
||||
type-check:
|
||||
name: Run Type Check
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Project Setup
|
||||
uses: ./.github/workflows/steps/project-setup
|
||||
|
||||
- name: Run Unit Tests
|
||||
run: bun run type-check
|
||||
|
||||
lint:
|
||||
name: Run OpenApi Lint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Project Setup
|
||||
uses: ./.github/workflows/steps/project-setup
|
||||
|
||||
- name: OpenAPI Lint
|
||||
run: bun run lint
|
||||
|
||||
- name: Install Speakeasy CLI
|
||||
run: bun run setup-speakeasy-cli
|
||||
|
||||
- name: Bundle OpenAPI Spec
|
||||
run: bun run build
|
||||
|
||||
- name: OpenAPI Lint On Bundled Spec
|
||||
run: bun run lint-bundled
|
||||
2
.github/workflows/sdk_generation.yaml
vendored
2
.github/workflows/sdk_generation.yaml
vendored
@@ -18,7 +18,7 @@ permissions:
|
||||
- main
|
||||
paths:
|
||||
- .github/workflows/sdk_generation.yaml
|
||||
- output/plex-media-server-spec-dereferenced.yaml
|
||||
- ./plex-api-spec.yaml
|
||||
jobs:
|
||||
generate:
|
||||
uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
name: "Project Setup"
|
||||
description: "Setup Bun and install dependencies"
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Setup Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
with:
|
||||
bun-version: "latest"
|
||||
- name: Clean install node_modules
|
||||
shell: bash
|
||||
run: bun install
|
||||
40
.gitignore
vendored
40
.gitignore
vendored
@@ -1,8 +1,34 @@
|
||||
.idea
|
||||
.spectral.mjs
|
||||
.vscode
|
||||
.stoplight
|
||||
.stoplight.json
|
||||
# dependencies (bun install)
|
||||
node_modules
|
||||
output
|
||||
build
|
||||
|
||||
# output
|
||||
out
|
||||
dist
|
||||
*.tgz
|
||||
|
||||
# code coverage
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# logs
|
||||
logs
|
||||
_.log
|
||||
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
|
||||
|
||||
# dotenv environment variable files
|
||||
.env
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
.env.local
|
||||
|
||||
# caches
|
||||
.eslintcache
|
||||
.cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# IntelliJ based IDEs
|
||||
.idea
|
||||
|
||||
# Finder (MacOS) folder config
|
||||
.DS_Store
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# Ignore artifacts:
|
||||
build
|
||||
coverage
|
||||
output
|
||||
LICENSE.md
|
||||
|
||||
package-lock.json
|
||||
package.json
|
||||
tsconfig.json
|
||||
README.md
|
||||
|
||||
10
.prettierrc
10
.prettierrc
@@ -1,11 +1,3 @@
|
||||
{
|
||||
"insertPragma": false,
|
||||
"tabWidth": 2,
|
||||
"useTabs": false,
|
||||
"semi": false,
|
||||
"singleQuote": false,
|
||||
"bracketSpacing": true,
|
||||
"proseWrap": "preserve",
|
||||
"trailingComma": "none",
|
||||
"endOfLine": "lf"
|
||||
"plugins": ["prettier-plugin-openapi"]
|
||||
}
|
||||
|
||||
@@ -4,7 +4,3 @@ rulesets:
|
||||
PathParamRuleset:
|
||||
rulesets:
|
||||
- speakeasy-generation # Use the speakeasy-generation ruleset as a base
|
||||
rules:
|
||||
path-params: {
|
||||
severity: warn, # drop the severity of the `path-params` rule as I don't want this to block the pipeline
|
||||
}
|
||||
@@ -9,12 +9,10 @@ sources:
|
||||
- main
|
||||
plexapi:
|
||||
sourceNamespace: plexapi
|
||||
sourceRevisionDigest: sha256:64fe40513ecf067dfc73c0539155098dc6a5bdc615803089ebb9697b3d270aba
|
||||
sourceBlobDigest: sha256:a4c8aa152d9b3f8084032bc5e2388fe9e8ba13510d796c7d88e9177ac7845500
|
||||
sourceRevisionDigest: sha256:edf35a1fb3134c8b4075473e08d8327bc3538a75ac07e31c2aaa0c687ad209cf
|
||||
sourceBlobDigest: sha256:f7d882c21a49905c7811067bf4e730a3a5807253b505f1a42e483121e10af150
|
||||
tags:
|
||||
- latest
|
||||
- speakeasy-sdk-regen-1760232837
|
||||
- 0.0.3
|
||||
targets: {}
|
||||
workflow:
|
||||
workflowVersion: 1.0.0
|
||||
@@ -22,7 +20,7 @@ workflow:
|
||||
sources:
|
||||
plexapi:
|
||||
inputs:
|
||||
- location: ./output/plex-media-server-spec-dereferenced.yaml
|
||||
- location: ./plex-api-spec.yaml
|
||||
registry:
|
||||
location: registry.speakeasyapi.dev/plexapi/plexapi/plexapi
|
||||
targets: {}
|
||||
|
||||
@@ -3,7 +3,7 @@ speakeasyVersion: latest
|
||||
sources:
|
||||
plexapi:
|
||||
inputs:
|
||||
- location: ./output/plex-media-server-spec-dereferenced.yaml
|
||||
- location: ./plex-api-spec.yaml
|
||||
registry:
|
||||
location: registry.speakeasyapi.dev/plexapi/plexapi/plexapi
|
||||
targets: {}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
Copyright 2024 Luke Hagar
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
79
README.md
79
README.md
@@ -22,82 +22,3 @@ The following SDKs are generated from the OpenAPI Specification. They are automa
|
||||
| PHP | [GitHub](https://github.com/LukeHagar/plexphp) | [Releases](https://github.com/LukeHagar/plexphp/releases) | - |
|
||||
| Java | [GitHub](https://github.com/LukeHagar/plexjava) | [Releases](https://github.com/LukeHagar/plexjava/releases) | - |
|
||||
| C# | [GitHub](https://github.com/LukeHagar/plexcsharp) | [Releases](https://github.com/LukeHagar/plexcsharp/releases) | - |
|
||||
|
||||
## Project Structure
|
||||
|
||||
The main OpenAPI Specification is located in the root directory as [pms-spec.yaml](https://github.com/LukeHagar/plex-api-spec/blob/main/src/pms-spec.yaml), which references the following directories:
|
||||
|
||||
- [**/paths**](https://github.com/LukeHagar/plex-api-spec/tree/main/paths): The endpoints for the Plex Media Server API. Each endpoint is defined in a separate file.
|
||||
- [**/models**](https://github.com/LukeHagar/plex-api-spec/tree/main/models): The schema models used in the specification.
|
||||
- [**/parameters**](https://github.com/LukeHagar/plex-api-spec/tree/main/parameters): The parameters used in the specification.
|
||||
- [**/responses**](https://github.com/LukeHagar/plex-api-spec/tree/main/responses): The responses used in the specification.
|
||||
|
||||
In addition, there is a bundled single file OpenAPI Specification, [plex-media-server-spec-dereferenced.yaml](https://github.com/LukeHagar/plex-api-spec/blob/main/plex-media-server-spec-dereferenced.yaml) which is automatically bundled on any changes to the main specification.
|
||||
|
||||
## Style Guide
|
||||
|
||||
All spec files should adhere to the 3.1 OpenAPI Specification.
|
||||
|
||||
Reference documentation can be found [Here](https://www.speakeasy.com/openapi) and [Here](https://spec.openapis.org/oas/v3.1.0.html#openapi-specification).
|
||||
|
||||
Every endpoint is defined in the `/paths` directory, with Each endpoint defined in a separate file.
|
||||
The file name should be the endpoint name with the method type. For example, the endpoint `/library/sections` is defined in the file `/paths/library_sections.get.yaml`.
|
||||
|
||||
The file should contain data in the following order:
|
||||
|
||||
```yaml
|
||||
[get/post/put/delete]:
|
||||
servers: # only specify if the endpoint requires a different server than the users plex server
|
||||
security: # only specify if the endpoint requires authentication different from the global security
|
||||
tags:
|
||||
- example # a list of tags that the endpoint belongs to, this is used for grouping in the documentation and SDKs
|
||||
summary: a brief description of the endpoint
|
||||
description: a more detailed description of the endpoint
|
||||
operationId: anExampleOperationId # camel case summarizing the action being performed.
|
||||
parameters: # parameters are defined in the /parameters directory, or inline if they are not reused very much
|
||||
- $ref: "../../parameters/..." # a reference to a parameter file in the /parameters directory
|
||||
- name: example # a parameter that is not a reference
|
||||
in: query # the location of the parameter, can be query, path, header, or cookie
|
||||
description: an example parameter
|
||||
required: true # whether the parameter is required or not, path parameters are always required. Only specify this key if the parameter is required
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
2XX:
|
||||
$ref: "../../responses/..." # a reference to a response file in the /responses directory
|
||||
4XX:
|
||||
5XX:
|
||||
```
|
||||
|
||||
### Headers
|
||||
|
||||
Plex Media Server accept a variety of custom headers that follow the pattern `X-Plex-{name}`.
|
||||
|
||||
The full set of headers isn't enumerated here since some may only apply to certain endpoints, but common headers that can be included on all requests include:
|
||||
|
||||
| Header | Description | Sample |
|
||||
| --- | --- | --- |
|
||||
| X-Plex-Client-Identifier | An opaque identifier unique to the client | abc123 |
|
||||
| X-Plex-Token | An authentication token, obtained from plex.tv | XXXXXXXXXXXX |
|
||||
| X-Plex-Product | The name of the client product | Plex for Roku |
|
||||
| X-Plex-Version | The version of the client application | 2.4.1 |
|
||||
| X-Plex-Platform | The platform of the client | Roku |
|
||||
| X-Plex-Platform-Version | The version of the platform | 4.3 build 1057 |
|
||||
| X-Plex-Device | A relatively friendly name for the client device | Roku 3 |
|
||||
| X-Plex-Model | A potentially less friendly identifier for the device model | 4200X |
|
||||
| X-Plex-Device-Vendor | The device vendor | Roku |
|
||||
| X-Plex-Device-Name | A friendly name for the client | Living Room TV |
|
||||
| X-Plex-Marketplace | The marketplace on which the client application is distributed | googlePlay |
|
||||
|
||||
X-Plex-Client-Identifier is typically required, as is X-Plex-Token for authentication.
|
||||
|
||||
### Rules
|
||||
|
||||
- A property in the response is only marked as required if it is always returned, regardless of the parameters sent with the request.
|
||||
- Although Plex.tv API uses the `X-Plex-Token` as a query parameter, this specification will always define this as a header parameter where supported since this follows industry security standards.
|
||||
- Though Plex does default return `XML` unless the `accept` header is set to `application/json`, this specification will not include the `accept` header in the endpoints. Assume it should always be included in the request.
|
||||
- Parameters added to endpoints via reference should always be specified at the bottom of the paramters set, since there is a large set of common parameters that are used across all endpoints.
|
||||
|
||||
## Questions?
|
||||
|
||||
Reach out to me on the [Discord Server](https://discord.gg/mxqjsJHwUm)
|
||||
|
||||
1616
description.md
Normal file
1616
description.md
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
50
package.json
50
package.json
@@ -1,50 +0,0 @@
|
||||
{
|
||||
"name": "plex-api-spec",
|
||||
"version": "1.0.0",
|
||||
"description": "An open source Plex Media Server API Specification",
|
||||
"main": "src/pms-spec.yaml",
|
||||
"type": "module",
|
||||
"author": "LukeHagar",
|
||||
"keywords": [
|
||||
"plex",
|
||||
"api",
|
||||
"specification",
|
||||
"openapi",
|
||||
"swagger"
|
||||
],
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"dev": "redocly preview -d=./src",
|
||||
"preview-docs": "redocly preview-docs src/pms-spec.yaml --config=./redocly.yaml",
|
||||
"stats": "redocly stats ./src/pms-spec.yaml",
|
||||
"build": "swagger-cli bundle --dereference ./src/pms-spec.yaml -t yaml -o ./output/plex-media-server-spec-dereferenced.yaml",
|
||||
"build-watch": "bun run build && chokidar './src/**/*' -c 'bun run build'",
|
||||
"build-redocly": "redocly bundle ./src/pms-spec.yaml --ext yaml -o ./output/plex-media-server-spec-dereferenced.yaml",
|
||||
"test": "bun run build && vitest --run",
|
||||
"type-check": "tsc",
|
||||
"setup-speakeasy-cli": "curl -fsSL https://raw.githubusercontent.com/speakeasy-api/speakeasy/main/install.sh | sh",
|
||||
"format": "bun prettier . --write",
|
||||
"lint": "redocly lint",
|
||||
"lint-speakeasy": "speakeasy lint openapi -s ./src/pms-spec.yaml",
|
||||
"lint-bundled": "speakeasy lint openapi -s ./output/plex-media-server-spec-dereferenced.yaml"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@modyfi/vite-plugin-yaml": "^1.1.1",
|
||||
"@ngneat/falso": "^7.4.0",
|
||||
"@redocly/cli": "^1.34.3",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/node": "^22.15.30",
|
||||
"chokidar-cli": "^3.0.0",
|
||||
"prettier": "3.5.3",
|
||||
"swagger-cli": "^4.0.4",
|
||||
"typescript": "^5.8.3",
|
||||
"vite-tsconfig-paths": "^5.1.4",
|
||||
"vitest": "^3.2.2",
|
||||
"xml-js": "^1.6.11"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": "^8.17.1",
|
||||
"ajv-formats": "^3.0.1",
|
||||
"lodash-es": "^4.17.21"
|
||||
}
|
||||
}
|
||||
15130
plex-api-spec.yaml
Normal file
15130
plex-api-spec.yaml
Normal file
File diff suppressed because it is too large
Load Diff
10
redocly.yaml
10
redocly.yaml
@@ -1,10 +0,0 @@
|
||||
extends:
|
||||
- recommended-strict
|
||||
|
||||
apis:
|
||||
core@v1:
|
||||
root: ./src/pms-spec.yaml
|
||||
|
||||
rules:
|
||||
no-ambiguous-paths: off
|
||||
no-server-trailing-slash: off
|
||||
@@ -1,102 +0,0 @@
|
||||
type: object
|
||||
x-examples:
|
||||
Example 1:
|
||||
id: 373040866
|
||||
code: 7RQZ
|
||||
product: "0"
|
||||
trusted: false
|
||||
qr: "https://plex.tv/api/v2/pins/qr/7RQZ"
|
||||
clientIdentifier: 9klpwueublnfbvlx95w83ah9
|
||||
location:
|
||||
code: NL
|
||||
european_union_member: true
|
||||
continent_code: EU
|
||||
country: The Netherlands
|
||||
city: Breda
|
||||
time_zone: Europe/Amsterdam
|
||||
postal_code: "4814"
|
||||
in_privacy_restricted_country: true
|
||||
in_privacy_restricted_region: true
|
||||
subdivisions: North Brabant
|
||||
coordinates: "51.5869, 4.7471"
|
||||
expiresIn: 876
|
||||
createdAt: "2024-07-16T17:03:05Z"
|
||||
expiresAt: "2024-07-16T17:18:05Z"
|
||||
authToken: null
|
||||
newRegistration: null
|
||||
title: AuthPinContainer
|
||||
examples:
|
||||
- id: 308667304
|
||||
code: 7RQZ
|
||||
product: "0"
|
||||
trusted: false
|
||||
qr: "https://plex.tv/api/v2/pins/qr/7RQZ"
|
||||
clientIdentifier: string
|
||||
location:
|
||||
code: VI
|
||||
continent_code: NA
|
||||
country: United States Virgin Islands
|
||||
city: Amsterdam
|
||||
european_union_member: true
|
||||
time_zone: America/St_Thomas
|
||||
postal_code: 802
|
||||
in_privacy_restricted_country: true
|
||||
in_privacy_restricted_region: true
|
||||
subdivisions: Saint Thomas
|
||||
coordinates: "18.3381, -64.8941"
|
||||
expiresIn: 876
|
||||
createdAt: "2024-07-16T17:03:05Z"
|
||||
expiresAt: "2024-07-16T17:18:05Z"
|
||||
authToken: null
|
||||
newRegistration: null
|
||||
required:
|
||||
- id
|
||||
- code
|
||||
- product
|
||||
- trusted
|
||||
- qr
|
||||
- clientIdentifier
|
||||
- location
|
||||
- expiresIn
|
||||
- createdAt
|
||||
- expiresAt
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
example: 308667304
|
||||
code:
|
||||
type: string
|
||||
example: 7RQZ
|
||||
product:
|
||||
type: string
|
||||
example: "Tautulli"
|
||||
trusted:
|
||||
type: boolean
|
||||
default: false
|
||||
qr:
|
||||
type: string
|
||||
example: "https://plex.tv/api/v2/pins/qr/7RQZ"
|
||||
clientIdentifier:
|
||||
type: string
|
||||
description: The X-Client-Identifier used in the request
|
||||
example: "Tautulli"
|
||||
location:
|
||||
$ref: ./GeoData.yaml
|
||||
expiresIn:
|
||||
type: integer
|
||||
example: 876
|
||||
description: "The number of seconds this pin expires, by default 900 seconds"
|
||||
default: 900
|
||||
createdAt:
|
||||
type: string
|
||||
example: "2024-07-16T17:03:05Z"
|
||||
format: date-time
|
||||
expiresAt:
|
||||
type: string
|
||||
format: date-time
|
||||
example: "2024-07-16T17:18:05Z"
|
||||
authToken:
|
||||
type: [string, "null"]
|
||||
example: "gcgzw5rz2xovp84b4vha3a40"
|
||||
newRegistration:
|
||||
type: "null"
|
||||
@@ -1,85 +0,0 @@
|
||||
title: Friend
|
||||
type: object
|
||||
examples:
|
||||
- email: username@email.com
|
||||
friendlyName: exampleUser
|
||||
home: true
|
||||
id: 0
|
||||
restricted: false
|
||||
sharedServers: []
|
||||
sharedSources: []
|
||||
status: accepted
|
||||
thumb: "https://plex.tv/users/7d1916e0d8f6e76b/avatar?c=1694481578"
|
||||
title: username123
|
||||
username: username123
|
||||
uuid: 7d1916e0d8f6e76b
|
||||
required:
|
||||
- email
|
||||
- friendlyName
|
||||
- home
|
||||
- id
|
||||
- restricted
|
||||
- sharedServers
|
||||
- sharedSources
|
||||
- status
|
||||
- thumb
|
||||
- title
|
||||
- username
|
||||
- uuid
|
||||
properties:
|
||||
email:
|
||||
type: string
|
||||
format: email
|
||||
example: username@email.com
|
||||
description: The account email address
|
||||
friendlyName:
|
||||
examples:
|
||||
- exampleUser
|
||||
- null
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
description: The account full name
|
||||
home:
|
||||
type: boolean
|
||||
description: If the account is a Plex Home user
|
||||
id:
|
||||
type: integer
|
||||
format: int32
|
||||
description: The Plex account ID
|
||||
restricted:
|
||||
type: boolean
|
||||
default: false
|
||||
description: If the account is a Plex Home managed user
|
||||
sharedServers:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
sharedSources:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
status:
|
||||
examples:
|
||||
- accepted
|
||||
x-speakeasy-unknown-values: allow
|
||||
enum:
|
||||
- accepted
|
||||
description: Current friend request status
|
||||
thumb:
|
||||
type: string
|
||||
example: "https://plex.tv/users/7d1916e0d8f6e76b/avatar?c=1694481578"
|
||||
format: uri
|
||||
description: URL of the account thumbnail
|
||||
title:
|
||||
type: string
|
||||
example: username123
|
||||
description: The title of the account (username or friendly name)
|
||||
username:
|
||||
type: string
|
||||
example: username123
|
||||
description: The account username
|
||||
uuid:
|
||||
type: string
|
||||
example: 7d1916e0d8f6e76b
|
||||
description: The account Universally Unique Identifier (UUID)
|
||||
@@ -1,75 +0,0 @@
|
||||
title: GeoData
|
||||
type: object
|
||||
description: "Geo location data"
|
||||
examples:
|
||||
- code: VI
|
||||
continent_code: NA
|
||||
country: United States Virgin Islands
|
||||
city: Amsterdam
|
||||
european_union_member: true
|
||||
time_zone: America/St_Thomas
|
||||
postal_code: 802
|
||||
in_privacy_restricted_country: true
|
||||
in_privacy_restricted_region: true
|
||||
subdivisions: Saint Thomas
|
||||
coordinates: "18.3381, -64.8941"
|
||||
required:
|
||||
- code
|
||||
- continent_code
|
||||
- country
|
||||
- city
|
||||
- european_union_member
|
||||
- time_zone
|
||||
- postal_code
|
||||
- in_privacy_restricted_country
|
||||
- in_privacy_restricted_region
|
||||
- subdivisions
|
||||
- coordinates
|
||||
properties:
|
||||
code:
|
||||
type: string
|
||||
description: The ISO 3166-1 alpha-2 code of the country.
|
||||
example: VI
|
||||
continent_code:
|
||||
type: string
|
||||
description: The continent code where the country is located.
|
||||
example: NA
|
||||
country:
|
||||
type: string
|
||||
description: The official name of the country.
|
||||
example: United States Virgin Islands
|
||||
city:
|
||||
type: string
|
||||
description: The name of the city.
|
||||
example: Amsterdam
|
||||
european_union_member:
|
||||
type: boolean
|
||||
description: Indicates if the country is a member of the European Union.
|
||||
example: true
|
||||
default: false
|
||||
time_zone:
|
||||
type: string
|
||||
description: The time zone of the country.
|
||||
example: America/St_Thomas
|
||||
postal_code:
|
||||
type: string
|
||||
description: The postal code of the location.
|
||||
example: "802"
|
||||
in_privacy_restricted_country:
|
||||
type: boolean
|
||||
description: Indicates if the country has privacy restrictions.
|
||||
example: true
|
||||
default: false
|
||||
in_privacy_restricted_region:
|
||||
type: boolean
|
||||
description: Indicates if the region has privacy restrictions.
|
||||
example: true
|
||||
default: false
|
||||
subdivisions:
|
||||
type: string
|
||||
description: The name of the primary administrative subdivision.
|
||||
example: Saint Thomas
|
||||
coordinates:
|
||||
type: string
|
||||
description: "The geographical coordinates (latitude, longitude) of the location."
|
||||
example: "18.3381, -64.8941"
|
||||
@@ -1,403 +0,0 @@
|
||||
type: array
|
||||
description: "An array of media file data items."
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
description: "Unique media identifier."
|
||||
example: 387322
|
||||
duration:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Duration of the media in milliseconds."
|
||||
example: 9610350
|
||||
bitrate:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Bitrate in bits per second."
|
||||
example: 25512
|
||||
width:
|
||||
type: integer
|
||||
description: "Video width in pixels."
|
||||
example: 3840
|
||||
format: int32
|
||||
height:
|
||||
type: integer
|
||||
description: "Video height in pixels."
|
||||
example: 1602
|
||||
format: int32
|
||||
aspectRatio:
|
||||
type: number
|
||||
format: float
|
||||
description: "Aspect ratio of the video."
|
||||
example: 2.35
|
||||
audioChannels:
|
||||
type: integer
|
||||
description: "Number of audio channels."
|
||||
example: 6
|
||||
format: int32
|
||||
displayOffset:
|
||||
type: integer
|
||||
format: int32
|
||||
example: 50
|
||||
audioCodec:
|
||||
type: string
|
||||
description: "Audio codec used."
|
||||
example: "eac3"
|
||||
videoCodec:
|
||||
type: string
|
||||
description: "Video codec used."
|
||||
example: "hevc"
|
||||
videoResolution:
|
||||
type: string
|
||||
description: "Video resolution (e.g., 4k)."
|
||||
example: "4k"
|
||||
container:
|
||||
type: string
|
||||
description: "File container type."
|
||||
example: "mkv"
|
||||
videoFrameRate:
|
||||
type: string
|
||||
description: |
|
||||
Frame rate of the video. Values found include NTSC, PAL, 24p
|
||||
example: "24p"
|
||||
videoProfile:
|
||||
type: string
|
||||
description: "Video profile (e.g., main 10)."
|
||||
example: "main 10"
|
||||
hasVoiceActivity:
|
||||
type: boolean
|
||||
description: "Indicates whether voice activity is detected."
|
||||
example: false
|
||||
audioProfile:
|
||||
type: string
|
||||
description: "The audio profile used for the media (e.g., DTS, Dolby Digital, etc.)."
|
||||
example: "dts"
|
||||
optimizedForStreaming:
|
||||
description: "Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true"
|
||||
oneOf:
|
||||
- type: integer
|
||||
format: int32
|
||||
enum: [0, 1]
|
||||
- type: boolean
|
||||
enum: [true, false]
|
||||
has64bitOffsets:
|
||||
type: boolean
|
||||
example: false
|
||||
Part:
|
||||
type: array
|
||||
description: "An array of parts for this media item."
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
- key
|
||||
- file
|
||||
- size
|
||||
properties:
|
||||
accessible:
|
||||
type: boolean
|
||||
description: "Indicates if the part is accessible."
|
||||
example: true
|
||||
exists:
|
||||
type: boolean
|
||||
description: "Indicates if the part exists."
|
||||
example: true
|
||||
id:
|
||||
type: integer
|
||||
description: "Unique part identifier."
|
||||
example: 418385
|
||||
key:
|
||||
type: string
|
||||
description: "Key to access this part."
|
||||
example: "/library/parts/418385/1735864239/file.mkv"
|
||||
indexes:
|
||||
type: string
|
||||
example: "sd"
|
||||
duration:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Duration of the part in milliseconds."
|
||||
example: 9610350
|
||||
file:
|
||||
type: string
|
||||
description: "File path for the part."
|
||||
example: "/mnt/Movies_1/W/Wicked (2024).mkv"
|
||||
size:
|
||||
description: "File size in bytes."
|
||||
type: integer
|
||||
example: 30649952104
|
||||
packetLength:
|
||||
type: integer
|
||||
format: int32
|
||||
example: 188
|
||||
container:
|
||||
type: string
|
||||
description: "Container format of the part."
|
||||
example: "mkv"
|
||||
videoProfile:
|
||||
type: string
|
||||
description: "Video profile for the part."
|
||||
example: "main 10"
|
||||
audioProfile:
|
||||
type: string
|
||||
description: "The audio profile used for the media (e.g., DTS, Dolby Digital, etc.)."
|
||||
example: "dts"
|
||||
has64bitOffsets:
|
||||
type: boolean
|
||||
example: false
|
||||
optimizedForStreaming:
|
||||
description: "Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true"
|
||||
oneOf:
|
||||
- type: integer
|
||||
format: int32
|
||||
enum: [0, 1]
|
||||
- type: boolean
|
||||
enum: [true, false]
|
||||
hasThumbnail:
|
||||
allOf:
|
||||
- description: "Indicates if the part has a thumbnail."
|
||||
- $ref: "../models/common/PlexBooleanString.yaml"
|
||||
Stream:
|
||||
type: array
|
||||
description: "An array of streams for this part."
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
- streamType
|
||||
- codec
|
||||
- displayTitle
|
||||
- extendedDisplayTitle
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
description: "Unique stream identifier."
|
||||
example: 1002625
|
||||
streamType:
|
||||
type: integer
|
||||
oneOf:
|
||||
- title: VIDEO
|
||||
const: 1
|
||||
description: Video stream
|
||||
- title: AUDIO
|
||||
const: 2
|
||||
description: Audio stream
|
||||
- title: SUBTITLE
|
||||
const: 3
|
||||
description: Subtitle stream
|
||||
example: 1
|
||||
description: |
|
||||
Stream type:
|
||||
- VIDEO = 1
|
||||
- AUDIO = 2
|
||||
- SUBTITLE = 3
|
||||
format:
|
||||
type: string
|
||||
description: "Format of the stream (e.g., srt)."
|
||||
example: "srt"
|
||||
default:
|
||||
type: boolean
|
||||
description: "Indicates if this stream is default."
|
||||
example: true
|
||||
codec:
|
||||
type: string
|
||||
description: "Codec used by the stream."
|
||||
example: "hevc"
|
||||
index:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Index of the stream."
|
||||
example: 0
|
||||
bitrate:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Bitrate of the stream."
|
||||
example: 24743
|
||||
language:
|
||||
type: string
|
||||
description: "Language of the stream."
|
||||
example: "English"
|
||||
languageTag:
|
||||
type: string
|
||||
description: "Language tag (e.g., en)."
|
||||
example: "en"
|
||||
languageCode:
|
||||
type: string
|
||||
description: "ISO language code."
|
||||
example: "eng"
|
||||
headerCompression:
|
||||
type: boolean
|
||||
description: "Indicates whether header compression is enabled."
|
||||
example: true
|
||||
DOVIBLCompatID:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Dolby Vision BL compatibility ID."
|
||||
example: 1
|
||||
DOVIBLPresent:
|
||||
type: boolean
|
||||
description: "Indicates if Dolby Vision BL is present."
|
||||
example: true
|
||||
DOVIELPresent:
|
||||
type: boolean
|
||||
description: "Indicates if Dolby Vision EL is present."
|
||||
example: false
|
||||
DOVILevel:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Dolby Vision level."
|
||||
example: 6
|
||||
DOVIPresent:
|
||||
type: boolean
|
||||
description: "Indicates if Dolby Vision is present."
|
||||
example: true
|
||||
DOVIProfile:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Dolby Vision profile."
|
||||
example: 8
|
||||
DOVIRPUPresent:
|
||||
type: boolean
|
||||
description: "Indicates if Dolby Vision RPU is present."
|
||||
example: true
|
||||
DOVIVersion:
|
||||
type: string
|
||||
description: "Dolby Vision version."
|
||||
example: "1.0"
|
||||
bitDepth:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Bit depth of the video stream."
|
||||
example: 10
|
||||
chromaLocation:
|
||||
type: string
|
||||
description: "Chroma sample location."
|
||||
example: "topleft"
|
||||
chromaSubsampling:
|
||||
type: string
|
||||
description: "Chroma subsampling format."
|
||||
example: "4:2:0"
|
||||
codedHeight:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Coded video height."
|
||||
example: 1608
|
||||
codedWidth:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Coded video width."
|
||||
example: 3840
|
||||
closedCaptions:
|
||||
type: boolean
|
||||
example: true
|
||||
colorPrimaries:
|
||||
type: string
|
||||
description: "Color primaries used."
|
||||
example: "bt2020"
|
||||
colorRange:
|
||||
type: string
|
||||
description: "Color range (e.g., tv)."
|
||||
example: "tv"
|
||||
colorSpace:
|
||||
type: string
|
||||
description: "Color space."
|
||||
example: "bt2020nc"
|
||||
colorTrc:
|
||||
type: string
|
||||
description: "Color transfer characteristics."
|
||||
example: "smpte2084"
|
||||
frameRate:
|
||||
type: number
|
||||
format: float
|
||||
description: "Frame rate of the stream."
|
||||
example: 23.976
|
||||
key:
|
||||
type: string
|
||||
description: "Key to access this stream part."
|
||||
example: "/library/streams/216389"
|
||||
height:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Height of the video stream."
|
||||
example: 1602
|
||||
level:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Video level."
|
||||
example: 150
|
||||
original:
|
||||
type: boolean
|
||||
description: "Indicates if this is the original stream."
|
||||
example: true
|
||||
hasScalingMatrix:
|
||||
type: boolean
|
||||
example: false
|
||||
profile:
|
||||
type: string
|
||||
description: "Video profile."
|
||||
example: "main 10"
|
||||
scanType:
|
||||
type: string
|
||||
example: "progressive"
|
||||
embeddedInVideo:
|
||||
type: string
|
||||
example: "progressive"
|
||||
refFrames:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Number of reference frames."
|
||||
example: 1
|
||||
width:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Width of the video stream."
|
||||
example: 3840
|
||||
displayTitle:
|
||||
type: string
|
||||
description: "Display title for the stream."
|
||||
example: "4K DoVi/HDR10 (HEVC Main 10)"
|
||||
extendedDisplayTitle:
|
||||
type: string
|
||||
description: "Extended display title for the stream."
|
||||
example: "4K DoVi/HDR10 (HEVC Main 10)"
|
||||
selected:
|
||||
type: boolean
|
||||
description: "Indicates if this stream is selected (applicable for audio streams)."
|
||||
example: true
|
||||
forced:
|
||||
type: boolean
|
||||
example: true
|
||||
channels:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Number of audio channels (for audio streams)."
|
||||
example: 6
|
||||
audioChannelLayout:
|
||||
type: string
|
||||
description: "Audio channel layout."
|
||||
example: "5.1(side)"
|
||||
samplingRate:
|
||||
type: integer
|
||||
format: int32
|
||||
description: "Sampling rate for the audio stream."
|
||||
example: 48000
|
||||
canAutoSync:
|
||||
type: boolean
|
||||
description: "Indicates if the stream can auto-sync."
|
||||
example: false
|
||||
hearingImpaired:
|
||||
type: boolean
|
||||
description: "Indicates if the stream is for the hearing impaired."
|
||||
example: true
|
||||
dub:
|
||||
type: boolean
|
||||
description: "Indicates if the stream is a dub."
|
||||
example: true
|
||||
title:
|
||||
type: string
|
||||
description: "Optional title for the stream (e.g., language variant)."
|
||||
example: "SDH"
|
||||
@@ -1,136 +0,0 @@
|
||||
type: object
|
||||
description: |
|
||||
The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
|
||||
properties:
|
||||
Type:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- key
|
||||
- type
|
||||
- title
|
||||
- active
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
example: "/library/sections/2/all?type=2"
|
||||
type:
|
||||
type: string
|
||||
example: filter
|
||||
subtype:
|
||||
type: string
|
||||
example: "clip"
|
||||
title:
|
||||
type: string
|
||||
example: "TV Shows"
|
||||
active:
|
||||
type: boolean
|
||||
example: false
|
||||
Filter:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- filter
|
||||
- filterType
|
||||
- key
|
||||
- title
|
||||
- type
|
||||
properties:
|
||||
filter:
|
||||
type: string
|
||||
example: "genre"
|
||||
filterType:
|
||||
type: string
|
||||
example: "string"
|
||||
key:
|
||||
type: string
|
||||
example: "/library/sections/2/genre?type=2"
|
||||
title:
|
||||
type: string
|
||||
example: "Genre"
|
||||
type:
|
||||
type: string
|
||||
example: "filter"
|
||||
advanced:
|
||||
type: boolean
|
||||
example: true
|
||||
|
||||
Sort:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- key
|
||||
- title
|
||||
- defaultDirection
|
||||
properties:
|
||||
default:
|
||||
type: string
|
||||
example: "asc"
|
||||
active:
|
||||
type: boolean
|
||||
example: false
|
||||
activeDirection:
|
||||
$ref: "../models/common/PlexSortDirection.yaml"
|
||||
defaultDirection:
|
||||
$ref: "../models/common/PlexSortDirection.yaml"
|
||||
descKey:
|
||||
type: string
|
||||
example: "titleSort:desc"
|
||||
firstCharacterKey:
|
||||
type: string
|
||||
example: "/library/sections/2/firstCharacter"
|
||||
key:
|
||||
type: string
|
||||
example: "titleSort"
|
||||
title:
|
||||
type: string
|
||||
example: "Title"
|
||||
Field:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- key
|
||||
- title
|
||||
- type
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
example: "show.title"
|
||||
title:
|
||||
type: string
|
||||
example: "Show Title"
|
||||
type:
|
||||
type: string
|
||||
example: "string"
|
||||
subType:
|
||||
type: string
|
||||
example: "rating"
|
||||
FieldType:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- type
|
||||
- Operator
|
||||
properties:
|
||||
type:
|
||||
type: string
|
||||
example: "tag"
|
||||
Operator:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- key
|
||||
- title
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
example: "="
|
||||
title:
|
||||
type: string
|
||||
example: "is"
|
||||
@@ -1,87 +0,0 @@
|
||||
title: PastSubscription
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
- mode
|
||||
- renewsAt
|
||||
- endsAt
|
||||
- canceled
|
||||
- gracePeriod
|
||||
- onHold
|
||||
- canReactivate
|
||||
- canUpgrade
|
||||
- canDowngrade
|
||||
- canConvert
|
||||
- type
|
||||
- transfer
|
||||
- state
|
||||
- billing
|
||||
properties:
|
||||
id:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
mode:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
renewsAt:
|
||||
oneOf:
|
||||
- $ref: "./common/PlexDateTime.yaml"
|
||||
- type: "null"
|
||||
endsAt:
|
||||
oneOf:
|
||||
- $ref: "./common/PlexDateTime.yaml"
|
||||
- type: "null"
|
||||
canceled:
|
||||
type: boolean
|
||||
example: false
|
||||
default: false
|
||||
gracePeriod:
|
||||
type: boolean
|
||||
example: false
|
||||
default: false
|
||||
onHold:
|
||||
type: boolean
|
||||
example: false
|
||||
default: false
|
||||
canReactivate:
|
||||
type: boolean
|
||||
example: false
|
||||
default: false
|
||||
canUpgrade:
|
||||
type: boolean
|
||||
example: false
|
||||
default: false
|
||||
canDowngrade:
|
||||
type: boolean
|
||||
example: false
|
||||
default: false
|
||||
canConvert:
|
||||
type: boolean
|
||||
example: false
|
||||
default: false
|
||||
type:
|
||||
type: string
|
||||
example: plexpass
|
||||
transfer:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
state:
|
||||
example: ended
|
||||
x-speakeasy-unknown-values: allow
|
||||
enum:
|
||||
- ended
|
||||
billing:
|
||||
type: object
|
||||
required:
|
||||
- internalPaymentMethod
|
||||
- paymentMethodId
|
||||
properties:
|
||||
internalPaymentMethod:
|
||||
type: object
|
||||
paymentMethodId:
|
||||
type:
|
||||
- integer
|
||||
- "null"
|
||||
@@ -1,128 +0,0 @@
|
||||
title: PlexDevice
|
||||
type: object
|
||||
required:
|
||||
- name
|
||||
- product
|
||||
- productVersion
|
||||
- platform
|
||||
- platformVersion
|
||||
- device
|
||||
- clientIdentifier
|
||||
- createdAt
|
||||
- lastSeenAt
|
||||
- provides
|
||||
- ownerId
|
||||
- sourceTitle
|
||||
- publicAddress
|
||||
- accessToken
|
||||
- owned
|
||||
- home
|
||||
- synced
|
||||
- relay
|
||||
- presence
|
||||
- httpsRequired
|
||||
- publicAddressMatches
|
||||
- dnsRebindingProtection
|
||||
- natLoopbackSupported
|
||||
- connections
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
product:
|
||||
type: string
|
||||
productVersion:
|
||||
type: string
|
||||
platform:
|
||||
type:
|
||||
- "null"
|
||||
- string
|
||||
platformVersion:
|
||||
type:
|
||||
- "null"
|
||||
- string
|
||||
device:
|
||||
type:
|
||||
- "null"
|
||||
- string
|
||||
clientIdentifier:
|
||||
type: string
|
||||
createdAt:
|
||||
allOf:
|
||||
- $ref: "./common/PlexDateTimeISO.yaml"
|
||||
- description: The time the device was created/registered
|
||||
lastSeenAt:
|
||||
allOf:
|
||||
- $ref: "./common/PlexDateTimeISO.yaml"
|
||||
- description: The last time the device was seen
|
||||
provides:
|
||||
type: string
|
||||
ownerId:
|
||||
description: ownerId is null when the device is owned by the token used to send the request
|
||||
type:
|
||||
- "null"
|
||||
- integer
|
||||
sourceTitle:
|
||||
type:
|
||||
- "null"
|
||||
- string
|
||||
publicAddress:
|
||||
type: string
|
||||
accessToken:
|
||||
type: string
|
||||
owned:
|
||||
type: boolean
|
||||
home:
|
||||
type: boolean
|
||||
synced:
|
||||
type: boolean
|
||||
relay:
|
||||
type: boolean
|
||||
presence:
|
||||
type: boolean
|
||||
httpsRequired:
|
||||
type: boolean
|
||||
publicAddressMatches:
|
||||
type: boolean
|
||||
dnsRebindingProtection:
|
||||
type: boolean
|
||||
natLoopbackSupported:
|
||||
type: boolean
|
||||
connections:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- protocol
|
||||
- address
|
||||
- port
|
||||
- uri
|
||||
- local
|
||||
- relay
|
||||
- IPv6
|
||||
properties:
|
||||
protocol:
|
||||
description: The protocol used for the connection (http, https, etc)
|
||||
example: "http"
|
||||
type: string
|
||||
enum:
|
||||
- http
|
||||
- https
|
||||
address:
|
||||
description: The (ip) address or domain name used for the connection
|
||||
type: string
|
||||
port:
|
||||
description: The port used for the connection
|
||||
type: integer
|
||||
format: int32
|
||||
uri:
|
||||
description: The full URI of the connection
|
||||
type: string
|
||||
local:
|
||||
description: If the connection is local address
|
||||
type: boolean
|
||||
relay:
|
||||
description: If the connection is relayed through plex.direct
|
||||
type: boolean
|
||||
IPv6:
|
||||
description: If the connection is using IPv6
|
||||
type: boolean
|
||||
@@ -1,141 +0,0 @@
|
||||
title: Subscription
|
||||
type: object
|
||||
properties:
|
||||
features:
|
||||
description: List of features allowed on your Plex Pass subscription
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
#TODO This should become an enum once all values are known
|
||||
description: |
|
||||
- Android - Dolby Vision
|
||||
- Android - PiP
|
||||
- CU Sunset
|
||||
- HRK_enable_EUR
|
||||
- TREBLE-show-features
|
||||
- ad-countdown-timer
|
||||
- adaptive_bitrate
|
||||
- album-types
|
||||
- allow_dvr
|
||||
- amazon-loop-debug
|
||||
- avod-ad-analysis
|
||||
- avod-new-media
|
||||
- blacklist_get_signin
|
||||
- boost-voices
|
||||
- camera_upload
|
||||
- client-radio-stations
|
||||
- cloudflare-turnstile-required
|
||||
- cloudsync
|
||||
- collections
|
||||
- comments_and_replies_push_notifications
|
||||
- community_access_plex_tv
|
||||
- companions_sonos
|
||||
- content_filter
|
||||
- custom-home-removal
|
||||
- disable_home_user_friendships
|
||||
- disable_sharing_friendships
|
||||
- downloads-gating
|
||||
- drm_support
|
||||
- dvr
|
||||
- dvr-block-unsupported-countries
|
||||
- epg-recent-channels
|
||||
- exclude restrictions
|
||||
- federated-auth
|
||||
- friend_request_push_notifications
|
||||
- grandfather-sync
|
||||
- guided-upgrade
|
||||
- hardware_transcoding
|
||||
- home
|
||||
- hwtranscode
|
||||
- imagga-v2
|
||||
- increase-password-complexity
|
||||
- ios14-privacy-banner
|
||||
- iterable-notification-tokens
|
||||
- item_clusters
|
||||
- keep-payment-method
|
||||
- kevin-bacon
|
||||
- korea-consent
|
||||
- le_isrg_root_x1
|
||||
- lets_encrypt
|
||||
- lightning-dvr-pivot
|
||||
- live-tv-support-incomplete-segments
|
||||
- livetv
|
||||
- lyrics
|
||||
- metadata_search
|
||||
- music-analysis
|
||||
- music_videos
|
||||
- new_plex_pass_prices
|
||||
- news-provider-sunset-modal
|
||||
- nominatim
|
||||
- pass
|
||||
- photos-favorites
|
||||
- photos-metadata-edition
|
||||
- photosV6-edit
|
||||
- photosV6-tv-albums
|
||||
- pms_health
|
||||
- premium-dashboard
|
||||
- premium_music_metadata
|
||||
- radio
|
||||
- rate-limit-client-token
|
||||
- scrobbling-service-plex-tv
|
||||
- session_bandwidth_restrictions
|
||||
- session_kick
|
||||
- shared_server_notification
|
||||
- shared_source_notification
|
||||
- signin_notification
|
||||
- signin_with_apple
|
||||
- silence-removal
|
||||
- sleep-timer
|
||||
- spring_serve_ad_provider
|
||||
- sync
|
||||
- sweet-fades
|
||||
- transcoder_cache
|
||||
- trailers
|
||||
- tuner-sharing
|
||||
- two-factor-authentication
|
||||
- unsupportedtuners
|
||||
- upgrade-3ds2
|
||||
- visualizers
|
||||
- vod-schema
|
||||
- vod_cloudflare
|
||||
- volume-leveling
|
||||
- watch-together-invite
|
||||
- watchlist-rss
|
||||
- web_server_dashboard
|
||||
- webhooks
|
||||
- blacklist-subnets
|
||||
- chromecast-music-mp
|
||||
- Sync v3
|
||||
- livetv-platform-specific
|
||||
- nonAnonymousAccount
|
||||
- parental-controls
|
||||
- Subtitles on Demand
|
||||
- ultrablur
|
||||
- web-desktop-gracenote-banner
|
||||
active:
|
||||
description: If the account's Plex Pass subscription is active
|
||||
type: boolean
|
||||
example: true
|
||||
subscribedAt:
|
||||
description: Date the account subscribed to Plex Pass
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
example: "2021-04-12T18:21:12Z"
|
||||
status:
|
||||
description: String representation of subscriptionActive
|
||||
example: Inactive
|
||||
x-speakeasy-unknown-values: allow
|
||||
enum:
|
||||
- Inactive
|
||||
- Active
|
||||
paymentService:
|
||||
description: Payment service used for your Plex Pass subscription
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
plan:
|
||||
description: Name of Plex Pass subscription plan
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
@@ -1,247 +0,0 @@
|
||||
title: UserPlexAccount
|
||||
type: object
|
||||
required:
|
||||
- adsConsent
|
||||
- adsConsentReminderAt
|
||||
- adsConsentSetAt
|
||||
- anonymous
|
||||
- authToken
|
||||
- backupCodesCreated
|
||||
- confirmed
|
||||
- country
|
||||
- email
|
||||
- emailOnlyAuth
|
||||
- experimentalFeatures
|
||||
- friendlyName
|
||||
- entitlements
|
||||
- guest
|
||||
- hasPassword
|
||||
- home
|
||||
- homeAdmin
|
||||
- homeSize
|
||||
- id
|
||||
- joinedAt
|
||||
- locale
|
||||
- mailingListActive
|
||||
- mailingListStatus
|
||||
- maxHomeSize
|
||||
- profile
|
||||
- protected
|
||||
- rememberExpiresAt
|
||||
- restricted
|
||||
- scrobbleTypes
|
||||
- services
|
||||
- subscription
|
||||
- subscriptionDescription
|
||||
- thumb
|
||||
- title
|
||||
- twoFactorEnabled
|
||||
- username
|
||||
- uuid
|
||||
- attributionPartner
|
||||
properties:
|
||||
adsConsent:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
description: Unknown
|
||||
adsConsentReminderAt:
|
||||
oneOf:
|
||||
- $ref: "./common/PlexDateTime.yaml"
|
||||
- type: "null"
|
||||
adsConsentSetAt:
|
||||
oneOf:
|
||||
- $ref: "./common/PlexDateTime.yaml"
|
||||
- type: "null"
|
||||
anonymous:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
description: Unknown
|
||||
default: false
|
||||
authToken:
|
||||
type: string
|
||||
description: The account token
|
||||
example: CxoUzBTSV5hsxjTpFKaf
|
||||
backupCodesCreated:
|
||||
type: boolean
|
||||
description: If the two-factor authentication backup codes have been created
|
||||
default: false
|
||||
confirmed:
|
||||
type: boolean
|
||||
description: If the account has been confirmed
|
||||
default: false
|
||||
country:
|
||||
type: string
|
||||
description: The account country
|
||||
example: US
|
||||
maxLength: 2
|
||||
minLength: 2
|
||||
email:
|
||||
type: string
|
||||
description: The account email address
|
||||
format: email
|
||||
example: username@email.com
|
||||
emailOnlyAuth:
|
||||
type: boolean
|
||||
description: If login with email only is enabled
|
||||
default: false
|
||||
experimentalFeatures:
|
||||
type: boolean
|
||||
description: If experimental features are enabled
|
||||
default: false
|
||||
friendlyName:
|
||||
type: string
|
||||
description: Your account full name
|
||||
example: friendlyUsername
|
||||
entitlements:
|
||||
type: array
|
||||
description: List of devices your allowed to use with this account
|
||||
items:
|
||||
type: string
|
||||
example: "[]"
|
||||
guest:
|
||||
type: boolean
|
||||
description: If the account is a Plex Home guest user
|
||||
default: false
|
||||
hasPassword:
|
||||
type: boolean
|
||||
description: If the account has a password
|
||||
default: true
|
||||
home:
|
||||
type: boolean
|
||||
description: If the account is a Plex Home user
|
||||
default: false
|
||||
homeAdmin:
|
||||
type: boolean
|
||||
description: If the account is the Plex Home admin
|
||||
default: false
|
||||
homeSize:
|
||||
type: integer
|
||||
description: The number of accounts in the Plex Home
|
||||
example: 1
|
||||
format: int32
|
||||
id:
|
||||
type: integer
|
||||
description: The Plex account ID
|
||||
example: 13692262
|
||||
format: int32
|
||||
joinedAt:
|
||||
$ref: "./common/PlexDateTime.yaml"
|
||||
locale:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
description: The account locale
|
||||
mailingListActive:
|
||||
type: boolean
|
||||
description: If you are subscribed to the Plex newsletter
|
||||
default: false
|
||||
mailingListStatus:
|
||||
description: Your current mailing list status (active or unsubscribed)
|
||||
type: string
|
||||
example: active
|
||||
x-speakeasy-unknown-values: allow
|
||||
enum:
|
||||
- active
|
||||
- unsubscribed
|
||||
maxHomeSize:
|
||||
type: integer
|
||||
description: The maximum number of accounts allowed in the Plex Home
|
||||
example: 15
|
||||
format: int32
|
||||
pin:
|
||||
type: string
|
||||
description: "[Might be removed] The hashed Plex Home PIN "
|
||||
deprecated: true
|
||||
profile:
|
||||
$ref: ./UserProfile.yaml
|
||||
protected:
|
||||
type: boolean
|
||||
description: If the account has a Plex Home PIN enabled
|
||||
default: false
|
||||
rememberExpiresAt:
|
||||
$ref: "./common/PlexDateTime.yaml"
|
||||
restricted:
|
||||
type: boolean
|
||||
description: If the account is a Plex Home managed user
|
||||
default: false
|
||||
roles:
|
||||
type: array
|
||||
description: "[Might be removed] List of account roles. Plexpass membership listed here"
|
||||
items:
|
||||
type: string
|
||||
scrobbleTypes:
|
||||
type: string
|
||||
description: Unknown
|
||||
services:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
required:
|
||||
- identifier
|
||||
- endpoint
|
||||
- token
|
||||
- secret
|
||||
- status
|
||||
properties:
|
||||
identifier:
|
||||
type: string
|
||||
example: metadata-dev
|
||||
endpoint:
|
||||
type: string
|
||||
example: "https://epg.provider.plex.tv"
|
||||
format: uri
|
||||
token:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
example: DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv
|
||||
secret:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
status:
|
||||
example: online
|
||||
x-speakeasy-unknown-values: allow
|
||||
enum:
|
||||
- online
|
||||
- offline
|
||||
subscription:
|
||||
$ref: ./Subscription.yaml
|
||||
description: If the account’s Plex Pass subscription is active
|
||||
subscriptionDescription:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
description: Description of the Plex Pass subscription
|
||||
subscriptions:
|
||||
type: array
|
||||
items:
|
||||
$ref: ./Subscription.yaml
|
||||
thumb:
|
||||
type: string
|
||||
description: URL of the account thumbnail
|
||||
format: uri
|
||||
example: "https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101"
|
||||
title:
|
||||
type: string
|
||||
description: The title of the account (username or friendly name)
|
||||
example: UsernameTitle
|
||||
twoFactorEnabled:
|
||||
type: boolean
|
||||
description: If two-factor authentication is enabled
|
||||
default: false
|
||||
username:
|
||||
type: string
|
||||
description: The account username
|
||||
example: Username
|
||||
uuid:
|
||||
type: string
|
||||
description: The account UUID
|
||||
example: dae343c1f45beb4f
|
||||
attributionPartner:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
example: null
|
||||
@@ -1,56 +0,0 @@
|
||||
title: UserProfile
|
||||
type: object
|
||||
required:
|
||||
- autoSelectAudio
|
||||
- defaultAudioLanguage
|
||||
- defaultSubtitleLanguage
|
||||
- autoSelectSubtitle
|
||||
- defaultSubtitleAccessibility
|
||||
- defaultSubtitleForced
|
||||
- watchedIndicator
|
||||
- mediaReviewsVisibility
|
||||
properties:
|
||||
autoSelectAudio:
|
||||
description: If the account has automatically select audio and subtitle tracks enabled
|
||||
type: boolean
|
||||
example: true
|
||||
default: true
|
||||
|
||||
defaultAudioLanguage:
|
||||
description: The preferred audio language for the account
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
example: ja
|
||||
|
||||
defaultSubtitleLanguage:
|
||||
description: The preferred subtitle language for the account
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
example: en
|
||||
|
||||
autoSelectSubtitle:
|
||||
allOf:
|
||||
- $ref: "./common/PlexBoolean.yaml"
|
||||
- description: "The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled)"
|
||||
|
||||
defaultSubtitleAccessibility:
|
||||
allOf:
|
||||
- $ref: "./common/PlexBoolean.yaml"
|
||||
- description: "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 show non-SDH subtitles)"
|
||||
|
||||
defaultSubtitleForced:
|
||||
allOf:
|
||||
- $ref: "./common/PlexBoolean.yaml"
|
||||
- description: "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)"
|
||||
|
||||
watchedIndicator:
|
||||
allOf:
|
||||
- $ref: "./common/PlexBoolean.yaml"
|
||||
- description: "Whether or not media watched indicators are enabled (little orange dot on media)"
|
||||
|
||||
mediaReviewsVisibility:
|
||||
allOf:
|
||||
- $ref: "./common/PlexBoolean.yaml"
|
||||
- description: "Whether or not the account has media reviews visibility enabled"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- endTimeOffset
|
||||
description: "The end time offset for the chapter"
|
||||
properties:
|
||||
endTimeOffset:
|
||||
type: integer
|
||||
example: 100100
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- filter
|
||||
description: "The filter for the chapter"
|
||||
properties:
|
||||
filter:
|
||||
type: string
|
||||
example: "thumb=4"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
description: "The identifier for the chapter"
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
example: 4
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- index
|
||||
description: "The index for the chapter"
|
||||
properties:
|
||||
index:
|
||||
type: integer
|
||||
example: 1
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- startTimeOffset
|
||||
description: "The start time offset for the chapter"
|
||||
properties:
|
||||
startTimeOffset:
|
||||
type: integer
|
||||
example: 0
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- thumb
|
||||
description: "The thumbnail for the chapter"
|
||||
properties:
|
||||
thumb:
|
||||
type: string
|
||||
example: "/library/media/46883/chapterImages/1"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- tag
|
||||
properties:
|
||||
tag:
|
||||
type: string
|
||||
description: The user-made collection this media item belongs to
|
||||
example: My Awesome Collection
|
||||
@@ -1,10 +0,0 @@
|
||||
type: integer
|
||||
format: int32
|
||||
enum:
|
||||
- 0
|
||||
- 1
|
||||
example: 1
|
||||
default: 0
|
||||
x-speakeasy-enums:
|
||||
- DISABLE
|
||||
- ENABLE
|
||||
@@ -1,9 +0,0 @@
|
||||
type: string
|
||||
enum:
|
||||
- "0"
|
||||
- "1"
|
||||
example: "1"
|
||||
default: "0"
|
||||
x-speakeasy-enums:
|
||||
- FALSE
|
||||
- TRUE
|
||||
@@ -1,5 +0,0 @@
|
||||
type:
|
||||
- integer
|
||||
example: 1556281940
|
||||
description: Unix epoch datetime in seconds
|
||||
format: int64
|
||||
@@ -1,3 +0,0 @@
|
||||
type: string
|
||||
format: date-time
|
||||
example: "2019-06-24T11:38:02Z"
|
||||
@@ -1,23 +0,0 @@
|
||||
type: integer
|
||||
x-speakeasy-unknown-values: allow
|
||||
enum:
|
||||
- 1 # MOVIE
|
||||
- 2 # TV_SHOW
|
||||
- 3 # SEASON
|
||||
- 4 # EPISODE
|
||||
- 5 # ARTIST
|
||||
- 6 # ALBUM
|
||||
- 7 # TRACK
|
||||
- 8 # PHOTO_ALBUM
|
||||
- 9 # PHOTO
|
||||
example: 2
|
||||
x-speakeasy-enums:
|
||||
- MOVIE
|
||||
- TV_SHOW
|
||||
- SEASON
|
||||
- EPISODE
|
||||
- ARTIST
|
||||
- ALBUM
|
||||
- TRACK
|
||||
- PHOTO_ALBUM
|
||||
- PHOTO
|
||||
@@ -1,27 +0,0 @@
|
||||
type: string
|
||||
x-speakeasy-unknown-values: allow
|
||||
enum:
|
||||
- movie
|
||||
- show
|
||||
- season
|
||||
- episode
|
||||
- artist
|
||||
- album
|
||||
- track
|
||||
- photoalbum
|
||||
- photo
|
||||
- collection
|
||||
example: "movie"
|
||||
description: |
|
||||
The type of media content in the Plex library. This can represent videos, music, or photos.
|
||||
x-speakeasy-enums:
|
||||
- MOVIE
|
||||
- TV_SHOW
|
||||
- SEASON
|
||||
- EPISODE
|
||||
- ARTIST
|
||||
- ALBUM
|
||||
- TRACK
|
||||
- PHOTO_ALBUM
|
||||
- PHOTO
|
||||
- COLLECTION
|
||||
@@ -1,11 +0,0 @@
|
||||
type: string
|
||||
enum:
|
||||
- asc
|
||||
- desc
|
||||
example: asc
|
||||
default: asc
|
||||
description: |
|
||||
The direction of the sort. Can be either `asc` or `desc`.
|
||||
x-speakeasy-enums:
|
||||
- ASCENDING
|
||||
- DESCENDING
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- filter
|
||||
description: "The filter query string for country media items."
|
||||
properties:
|
||||
filter:
|
||||
type: string
|
||||
example: "country=19"
|
||||
@@ -1,12 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
properties:
|
||||
id:
|
||||
description: |
|
||||
The unique identifier for the country.
|
||||
NOTE: This is different for each Plex server and is not globally unique.
|
||||
type: integer
|
||||
format: int32
|
||||
minimum: 1
|
||||
example: 259
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- tag
|
||||
properties:
|
||||
tag:
|
||||
type: string
|
||||
description: The country of origin of this media item
|
||||
example: United States of America
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- filter
|
||||
properties:
|
||||
filter:
|
||||
description: "The filter string used to query this director."
|
||||
type: string
|
||||
example: "director=235876"
|
||||
@@ -1,10 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
properties:
|
||||
id:
|
||||
description: "Unique identifier for the director."
|
||||
type: integer
|
||||
format: int32
|
||||
minimum: 1
|
||||
example: 126522
|
||||
@@ -1,9 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- tagKey
|
||||
properties:
|
||||
tagKey:
|
||||
description: "A unique 24-character hexadecimal key associated with the director's tag, used for internal identification."
|
||||
type: string
|
||||
pattern: "^[a-fA-F0-9]{24}$"
|
||||
example: "5d776831151a60001f24d031"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- tag
|
||||
properties:
|
||||
tag:
|
||||
type: string
|
||||
description: The role of Director
|
||||
example: Danny Boyle
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
thumb:
|
||||
description: "The absolute URL of the thumbnail image for the director."
|
||||
type: string
|
||||
example: "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- agent
|
||||
properties:
|
||||
agent:
|
||||
type: string
|
||||
description: The Plex agent used to match and retrieve media metadata.
|
||||
example: tv.plex.agents.movie
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- composite
|
||||
properties:
|
||||
composite:
|
||||
type: string
|
||||
description: The relative path to the composite media item.
|
||||
example: /library/sections/1/composite/1743824484
|
||||
@@ -1,11 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- contentChangedAt
|
||||
properties:
|
||||
contentChangedAt:
|
||||
type: integer
|
||||
format: int64
|
||||
description: |
|
||||
Timestamp (in seconds) representing the last time the content was modified.
|
||||
NOTE: Some Plex server have some absurd values for this field, like 8457612157633039800 so it should be int64
|
||||
example: 9173960
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- content
|
||||
properties:
|
||||
content:
|
||||
type: boolean
|
||||
description: UNKNOWN
|
||||
example: true
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
createdAt:
|
||||
allOf:
|
||||
- $ref: "../../models/common/PlexDateTime.yaml"
|
||||
- description: "The date and time when the library was created."
|
||||
type: integer
|
||||
format: int64
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- directory
|
||||
properties:
|
||||
directory:
|
||||
type: boolean
|
||||
description: UNKNOWN
|
||||
example: true
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- filters
|
||||
properties:
|
||||
filters:
|
||||
type: boolean
|
||||
description: UNKNOWN
|
||||
example: true
|
||||
@@ -1,18 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- hidden
|
||||
properties:
|
||||
hidden:
|
||||
type: integer
|
||||
format: int32
|
||||
enum:
|
||||
- 0
|
||||
- 1
|
||||
- 2
|
||||
example: 1
|
||||
default: 0
|
||||
x-speakeasy-enums:
|
||||
- VISIBLE
|
||||
- EXCLUDE_HOME_SCREEN
|
||||
- EXCLUDE_HOME_SCREEN_AND_GLOBAL_SEARCH
|
||||
description: The Plex library visibility setting
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- key
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
description: The library key representing the unique identifier
|
||||
example: "1"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- language
|
||||
properties:
|
||||
language:
|
||||
type: string
|
||||
description: The Plex library language that has been set
|
||||
example: en-US
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- refreshing
|
||||
properties:
|
||||
refreshing:
|
||||
type: boolean
|
||||
description: "Indicates whether the library is currently being refreshed or updated"
|
||||
example: true
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- scannedAt
|
||||
properties:
|
||||
scannedAt:
|
||||
$ref: "../../models/common/PlexDateTime.yaml"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- scanner
|
||||
properties:
|
||||
scanner:
|
||||
type: string
|
||||
description: UNKNOWN
|
||||
example: Plex Movie
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- title
|
||||
properties:
|
||||
title:
|
||||
type: string
|
||||
description: "The title of the library"
|
||||
example: "Movies"
|
||||
@@ -1,9 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- type
|
||||
properties:
|
||||
type:
|
||||
allOf:
|
||||
- $ref: "../common/PlexMediaTypeString.yaml"
|
||||
- type: string
|
||||
description: "The library type"
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- updatedAt
|
||||
properties:
|
||||
updatedAt:
|
||||
$ref: "../../models/common/PlexDateTime.yaml"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- uuid
|
||||
properties:
|
||||
uuid:
|
||||
type: string
|
||||
description: "The universally unique identifier for the library."
|
||||
example: "e69655a2-ef48-4aba-bb19-01e7d3cc34d6"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- filter
|
||||
description: "The filter query string for similar items."
|
||||
properties:
|
||||
filter:
|
||||
type: string
|
||||
example: "genre=19"
|
||||
@@ -1,12 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
properties:
|
||||
id:
|
||||
description: |
|
||||
The unique identifier for the genre.
|
||||
NOTE: This is different for each Plex server and is not globally unique.
|
||||
type: integer
|
||||
format: int32
|
||||
minimum: 1
|
||||
example: 259
|
||||
@@ -1,9 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- tag
|
||||
properties:
|
||||
tag:
|
||||
type: string
|
||||
description: |
|
||||
The genre name of this media-item
|
||||
example: "Crime"
|
||||
@@ -1,13 +0,0 @@
|
||||
type: object
|
||||
description: "Attributes associated with the marker."
|
||||
required:
|
||||
- id
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
description: "The identifier for the attributes."
|
||||
example: 306970
|
||||
version:
|
||||
type: integer
|
||||
description: "The version number of the marker attributes."
|
||||
example: 4
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- endTimeOffset
|
||||
description: "The end time offset for the marker"
|
||||
properties:
|
||||
endTimeOffset:
|
||||
type: integer
|
||||
example: 4393389
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
description: "The final status of the marker"
|
||||
properties:
|
||||
final:
|
||||
type: boolean
|
||||
example: true
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
description: "The identifier for the marker"
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
example: 306970
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- startTimeOffset
|
||||
description: "The start time offset for the marker"
|
||||
properties:
|
||||
startTimeOffset:
|
||||
type: integer
|
||||
example: 4176050
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- type
|
||||
description: "The type of the marker"
|
||||
properties:
|
||||
type:
|
||||
type: string
|
||||
example: "credits"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- allowSync
|
||||
properties:
|
||||
allowSync:
|
||||
type: boolean
|
||||
description: "Indicates whether syncing is allowed."
|
||||
example: false
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- art
|
||||
properties:
|
||||
art:
|
||||
type: string
|
||||
description: "URL for the background artwork of the media container."
|
||||
example: "/:/resources/show-fanart.jpg"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- content
|
||||
properties:
|
||||
content:
|
||||
type: string
|
||||
description: "The content type or mode."
|
||||
example: "secondary"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- identifier
|
||||
properties:
|
||||
identifier:
|
||||
type: string
|
||||
description: "An plugin identifier for the media container."
|
||||
example: "com.plexapp.plugins.library"
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
librarySectionID:
|
||||
type: integer
|
||||
description: "The unique identifier for the library section."
|
||||
example: 2
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- librarySectionKey
|
||||
properties:
|
||||
librarySectionKey:
|
||||
type: integer
|
||||
description: "The unique identifier for the library section."
|
||||
example: 2
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
librarySectionTitle:
|
||||
type: string
|
||||
description: "The title of the library section."
|
||||
example: "TV Series"
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
librarySectionUUID:
|
||||
type: string
|
||||
description: "The universally unique identifier for the library section."
|
||||
example: "e69655a2-ef48-4aba-bb19-0cc34d1e7d36"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- mediaTagPrefix
|
||||
properties:
|
||||
mediaTagPrefix:
|
||||
type: string
|
||||
description: "The prefix used for media tag resource paths."
|
||||
example: "/system/bundle/media/flags/"
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- mediaTagVersion
|
||||
properties:
|
||||
mediaTagVersion:
|
||||
type: integer
|
||||
description: "The version number for media tags."
|
||||
example: 1734362201
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
mixedParents:
|
||||
type: boolean
|
||||
description: "Indicates if the media container has mixed parents."
|
||||
example: true
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- nocache
|
||||
properties:
|
||||
nocache:
|
||||
type: boolean
|
||||
description: "Specifies whether caching is disabled."
|
||||
example: true
|
||||
@@ -1,8 +0,0 @@
|
||||
type: object
|
||||
required:
|
||||
- offset
|
||||
properties:
|
||||
offset:
|
||||
type: integer
|
||||
description: "Offset value for pagination."
|
||||
example: 0
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
count:
|
||||
description: "The number of items associated with this search result."
|
||||
type: integer
|
||||
example: 10
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
filter:
|
||||
description: "The filter string used to query this specific item in the library."
|
||||
type: string
|
||||
example: "actor=197429"
|
||||
@@ -1,5 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
example: 197429
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
key:
|
||||
description: "The unique identifier path for the search result item."
|
||||
type: string
|
||||
example: "/library/sections/3/all?actor=197429"
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
librarySectionID:
|
||||
description: "The unique identifier of the library section containing this item."
|
||||
type: integer
|
||||
example: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
librarySectionKey:
|
||||
description: "The path to access the library section containing this item."
|
||||
type: string
|
||||
example: "/library/sections/3"
|
||||
@@ -1,5 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
librarySectionTitle:
|
||||
type: string
|
||||
example: "Movies"
|
||||
@@ -1,9 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
librarySectionType:
|
||||
type: integer
|
||||
oneOf:
|
||||
- const: 1
|
||||
title: Movie
|
||||
- const: 2
|
||||
title: TV Show
|
||||
@@ -1,6 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
tagKey:
|
||||
description: "The unique identifier for the tag associated with this search result."
|
||||
type: string
|
||||
example: "5d776826999c64001ec2c606"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user