octoprint-open-api/openapi/openapi.yaml
2020-11-04 00:38:49 +01:00

233 lines
5.8 KiB
YAML

openapi: 3.0.2
info:
license:
name: Creative Commons
url: https://creativecommons.org/licenses/by/3.0
title: OctoPrint
description: >-
## About
OctoPrint is an OpenSource community based 3D printer control system. This unofficial API definitions provides easy access to its exposed REST API and allows for easy client generation in languages supported by OpenAPI generators.
For more information about OctoPrint visit the official webpage [here](https://octoprint.org)
## Limitations
- API documentation structure is currently still work in progress so the arrangement of the API endpoints in this documentation may change.
- Currently this API definitions does not included bundled Plugins (see official API [here](https://docs.octoprint.org/en/master/bundledplugins/logging.html#sec-bundledplugins-logging-api))
- Timelapse endpoint is missing
- Slicing endpoint is missing
- Wizard endpoint is missing
- Push updates endpoint is missing
version: "0.8"
servers:
- url: "http://192.168.178.66:5000/api"
tags:
- name: General
description: General operations
- name: User
description: User operations
- name: Groups
description: User group management
- name: Permissions
description: >-
Retrieve system permission settings
- name: System
description: OctoPrint system operations
- name: Settings
description: System settings
- name: System Commands
description: Manage and execute system commands
- name: Languages
description: Printer language configuration
- name: Printer
description: Printer operations
- name: Job
description: Control and monitor ongoing printer jobs
- name: file
description: File operations
x-tagGroups:
- name: General
tags:
- General
- name: Printer
tags:
- State
- Jobs
- Tool
- Bed
- Printhead
- Chamber
- SD Card
- Profiles
- name: Files
tags:
- Files
- name: User Management & Access
tags:
- User
- Groups
- Permissions
- name: System
tags:
- System
- Settings
- System Commands
- Languages
paths:
/login:
$ref: paths/login.yaml
/logout:
$ref: paths/logout.yaml
/currentuser:
$ref: paths/currentuser.yaml
/version:
$ref: paths/version.yaml
/connection:
$ref: paths/connection.yaml
# File endpoints
/files:
get:
$ref: paths/files/get.yaml
/files/{location}:
get:
$ref: paths/files/{location}/get.yaml
post:
$ref: ./paths/files/{location}/post.yaml
/files/{location}/{path}:
get:
$ref: ./paths/files/{location}/{path}-get.yaml
delete:
$ref: ./paths/files/{location}/{path}-delete.yaml
# Print job endpoints
/job:
get:
$ref: paths/job/get.yaml
post:
$ref: paths/job/post.yaml
/printer:
get:
$ref: paths/printer/get.yaml
/printer/tool:
get:
$ref: paths/printer/tool-get.yaml
post:
$ref: paths/printer/tool-post.yaml
/printer/bed:
get:
$ref: paths/printer/bed-get.yaml
post:
$ref: paths/printer/bed-post.yaml
/printer/chamber:
get:
$ref: paths/printer/chamber-get.yaml
post:
$ref: paths/printer/chamber-post.yaml
/printer/sd:
get:
$ref: paths/printer/sd-get.yaml
post:
$ref: paths/printer/sd-post.yaml
/printer/command/custom:
get:
$ref: paths/printer/command/custom-get.yaml
/printer/command:
post:
$ref: paths/printer/command/post.yaml
# Printer profile management
/printerprofiles:
get:
$ref: paths/printerprofiles/get.yaml
post:
$ref: paths/printerprofiles/post.yaml
/printerprofiles/{identifier}:
get:
$ref: paths/printerprofiles/{identifier}-get.yaml
post:
$ref: paths/printerprofiles/{identifier}-post.yaml
delete:
$ref: paths/printerprofiles/{identifier}-delete.yaml
# OctoPrint system commands
/system/commands:
get:
$ref: paths/system/commands/get.yaml
/system/commands/{source}:
get:
$ref: paths/system/commands/{source}-get.yaml
/system/commands/{source}/{action}:
post:
$ref: paths/system/commands/{source}-{action}-post.yaml
/settings:
get:
$ref: paths/settings/get.yaml
post:
$ref: paths/settings/post.yaml
/settings/templates:
get:
$ref: paths/settings/templates-get.yaml
/settings/apikey:
get:
$ref: paths/settings/apikey-post.yaml
# Access Controls
/access/permissions:
get:
$ref: paths/access/permissions-get.yaml
/access/groups:
get:
$ref: paths/access/groups/get.yaml
post:
$ref: paths/access/groups/post.yaml
/access/groups/{key}:
get:
$ref: paths/access/groups/{key}-get.yaml
put:
$ref: paths/access/groups/{key}-put.yaml
delete:
$ref: paths/access/groups/{key}-delete.yaml
/access/users:
get:
$ref: paths/access/users/get.yaml
post:
$ref: paths/access/users/post.yaml
/access/users/{username}:
get:
$ref: paths/access/users/{username}-get.yaml
put:
$ref: paths/access/users/{username}-put.yaml
delete:
$ref: paths/access/users/{username}-delete.yaml
/access/users/{username}/password:
put:
$ref: paths/access/users/{username}-password-put.yaml
/access/users/{username}/settings:
get:
$ref: paths/access/users/{username}-settings-get.yaml
patch:
$ref: paths/access/users/{username}-settings-patch.yaml
/access/users/{username}/apikey:
post:
$ref: paths/access/users/{username}-apikey-post.yaml
delete:
$ref: paths/access/users/{username}-apikey-delete.yaml
# Language endpoints
/languages:
get:
$ref: paths/languages/get.yaml
post:
$ref: paths/languages/post.yaml
/languages/{locale}/{pack}:
delete:
$ref: paths/languages/{locale}-{pack}-delete.yaml