mirror of
https://github.com/LukeHagar/plex-docs.git
synced 2025-12-06 12:37:45 +00:00
gen steps
This commit is contained in:
27
docs/plex/activities.tag.mdx
Normal file
27
docs/plex/activities.tag.mdx
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
id: activities
|
||||
title: "Activities"
|
||||
description: "Activities"
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
|
||||
|
||||
Activities are awesome. They provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints.
|
||||
Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity.
|
||||
Activities are optional cancellable. If cancellable, they may be cancelled via the `DELETE` endpoint. Other details:
|
||||
- They can contain a `progress` (from 0 to 100) marking the percent completion of the activity.
|
||||
- They must contain an `type` which is used by clients to distinguish the specific activity.
|
||||
- They may contain a `Context` object with attributes which associate the activity with various specific entities (items, libraries, etc.)
|
||||
- The may contain a `Response` object which attributes which represent the result of the asynchronous operation.
|
||||
|
||||
|
||||
|
||||
|
||||
```mdx-code-block
|
||||
import DocCardList from '@theme/DocCardList';
|
||||
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
||||
|
||||
<DocCardList items={useCurrentSidebarCategory().items}/>
|
||||
```
|
||||
|
||||
42
docs/plex/applying-updates.api.mdx
Normal file
42
docs/plex/applying-updates.api.mdx
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
id: applying-updates
|
||||
sidebar_label: Applying updates
|
||||
hide_title: true
|
||||
hide_table_of_contents: true
|
||||
api: {"tags":["Updater"],"description":"Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed\n","operationId":"applyingUpdates","parameters":[{"name":"tonight","description":"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","required":false,"in":"query","schema":{"enum":[0,1]},"example":1},{"name":"skip","description":"Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`.","required":false,"in":"query","schema":{"enum":[0,1]},"example":1}],"responses":{"200":{"description":"If the update process started correctly"},"401":{"description":"Unauthorized - Returned if the X-Plex-Token is missing from the header or query."},"500":{"description":"If the update process failed to start"}},"method":"put","path":"/updater/apply","servers":[{"url":"{Protocol}://{Local IP}:{Port}","variables":{"Protocol":{"enum":["http","https"],"default":"http","description":"The protocl to use with your plex server"},"Local IP":{"default":"10.10.10.47","description":"The Local IP Address of your plex server"},"Port":{"default":"32400","description":"The port to access your plex server"}}}],"security":[{"PlexToken":[]}],"securitySchemes":{"PlexToken":{"type":"apiKey","in":"header","name":"X-Plex-Token"}},"info":{"title":"Plex-API","summary":"A Plex Media Server API Map","description":"An Open API Spec for interacting with Plex.tv and Plex Servers","version":"0.0.2","contact":{"name":"Luke Hagar","email":"Lukeslakemail@gmail.com","url":"https://www.LukeHagar.com"}},"postman":{"name":"Applying updates","description":{"content":"Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed\n","type":"text/plain"},"url":{"path":["updater","apply"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"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","type":"text/plain"},"key":"tonight","value":""},{"disabled":false,"description":{"content":"Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`.","type":"text/plain"},"key":"skip","value":""}],"variable":[]},"method":"PUT"}}
|
||||
sidebar_class_name: "put api-method"
|
||||
info_path: docs/plex/plex-api
|
||||
---
|
||||
|
||||
import ApiTabs from "@theme/ApiTabs";
|
||||
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
|
||||
import MethodEndpoint from "@theme/ApiDemoPanel/MethodEndpoint";
|
||||
import MimeTabs from "@theme/MimeTabs";
|
||||
import ParamsItem from "@theme/ParamsItem";
|
||||
import ResponseSamples from "@theme/ResponseSamples";
|
||||
import SchemaItem from "@theme/SchemaItem";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
|
||||
<h1 className={"openapi__heading"}>Applying updates</h1>
|
||||
|
||||
<MethodEndpoint method={"put"} path={"/updater/apply"}></MethodEndpoint>
|
||||
|
||||
|
||||
|
||||
Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed
|
||||
|
||||
|
||||
<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><strong>Query Parameters</strong></summary><div><ul><ParamsItem className={"paramsItem"} param={{"name":"tonight","description":"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","required":false,"in":"query","schema":{"enum":[0,1]},"example":1}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"skip","description":"Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`.","required":false,"in":"query","schema":{"enum":[0,1]},"example":1}}></ParamsItem></ul></div></details><div><div><ApiTabs><TabItem label={"200"} value={"200"}><div>
|
||||
|
||||
If the update process started correctly
|
||||
|
||||
</div><div></div></TabItem><TabItem label={"401"} value={"401"}><div>
|
||||
|
||||
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
|
||||
</div><div></div></TabItem><TabItem label={"500"} value={"500"}><div>
|
||||
|
||||
If the update process failed to start
|
||||
|
||||
</div><div></div></TabItem></ApiTabs></div></div>
|
||||
21
docs/plex/butler.tag.mdx
Normal file
21
docs/plex/butler.tag.mdx
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
id: butler
|
||||
title: "Butler"
|
||||
description: "Butler"
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
|
||||
|
||||
Butler is the task manager of the Plex Media Server Ecosystem.
|
||||
|
||||
|
||||
|
||||
|
||||
```mdx-code-block
|
||||
import DocCardList from '@theme/DocCardList';
|
||||
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
||||
|
||||
<DocCardList items={useCurrentSidebarCategory().items}/>
|
||||
```
|
||||
|
||||
37
docs/plex/cancel-server-activities.api.mdx
Normal file
37
docs/plex/cancel-server-activities.api.mdx
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
id: cancel-server-activities
|
||||
sidebar_label: Cancel Server Activities
|
||||
hide_title: true
|
||||
hide_table_of_contents: true
|
||||
api: {"tags":["Activities"],"description":"Cancel Server Activities","operationId":"cancelServerActivities","parameters":[{"name":"activityUUID","description":"The UUID of the activity to cancel.","in":"path","schema":{"type":"string"},"example":"25b71ed5-0f9d-461c-baa7-d404e9e10d3e","required":true}],"responses":{"200":{"description":"The Server Activity was canceled","content":{"application/json":{"schema":{"type":"object","properties":{"MediaContainer":{"type":"object","properties":{"size":{"type":"number"},"Activity":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string"},"type":{"type":"string"},"cancellable":{"type":"boolean"},"userID":{"type":"number"},"title":{"type":"string"},"subtitle":{"type":"string"},"progress":{"type":"number"},"Context":{"type":"object","properties":{"librarySectionID":{"type":"string"}}}}}}}}}}}}},"401":{"description":"Unauthorized - Returned if the X-Plex-Token is missing from the header or query."}},"method":"delete","path":"/activities/{activityUUID}","servers":[{"url":"{Protocol}://{Local IP}:{Port}","variables":{"Protocol":{"enum":["http","https"],"default":"http","description":"The protocl to use with your plex server"},"Local IP":{"default":"10.10.10.47","description":"The Local IP Address of your plex server"},"Port":{"default":"32400","description":"The port to access your plex server"}}}],"security":[{"PlexToken":[]}],"securitySchemes":{"PlexToken":{"type":"apiKey","in":"header","name":"X-Plex-Token"}},"info":{"title":"Plex-API","summary":"A Plex Media Server API Map","description":"An Open API Spec for interacting with Plex.tv and Plex Servers","version":"0.0.2","contact":{"name":"Luke Hagar","email":"Lukeslakemail@gmail.com","url":"https://www.LukeHagar.com"}},"postman":{"name":"Cancel Server Activities","description":{"content":"Cancel Server Activities","type":"text/plain"},"url":{"path":["activities",":activityUUID"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The UUID of the activity to cancel.","type":"text/plain"},"type":"any","value":"","key":"activityUUID"}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE"}}
|
||||
sidebar_class_name: "delete api-method"
|
||||
info_path: docs/plex/plex-api
|
||||
---
|
||||
|
||||
import ApiTabs from "@theme/ApiTabs";
|
||||
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
|
||||
import MethodEndpoint from "@theme/ApiDemoPanel/MethodEndpoint";
|
||||
import MimeTabs from "@theme/MimeTabs";
|
||||
import ParamsItem from "@theme/ParamsItem";
|
||||
import ResponseSamples from "@theme/ResponseSamples";
|
||||
import SchemaItem from "@theme/SchemaItem";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
|
||||
<h1 className={"openapi__heading"}>Cancel Server Activities</h1>
|
||||
|
||||
<MethodEndpoint method={"delete"} path={"/activities/{activityUUID}"}></MethodEndpoint>
|
||||
|
||||
|
||||
|
||||
Cancel Server Activities
|
||||
|
||||
<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><strong>Path Parameters</strong></summary><div><ul><ParamsItem className={"paramsItem"} param={{"name":"activityUUID","description":"The UUID of the activity to cancel.","in":"path","schema":{"type":"string"},"example":"25b71ed5-0f9d-461c-baa7-d404e9e10d3e","required":true}}></ParamsItem></ul></div></details><div><div><ApiTabs><TabItem label={"200"} value={"200"}><div>
|
||||
|
||||
The Server Activity was canceled
|
||||
|
||||
</div><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{"textAlign":"left"}}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><strong>MediaContainer</strong><span style={{"opacity":"0.6"}}> object</span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"size"} required={false} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><strong>Activity</strong><span style={{"opacity":"0.6"}}> object[]</span></summary><div style={{"marginLeft":"1rem"}}><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"uuid"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"type"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"cancellable"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean"}}></SchemaItem><SchemaItem collapsible={false} name={"userID"} required={false} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number"}}></SchemaItem><SchemaItem collapsible={false} name={"title"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"subtitle"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"progress"} required={false} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><strong>Context</strong><span style={{"opacity":"0.6"}}> object</span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"librarySectionID"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem></div></details></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n \"MediaContainer\": {\n \"size\": 0,\n \"Activity\": [\n {\n \"uuid\": \"string\",\n \"type\": \"string\",\n \"cancellable\": true,\n \"userID\": 0,\n \"title\": \"string\",\n \"subtitle\": \"string\",\n \"progress\": 0,\n \"Context\": {\n \"librarySectionID\": \"string\"\n }\n }\n ]\n }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>
|
||||
|
||||
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
|
||||
</div><div></div></TabItem></ApiTabs></div></div>
|
||||
33
docs/plex/checkingfor-updates.api.mdx
Normal file
33
docs/plex/checkingfor-updates.api.mdx
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
id: checkingfor-updates
|
||||
sidebar_label: Checking for updates
|
||||
hide_title: true
|
||||
hide_table_of_contents: true
|
||||
api: {"tags":["Updater"],"description":"Checking for updates","operationId":"checkingforUpdates","parameters":[{"name":"download","description":"Indicate that you want to start download any updates found.","required":false,"in":"query","schema":{"enum":[0,1]},"example":1}],"responses":{"200":{"description":""},"401":{"description":"Unauthorized - Returned if the X-Plex-Token is missing from the header or query."}},"method":"put","path":"/updater/check","servers":[{"url":"{Protocol}://{Local IP}:{Port}","variables":{"Protocol":{"enum":["http","https"],"default":"http","description":"The protocl to use with your plex server"},"Local IP":{"default":"10.10.10.47","description":"The Local IP Address of your plex server"},"Port":{"default":"32400","description":"The port to access your plex server"}}}],"security":[{"PlexToken":[]}],"securitySchemes":{"PlexToken":{"type":"apiKey","in":"header","name":"X-Plex-Token"}},"info":{"title":"Plex-API","summary":"A Plex Media Server API Map","description":"An Open API Spec for interacting with Plex.tv and Plex Servers","version":"0.0.2","contact":{"name":"Luke Hagar","email":"Lukeslakemail@gmail.com","url":"https://www.LukeHagar.com"}},"postman":{"name":"Checking for updates","description":{"content":"Checking for updates","type":"text/plain"},"url":{"path":["updater","check"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"Indicate that you want to start download any updates found.","type":"text/plain"},"key":"download","value":""}],"variable":[]},"method":"PUT"}}
|
||||
sidebar_class_name: "put api-method"
|
||||
info_path: docs/plex/plex-api
|
||||
---
|
||||
|
||||
import ApiTabs from "@theme/ApiTabs";
|
||||
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
|
||||
import MethodEndpoint from "@theme/ApiDemoPanel/MethodEndpoint";
|
||||
import MimeTabs from "@theme/MimeTabs";
|
||||
import ParamsItem from "@theme/ParamsItem";
|
||||
import ResponseSamples from "@theme/ResponseSamples";
|
||||
import SchemaItem from "@theme/SchemaItem";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
|
||||
<h1 className={"openapi__heading"}>Checking for updates</h1>
|
||||
|
||||
<MethodEndpoint method={"put"} path={"/updater/check"}></MethodEndpoint>
|
||||
|
||||
|
||||
|
||||
Checking for updates
|
||||
|
||||
<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><strong>Query Parameters</strong></summary><div><ul><ParamsItem className={"paramsItem"} param={{"name":"download","description":"Indicate that you want to start download any updates found.","required":false,"in":"query","schema":{"enum":[0,1]},"example":1}}></ParamsItem></ul></div></details><div><div><ApiTabs><TabItem label={"200"} value={"200"}><div></div><div></div></TabItem><TabItem label={"401"} value={"401"}><div>
|
||||
|
||||
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
|
||||
</div><div></div></TabItem></ApiTabs></div></div>
|
||||
38
docs/plex/log-multiple-lines.api.mdx
Normal file
38
docs/plex/log-multiple-lines.api.mdx
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
id: log-multiple-lines
|
||||
sidebar_label: Logging a multi-line message to the Plex Media Server log
|
||||
hide_title: true
|
||||
hide_table_of_contents: true
|
||||
api: {"tags":["Log"],"description":"This endpoint will write multiple lines to the main Plex Media Server log in a single request. It takes a set of query strings as would normally sent to the above GET endpoint as a linefeed-separated block of POST data. The parameters for each query string match as above.\n","operationId":"logMultipleLines","responses":{"200":{"description":"Multi-Line Log Message Posted successfully"},"401":{"description":"Unauthorized - Returned if the X-Plex-Token is missing from the header or query."}},"method":"post","path":"/log","servers":[{"url":"{Protocol}://{Local IP}:{Port}","variables":{"Protocol":{"enum":["http","https"],"default":"http","description":"The protocl to use with your plex server"},"Local IP":{"default":"10.10.10.47","description":"The Local IP Address of your plex server"},"Port":{"default":"32400","description":"The port to access your plex server"}}}],"security":[{"PlexToken":[]}],"securitySchemes":{"PlexToken":{"type":"apiKey","in":"header","name":"X-Plex-Token"}},"info":{"title":"Plex-API","summary":"A Plex Media Server API Map","description":"An Open API Spec for interacting with Plex.tv and Plex Servers","version":"0.0.2","contact":{"name":"Luke Hagar","email":"Lukeslakemail@gmail.com","url":"https://www.LukeHagar.com"}},"postman":{"name":"Logging a multi-line message to the Plex Media Server log","description":{"content":"This endpoint will write multiple lines to the main Plex Media Server log in a single request. It takes a set of query strings as would normally sent to the above GET endpoint as a linefeed-separated block of POST data. The parameters for each query string match as above.\n","type":"text/plain"},"url":{"path":["log"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"method":"POST"}}
|
||||
sidebar_class_name: "post api-method"
|
||||
info_path: docs/plex/plex-api
|
||||
---
|
||||
|
||||
import ApiTabs from "@theme/ApiTabs";
|
||||
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
|
||||
import MethodEndpoint from "@theme/ApiDemoPanel/MethodEndpoint";
|
||||
import MimeTabs from "@theme/MimeTabs";
|
||||
import ParamsItem from "@theme/ParamsItem";
|
||||
import ResponseSamples from "@theme/ResponseSamples";
|
||||
import SchemaItem from "@theme/SchemaItem";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
|
||||
<h1 className={"openapi__heading"}>Logging a multi-line message to the Plex Media Server log</h1>
|
||||
|
||||
<MethodEndpoint method={"post"} path={"/log"}></MethodEndpoint>
|
||||
|
||||
|
||||
|
||||
This endpoint will write multiple lines to the main Plex Media Server log in a single request. It takes a set of query strings as would normally sent to the above GET endpoint as a linefeed-separated block of POST data. The parameters for each query string match as above.
|
||||
|
||||
|
||||
<div><div><ApiTabs><TabItem label={"200"} value={"200"}><div>
|
||||
|
||||
Multi-Line Log Message Posted successfully
|
||||
|
||||
</div><div></div></TabItem><TabItem label={"401"} value={"401"}><div>
|
||||
|
||||
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
|
||||
</div><div></div></TabItem></ApiTabs></div></div>
|
||||
21
docs/plex/log.tag.mdx
Normal file
21
docs/plex/log.tag.mdx
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
id: log
|
||||
title: "Log"
|
||||
description: "Log"
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
|
||||
|
||||
Submit logs to the Log Handler for Plex Media Server
|
||||
|
||||
|
||||
|
||||
|
||||
```mdx-code-block
|
||||
import DocCardList from '@theme/DocCardList';
|
||||
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
||||
|
||||
<DocCardList items={useCurrentSidebarCategory().items}/>
|
||||
```
|
||||
|
||||
38
docs/plex/loga-line.api.mdx
Normal file
38
docs/plex/loga-line.api.mdx
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
id: loga-line
|
||||
sidebar_label: Logging a single-line message to the Plex Media Server log.
|
||||
hide_title: true
|
||||
hide_table_of_contents: true
|
||||
api: {"tags":["Log"],"description":"This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log.\n","operationId":"logaLine","parameters":[{"name":"level","description":"An integer log level to write to the PMS log with. \n(0: Error, 1: Warning, 2: Info, 3: Debug, 4: Verbose)\n","in":"query","schema":{"type":"number","enum":[0,1,2,3,4]},"required":true},{"name":"message","description":"The text of the message to write to the log.","in":"query","schema":{"type":"string","example":""},"required":true},{"name":"source","description":"a string indicating the source of the message.","in":"query","schema":{"type":"string","example":""},"required":true}],"responses":{"200":{"description":"Log Line submitted successfully"},"401":{"description":"Unauthorized - Returned if the X-Plex-Token is missing from the header or query."}},"method":"get","path":"/log","servers":[{"url":"{Protocol}://{Local IP}:{Port}","variables":{"Protocol":{"enum":["http","https"],"default":"http","description":"The protocl to use with your plex server"},"Local IP":{"default":"10.10.10.47","description":"The Local IP Address of your plex server"},"Port":{"default":"32400","description":"The port to access your plex server"}}}],"security":[{"PlexToken":[]}],"securitySchemes":{"PlexToken":{"type":"apiKey","in":"header","name":"X-Plex-Token"}},"info":{"title":"Plex-API","summary":"A Plex Media Server API Map","description":"An Open API Spec for interacting with Plex.tv and Plex Servers","version":"0.0.2","contact":{"name":"Luke Hagar","email":"Lukeslakemail@gmail.com","url":"https://www.LukeHagar.com"}},"postman":{"name":"Logging a single-line message to the Plex Media Server log.","description":{"content":"This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log.\n","type":"text/plain"},"url":{"path":["log"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"description":{"content":"(Required) An integer log level to write to the PMS log with. \n(0: Error, 1: Warning, 2: Info, 3: Debug, 4: Verbose)\n","type":"text/plain"},"key":"level","value":""},{"disabled":false,"description":{"content":"(Required) The text of the message to write to the log.","type":"text/plain"},"key":"message","value":""},{"disabled":false,"description":{"content":"(Required) a string indicating the source of the message.","type":"text/plain"},"key":"source","value":""}],"variable":[]},"method":"GET"}}
|
||||
sidebar_class_name: "get api-method"
|
||||
info_path: docs/plex/plex-api
|
||||
---
|
||||
|
||||
import ApiTabs from "@theme/ApiTabs";
|
||||
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
|
||||
import MethodEndpoint from "@theme/ApiDemoPanel/MethodEndpoint";
|
||||
import MimeTabs from "@theme/MimeTabs";
|
||||
import ParamsItem from "@theme/ParamsItem";
|
||||
import ResponseSamples from "@theme/ResponseSamples";
|
||||
import SchemaItem from "@theme/SchemaItem";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
|
||||
<h1 className={"openapi__heading"}>Logging a single-line message to the Plex Media Server log.</h1>
|
||||
|
||||
<MethodEndpoint method={"get"} path={"/log"}></MethodEndpoint>
|
||||
|
||||
|
||||
|
||||
This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log.
|
||||
|
||||
|
||||
<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><strong>Query Parameters</strong></summary><div><ul><ParamsItem className={"paramsItem"} param={{"name":"level","description":"An integer log level to write to the PMS log with. \n(0: Error, 1: Warning, 2: Info, 3: Debug, 4: Verbose)\n","in":"query","schema":{"type":"number","enum":[0,1,2,3,4]},"required":true}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"message","description":"The text of the message to write to the log.","in":"query","schema":{"type":"string","example":""},"required":true}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"source","description":"a string indicating the source of the message.","in":"query","schema":{"type":"string","example":""},"required":true}}></ParamsItem></ul></div></details><div><div><ApiTabs><TabItem label={"200"} value={"200"}><div>
|
||||
|
||||
Log Line submitted successfully
|
||||
|
||||
</div><div></div></TabItem><TabItem label={"401"} value={"401"}><div>
|
||||
|
||||
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
|
||||
</div><div></div></TabItem></ApiTabs></div></div>
|
||||
23
docs/plex/plex-api.info.mdx
Normal file
23
docs/plex/plex-api.info.mdx
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
id: plex-api
|
||||
sidebar_label: Introduction
|
||||
sidebar_position: 0
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import ApiLogo from "@theme/ApiLogo";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
import Export from "@theme/ApiDemoPanel/Export";
|
||||
|
||||
<span className={"theme-doc-version-badge badge badge--secondary"}>Version: 0.0.2</span>
|
||||
|
||||
<Export url={"https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-api-spec-dereferenced.yaml"} proxy={undefined}></Export>
|
||||
|
||||
<h1 className={"openapi__heading"}>Plex-API</h1>
|
||||
|
||||
|
||||
|
||||
An Open API Spec for interacting with Plex.tv and Plex Servers
|
||||
|
||||
<div style={{"marginBottom":"2rem"}}><h2 id={"authentication"} style={{"marginBottom":"1rem"}}>Authentication</h2><SchemaTabs className={"openapi-tabs__security-schemes"}><TabItem label={"API Key: PlexToken"} value={"PlexToken"}><div><table><tbody><tr><th>Security Scheme Type:</th><td>apiKey</td></tr><tr><th>Header parameter name:</th><td>X-Plex-Token</td></tr></tbody></table></div></TabItem></SchemaTabs></div><div style={{"display":"flex","flexDirection":"column","marginBottom":"var(--ifm-paragraph-margin-bottom)"}}><h3 style={{"marginBottom":"0.25rem"}}>Contact</h3><span>Luke Hagar: <a href={"mailto:Lukeslakemail@gmail.com"}>Lukeslakemail@gmail.com</a></span><span>URL: <a href={"https://www.LukeHagar.com"}>https://www.LukeHagar.com</a></span></div>
|
||||
37
docs/plex/querying-update-status.api.mdx
Normal file
37
docs/plex/querying-update-status.api.mdx
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
id: querying-update-status
|
||||
sidebar_label: Querying status of updates
|
||||
hide_title: true
|
||||
hide_table_of_contents: true
|
||||
api: {"tags":["Updater"],"description":"Querying status of updates","operationId":"queryingUpdateStatus","responses":{"200":{"description":"The Server Updates"},"401":{"description":"Unauthorized - Returned if the X-Plex-Token is missing from the header or query."}},"method":"get","path":"/updater/status","servers":[{"url":"{Protocol}://{Local IP}:{Port}","variables":{"Protocol":{"enum":["http","https"],"default":"http","description":"The protocl to use with your plex server"},"Local IP":{"default":"10.10.10.47","description":"The Local IP Address of your plex server"},"Port":{"default":"32400","description":"The port to access your plex server"}}}],"security":[{"PlexToken":[]}],"securitySchemes":{"PlexToken":{"type":"apiKey","in":"header","name":"X-Plex-Token"}},"info":{"title":"Plex-API","summary":"A Plex Media Server API Map","description":"An Open API Spec for interacting with Plex.tv and Plex Servers","version":"0.0.2","contact":{"name":"Luke Hagar","email":"Lukeslakemail@gmail.com","url":"https://www.LukeHagar.com"}},"postman":{"name":"Querying status of updates","description":{"content":"Querying status of updates","type":"text/plain"},"url":{"path":["updater","status"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"method":"GET"}}
|
||||
sidebar_class_name: "get api-method"
|
||||
info_path: docs/plex/plex-api
|
||||
---
|
||||
|
||||
import ApiTabs from "@theme/ApiTabs";
|
||||
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
|
||||
import MethodEndpoint from "@theme/ApiDemoPanel/MethodEndpoint";
|
||||
import MimeTabs from "@theme/MimeTabs";
|
||||
import ParamsItem from "@theme/ParamsItem";
|
||||
import ResponseSamples from "@theme/ResponseSamples";
|
||||
import SchemaItem from "@theme/SchemaItem";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
|
||||
<h1 className={"openapi__heading"}>Querying status of updates</h1>
|
||||
|
||||
<MethodEndpoint method={"get"} path={"/updater/status"}></MethodEndpoint>
|
||||
|
||||
|
||||
|
||||
Querying status of updates
|
||||
|
||||
<div><div><ApiTabs><TabItem label={"200"} value={"200"}><div>
|
||||
|
||||
The Server Updates
|
||||
|
||||
</div><div></div></TabItem><TabItem label={"401"} value={"401"}><div>
|
||||
|
||||
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
|
||||
</div><div></div></TabItem></ApiTabs></div></div>
|
||||
37
docs/plex/server-activities.api.mdx
Normal file
37
docs/plex/server-activities.api.mdx
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
id: server-activities
|
||||
sidebar_label: Server Activities
|
||||
hide_title: true
|
||||
hide_table_of_contents: true
|
||||
api: {"tags":["Activities"],"description":"Server Activities","operationId":"serverActivities","responses":{"200":{"description":"The Server Activities","content":{"application/json":{"schema":{"type":"object","properties":{"MediaContainer":{"type":"object","properties":{"size":{"type":"number"},"Activity":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string"},"type":{"type":"string"},"cancellable":{"type":"boolean"},"userID":{"type":"number"},"title":{"type":"string"},"subtitle":{"type":"string"},"progress":{"type":"number"},"Context":{"type":"object","properties":{"librarySectionID":{"type":"string"}}}}}}}}}}}}},"401":{"description":"Unauthorized - Returned if the X-Plex-Token is missing from the header or query."}},"method":"get","path":"/activities","servers":[{"url":"{Protocol}://{Local IP}:{Port}","variables":{"Protocol":{"enum":["http","https"],"default":"http","description":"The protocl to use with your plex server"},"Local IP":{"default":"10.10.10.47","description":"The Local IP Address of your plex server"},"Port":{"default":"32400","description":"The port to access your plex server"}}}],"security":[{"PlexToken":[]}],"securitySchemes":{"PlexToken":{"type":"apiKey","in":"header","name":"X-Plex-Token"}},"info":{"title":"Plex-API","summary":"A Plex Media Server API Map","description":"An Open API Spec for interacting with Plex.tv and Plex Servers","version":"0.0.2","contact":{"name":"Luke Hagar","email":"Lukeslakemail@gmail.com","url":"https://www.LukeHagar.com"}},"postman":{"name":"Server Activities","description":{"content":"Server Activities","type":"text/plain"},"url":{"path":["activities"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET"}}
|
||||
sidebar_class_name: "get api-method"
|
||||
info_path: docs/plex/plex-api
|
||||
---
|
||||
|
||||
import ApiTabs from "@theme/ApiTabs";
|
||||
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
|
||||
import MethodEndpoint from "@theme/ApiDemoPanel/MethodEndpoint";
|
||||
import MimeTabs from "@theme/MimeTabs";
|
||||
import ParamsItem from "@theme/ParamsItem";
|
||||
import ResponseSamples from "@theme/ResponseSamples";
|
||||
import SchemaItem from "@theme/SchemaItem";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
|
||||
<h1 className={"openapi__heading"}>Server Activities</h1>
|
||||
|
||||
<MethodEndpoint method={"get"} path={"/activities"}></MethodEndpoint>
|
||||
|
||||
|
||||
|
||||
Server Activities
|
||||
|
||||
<div><div><ApiTabs><TabItem label={"200"} value={"200"}><div>
|
||||
|
||||
The Server Activities
|
||||
|
||||
</div><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{"textAlign":"left"}}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><strong>MediaContainer</strong><span style={{"opacity":"0.6"}}> object</span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"size"} required={false} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><strong>Activity</strong><span style={{"opacity":"0.6"}}> object[]</span></summary><div style={{"marginLeft":"1rem"}}><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"uuid"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"type"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"cancellable"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean"}}></SchemaItem><SchemaItem collapsible={false} name={"userID"} required={false} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number"}}></SchemaItem><SchemaItem collapsible={false} name={"title"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"subtitle"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"progress"} required={false} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><strong>Context</strong><span style={{"opacity":"0.6"}}> object</span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"librarySectionID"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem></div></details></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n \"MediaContainer\": {\n \"size\": 0,\n \"Activity\": [\n {\n \"uuid\": \"string\",\n \"type\": \"string\",\n \"cancellable\": true,\n \"userID\": 0,\n \"title\": \"string\",\n \"subtitle\": \"string\",\n \"progress\": 0,\n \"Context\": {\n \"librarySectionID\": \"string\"\n }\n }\n ]\n }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>
|
||||
|
||||
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
|
||||
</div><div></div></TabItem></ApiTabs></div></div>
|
||||
37
docs/plex/server-capabilities.api.mdx
Normal file
37
docs/plex/server-capabilities.api.mdx
Normal file
File diff suppressed because one or more lines are too long
21
docs/plex/server.tag.mdx
Normal file
21
docs/plex/server.tag.mdx
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
id: server
|
||||
title: "Server"
|
||||
description: "Server"
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
|
||||
|
||||
Operations against the Plex Media Server System.
|
||||
|
||||
|
||||
|
||||
|
||||
```mdx-code-block
|
||||
import DocCardList from '@theme/DocCardList';
|
||||
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
||||
|
||||
<DocCardList items={useCurrentSidebarCategory().items}/>
|
||||
```
|
||||
|
||||
1
docs/plex/sidebar.js
Normal file
1
docs/plex/sidebar.js
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = [{"type":"doc","id":"plex/plex-api"},{"type":"category","label":"Activities","link":{"type":"doc","id":"plex/activities"},"collapsed":false,"items":[{"type":"doc","id":"plex/server-activities","label":"Server Activities","className":"api-method get"},{"type":"doc","id":"plex/cancel-server-activities","label":"Cancel Server Activities","className":"api-method delete"}]},{"type":"category","label":"Butler","link":{"type":"doc","id":"plex/butler"},"collapsed":false,"items":[{"type":"doc","id":"plex/start-all-butler-tasks","label":"Start all Butler tasks","className":"api-method post"},{"type":"doc","id":"plex/stop-all-butler-tasks","label":"Stop all Butler tasks","className":"api-method delete"},{"type":"doc","id":"plex/start-a-butler-tasks","label":"Start a single Butler task","className":"api-method post"},{"type":"doc","id":"plex/stop-a-butler-tasks","label":"Stop a single Butler task","className":"api-method delete"}]},{"type":"category","label":"Server","link":{"type":"doc","id":"plex/server"},"collapsed":false,"items":[{"type":"doc","id":"plex/server-capabilities","label":"Server Capabilities","className":"api-method get"}]},{"type":"category","label":"Updater","link":{"type":"doc","id":"plex/updater"},"collapsed":false,"items":[{"type":"doc","id":"plex/querying-update-status","label":"Querying status of updates","className":"api-method get"},{"type":"doc","id":"plex/checkingfor-updates","label":"Checking for updates","className":"api-method put"},{"type":"doc","id":"plex/applying-updates","label":"Applying updates","className":"api-method put"}]},{"type":"category","label":"Log","link":{"type":"doc","id":"plex/log"},"collapsed":false,"items":[{"type":"doc","id":"plex/loga-line","label":"Logging a single-line message to the Plex Media Server log.","className":"api-method get"},{"type":"doc","id":"plex/log-multiple-lines","label":"Logging a multi-line message to the Plex Media Server log","className":"api-method post"}]}];
|
||||
46
docs/plex/start-a-butler-tasks.api.mdx
Normal file
46
docs/plex/start-a-butler-tasks.api.mdx
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
id: start-a-butler-tasks
|
||||
sidebar_label: Start a single Butler task
|
||||
hide_title: true
|
||||
hide_table_of_contents: true
|
||||
api: {"tags":["Butler"],"description":"This endpoint will attempt to start a single Butler task that is enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:\n1. Any tasks not scheduled to run on the current day will be skipped.\n2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.\n3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.\n4. If we are outside the configured window, the task will start immediately.\n","operationId":"startAButlerTasks","parameters":[{"name":"taskName","description":"the name of the task to be started.","in":"path","schema":{"type":"string","enum":["BackupDatabase","BuildGracenoteCollections","CheckForUpdates","CleanOldBundles","CleanOldCacheFiles","DeepMediaAnalysis","GenerateAutoTags","GenerateChapterThumbs","GenerateMediaIndexFiles","OptimizeDatabase","RefreshLibraries","RefreshLocalMedia","RefreshPeriodicMetadata","UpgradeMediaAnalysis"]},"required":true}],"responses":{"200":{"description":"The task was started successfully"},"202":{"description":"The task was already running."},"401":{"description":"Unauthorized - Returned if the X-Plex-Token is missing from the header or query."}},"method":"post","path":"/butler/{taskName}","servers":[{"url":"{Protocol}://{Local IP}:{Port}","variables":{"Protocol":{"enum":["http","https"],"default":"http","description":"The protocl to use with your plex server"},"Local IP":{"default":"10.10.10.47","description":"The Local IP Address of your plex server"},"Port":{"default":"32400","description":"The port to access your plex server"}}}],"security":[{"PlexToken":[]}],"securitySchemes":{"PlexToken":{"type":"apiKey","in":"header","name":"X-Plex-Token"}},"info":{"title":"Plex-API","summary":"A Plex Media Server API Map","description":"An Open API Spec for interacting with Plex.tv and Plex Servers","version":"0.0.2","contact":{"name":"Luke Hagar","email":"Lukeslakemail@gmail.com","url":"https://www.LukeHagar.com"}},"postman":{"name":"Start a single Butler task","description":{"content":"This endpoint will attempt to start a single Butler task that is enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:\n1. Any tasks not scheduled to run on the current day will be skipped.\n2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.\n3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.\n4. If we are outside the configured window, the task will start immediately.\n","type":"text/plain"},"url":{"path":["butler",":taskName"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) the name of the task to be started.","type":"text/plain"},"type":"any","value":"","key":"taskName"}]},"method":"POST"}}
|
||||
sidebar_class_name: "post api-method"
|
||||
info_path: docs/plex/plex-api
|
||||
---
|
||||
|
||||
import ApiTabs from "@theme/ApiTabs";
|
||||
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
|
||||
import MethodEndpoint from "@theme/ApiDemoPanel/MethodEndpoint";
|
||||
import MimeTabs from "@theme/MimeTabs";
|
||||
import ParamsItem from "@theme/ParamsItem";
|
||||
import ResponseSamples from "@theme/ResponseSamples";
|
||||
import SchemaItem from "@theme/SchemaItem";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
|
||||
<h1 className={"openapi__heading"}>Start a single Butler task</h1>
|
||||
|
||||
<MethodEndpoint method={"post"} path={"/butler/{taskName}"}></MethodEndpoint>
|
||||
|
||||
|
||||
|
||||
This endpoint will attempt to start a single Butler task that is enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:
|
||||
1. Any tasks not scheduled to run on the current day will be skipped.
|
||||
2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.
|
||||
3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.
|
||||
4. If we are outside the configured window, the task will start immediately.
|
||||
|
||||
|
||||
<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><strong>Path Parameters</strong></summary><div><ul><ParamsItem className={"paramsItem"} param={{"name":"taskName","description":"the name of the task to be started.","in":"path","schema":{"type":"string","enum":["BackupDatabase","BuildGracenoteCollections","CheckForUpdates","CleanOldBundles","CleanOldCacheFiles","DeepMediaAnalysis","GenerateAutoTags","GenerateChapterThumbs","GenerateMediaIndexFiles","OptimizeDatabase","RefreshLibraries","RefreshLocalMedia","RefreshPeriodicMetadata","UpgradeMediaAnalysis"]},"required":true}}></ParamsItem></ul></div></details><div><div><ApiTabs><TabItem label={"200"} value={"200"}><div>
|
||||
|
||||
The task was started successfully
|
||||
|
||||
</div><div></div></TabItem><TabItem label={"202"} value={"202"}><div>
|
||||
|
||||
The task was already running.
|
||||
|
||||
</div><div></div></TabItem><TabItem label={"401"} value={"401"}><div>
|
||||
|
||||
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
|
||||
</div><div></div></TabItem></ApiTabs></div></div>
|
||||
42
docs/plex/start-all-butler-tasks.api.mdx
Normal file
42
docs/plex/start-all-butler-tasks.api.mdx
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
id: start-all-butler-tasks
|
||||
sidebar_label: Start all Butler tasks
|
||||
hide_title: true
|
||||
hide_table_of_contents: true
|
||||
api: {"tags":["Butler"],"description":"This endpoint will attempt to start all Butler tasks that are enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:\n1. Any tasks not scheduled to run on the current day will be skipped.\n2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.\n3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.\n4. If we are outside the configured window, the task will start immediately.\n","operationId":"startAllButlerTasks","responses":{"200":{"description":"All tasks were started"},"401":{"description":"Unauthorized - Returned if the X-Plex-Token is missing from the header or query."}},"method":"post","path":"/butler","servers":[{"url":"{Protocol}://{Local IP}:{Port}","variables":{"Protocol":{"enum":["http","https"],"default":"http","description":"The protocl to use with your plex server"},"Local IP":{"default":"10.10.10.47","description":"The Local IP Address of your plex server"},"Port":{"default":"32400","description":"The port to access your plex server"}}}],"security":[{"PlexToken":[]}],"securitySchemes":{"PlexToken":{"type":"apiKey","in":"header","name":"X-Plex-Token"}},"info":{"title":"Plex-API","summary":"A Plex Media Server API Map","description":"An Open API Spec for interacting with Plex.tv and Plex Servers","version":"0.0.2","contact":{"name":"Luke Hagar","email":"Lukeslakemail@gmail.com","url":"https://www.LukeHagar.com"}},"postman":{"name":"Start all Butler tasks","description":{"content":"This endpoint will attempt to start all Butler tasks that are enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:\n1. Any tasks not scheduled to run on the current day will be skipped.\n2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.\n3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.\n4. If we are outside the configured window, the task will start immediately.\n","type":"text/plain"},"url":{"path":["butler"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"method":"POST"}}
|
||||
sidebar_class_name: "post api-method"
|
||||
info_path: docs/plex/plex-api
|
||||
---
|
||||
|
||||
import ApiTabs from "@theme/ApiTabs";
|
||||
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
|
||||
import MethodEndpoint from "@theme/ApiDemoPanel/MethodEndpoint";
|
||||
import MimeTabs from "@theme/MimeTabs";
|
||||
import ParamsItem from "@theme/ParamsItem";
|
||||
import ResponseSamples from "@theme/ResponseSamples";
|
||||
import SchemaItem from "@theme/SchemaItem";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
|
||||
<h1 className={"openapi__heading"}>Start all Butler tasks</h1>
|
||||
|
||||
<MethodEndpoint method={"post"} path={"/butler"}></MethodEndpoint>
|
||||
|
||||
|
||||
|
||||
This endpoint will attempt to start all Butler tasks that are enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:
|
||||
1. Any tasks not scheduled to run on the current day will be skipped.
|
||||
2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.
|
||||
3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.
|
||||
4. If we are outside the configured window, the task will start immediately.
|
||||
|
||||
|
||||
<div><div><ApiTabs><TabItem label={"200"} value={"200"}><div>
|
||||
|
||||
All tasks were started
|
||||
|
||||
</div><div></div></TabItem><TabItem label={"401"} value={"401"}><div>
|
||||
|
||||
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
|
||||
</div><div></div></TabItem></ApiTabs></div></div>
|
||||
42
docs/plex/stop-a-butler-tasks.api.mdx
Normal file
42
docs/plex/stop-a-butler-tasks.api.mdx
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
id: stop-a-butler-tasks
|
||||
sidebar_label: Stop a single Butler task
|
||||
hide_title: true
|
||||
hide_table_of_contents: true
|
||||
api: {"tags":["Butler"],"description":"This endpoint will stop a currently running task by name, or remove it from the list of scheduled tasks if it exists. See the section above for a list of task names for this endpoint.\n","operationId":"stopAButlerTasks","parameters":[{"name":"taskName","description":"The name of the task to be started.","in":"path","schema":{"type":"string","enum":["BackupDatabase","BuildGracenoteCollections","CheckForUpdates","CleanOldBundles","CleanOldCacheFiles","DeepMediaAnalysis","GenerateAutoTags","GenerateChapterThumbs","GenerateMediaIndexFiles","OptimizeDatabase","RefreshLibraries","RefreshLocalMedia","RefreshPeriodicMetadata","UpgradeMediaAnalysis"]},"required":true}],"responses":{"200":{"description":"The task was stopped"},"401":{"description":"Unauthorized - Returned if the X-Plex-Token is missing from the header or query."},"404":{"description":"The task was not running"}},"method":"delete","path":"/butler/{taskName}","servers":[{"url":"{Protocol}://{Local IP}:{Port}","variables":{"Protocol":{"enum":["http","https"],"default":"http","description":"The protocl to use with your plex server"},"Local IP":{"default":"10.10.10.47","description":"The Local IP Address of your plex server"},"Port":{"default":"32400","description":"The port to access your plex server"}}}],"security":[{"PlexToken":[]}],"securitySchemes":{"PlexToken":{"type":"apiKey","in":"header","name":"X-Plex-Token"}},"info":{"title":"Plex-API","summary":"A Plex Media Server API Map","description":"An Open API Spec for interacting with Plex.tv and Plex Servers","version":"0.0.2","contact":{"name":"Luke Hagar","email":"Lukeslakemail@gmail.com","url":"https://www.LukeHagar.com"}},"postman":{"name":"Stop a single Butler task","description":{"content":"This endpoint will stop a currently running task by name, or remove it from the list of scheduled tasks if it exists. See the section above for a list of task names for this endpoint.\n","type":"text/plain"},"url":{"path":["butler",":taskName"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The name of the task to be started.","type":"text/plain"},"type":"any","value":"","key":"taskName"}]},"method":"DELETE"}}
|
||||
sidebar_class_name: "delete api-method"
|
||||
info_path: docs/plex/plex-api
|
||||
---
|
||||
|
||||
import ApiTabs from "@theme/ApiTabs";
|
||||
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
|
||||
import MethodEndpoint from "@theme/ApiDemoPanel/MethodEndpoint";
|
||||
import MimeTabs from "@theme/MimeTabs";
|
||||
import ParamsItem from "@theme/ParamsItem";
|
||||
import ResponseSamples from "@theme/ResponseSamples";
|
||||
import SchemaItem from "@theme/SchemaItem";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
|
||||
<h1 className={"openapi__heading"}>Stop a single Butler task</h1>
|
||||
|
||||
<MethodEndpoint method={"delete"} path={"/butler/{taskName}"}></MethodEndpoint>
|
||||
|
||||
|
||||
|
||||
This endpoint will stop a currently running task by name, or remove it from the list of scheduled tasks if it exists. See the section above for a list of task names for this endpoint.
|
||||
|
||||
|
||||
<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><strong>Path Parameters</strong></summary><div><ul><ParamsItem className={"paramsItem"} param={{"name":"taskName","description":"The name of the task to be started.","in":"path","schema":{"type":"string","enum":["BackupDatabase","BuildGracenoteCollections","CheckForUpdates","CleanOldBundles","CleanOldCacheFiles","DeepMediaAnalysis","GenerateAutoTags","GenerateChapterThumbs","GenerateMediaIndexFiles","OptimizeDatabase","RefreshLibraries","RefreshLocalMedia","RefreshPeriodicMetadata","UpgradeMediaAnalysis"]},"required":true}}></ParamsItem></ul></div></details><div><div><ApiTabs><TabItem label={"200"} value={"200"}><div>
|
||||
|
||||
The task was stopped
|
||||
|
||||
</div><div></div></TabItem><TabItem label={"401"} value={"401"}><div>
|
||||
|
||||
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
|
||||
</div><div></div></TabItem><TabItem label={"404"} value={"404"}><div>
|
||||
|
||||
The task was not running
|
||||
|
||||
</div><div></div></TabItem></ApiTabs></div></div>
|
||||
38
docs/plex/stop-all-butler-tasks.api.mdx
Normal file
38
docs/plex/stop-all-butler-tasks.api.mdx
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
id: stop-all-butler-tasks
|
||||
sidebar_label: Stop all Butler tasks
|
||||
hide_title: true
|
||||
hide_table_of_contents: true
|
||||
api: {"tags":["Butler"],"description":"This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue.\n","operationId":"stopAllButlerTasks","responses":{"200":{"description":"All tasks were stopped"},"401":{"description":"Unauthorized - Returned if the X-Plex-Token is missing from the header or query."}},"method":"delete","path":"/butler","servers":[{"url":"{Protocol}://{Local IP}:{Port}","variables":{"Protocol":{"enum":["http","https"],"default":"http","description":"The protocl to use with your plex server"},"Local IP":{"default":"10.10.10.47","description":"The Local IP Address of your plex server"},"Port":{"default":"32400","description":"The port to access your plex server"}}}],"security":[{"PlexToken":[]}],"securitySchemes":{"PlexToken":{"type":"apiKey","in":"header","name":"X-Plex-Token"}},"info":{"title":"Plex-API","summary":"A Plex Media Server API Map","description":"An Open API Spec for interacting with Plex.tv and Plex Servers","version":"0.0.2","contact":{"name":"Luke Hagar","email":"Lukeslakemail@gmail.com","url":"https://www.LukeHagar.com"}},"postman":{"name":"Stop all Butler tasks","description":{"content":"This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue.\n","type":"text/plain"},"url":{"path":["butler"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"method":"DELETE"}}
|
||||
sidebar_class_name: "delete api-method"
|
||||
info_path: docs/plex/plex-api
|
||||
---
|
||||
|
||||
import ApiTabs from "@theme/ApiTabs";
|
||||
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
|
||||
import MethodEndpoint from "@theme/ApiDemoPanel/MethodEndpoint";
|
||||
import MimeTabs from "@theme/MimeTabs";
|
||||
import ParamsItem from "@theme/ParamsItem";
|
||||
import ResponseSamples from "@theme/ResponseSamples";
|
||||
import SchemaItem from "@theme/SchemaItem";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
|
||||
<h1 className={"openapi__heading"}>Stop all Butler tasks</h1>
|
||||
|
||||
<MethodEndpoint method={"delete"} path={"/butler"}></MethodEndpoint>
|
||||
|
||||
|
||||
|
||||
This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue.
|
||||
|
||||
|
||||
<div><div><ApiTabs><TabItem label={"200"} value={"200"}><div>
|
||||
|
||||
All tasks were stopped
|
||||
|
||||
</div><div></div></TabItem><TabItem label={"401"} value={"401"}><div>
|
||||
|
||||
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
|
||||
</div><div></div></TabItem></ApiTabs></div></div>
|
||||
22
docs/plex/updater.tag.mdx
Normal file
22
docs/plex/updater.tag.mdx
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
id: updater
|
||||
title: "Updater"
|
||||
description: "Updater"
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
|
||||
|
||||
This describes the API for searching and applying updates to the Plex Media Server.
|
||||
Updates to the status can be observed via the Event API.
|
||||
|
||||
|
||||
|
||||
|
||||
```mdx-code-block
|
||||
import DocCardList from '@theme/DocCardList';
|
||||
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
||||
|
||||
<DocCardList items={useCurrentSidebarCategory().items}/>
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user