gen steps

This commit is contained in:
luke-hagar-sp
2023-03-27 14:42:16 -05:00
parent b4c59d0843
commit 6c634befe0
20 changed files with 603 additions and 1 deletions

1
.gitignore vendored
View File

@@ -3,7 +3,6 @@
# Production
/build
/docs/plex/*
# Generated files
.docusaurus

View 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}/>
```

View 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
View 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}/>
```

View 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>

View 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>

View 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
View 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}/>
```

View 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>

View 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>

View 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>

View 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>

File diff suppressed because one or more lines are too long

21
docs/plex/server.tag.mdx Normal file
View 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
View 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"}]}];

View 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>

View 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>

View 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>

View 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
View 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}/>
```