octoprint-open-api/spec/api.yaml
2020-11-13 23:25:10 +01:00

2517 lines
82 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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:
post:
tags:
- General
- User
summary: Login
description: >-
Creates a login session or retrieves information about the currently
existing session (“passive login”). Can be used in one of two ways: to
login a user via username and password and create a persistent session
(usually from a UI in the browser), or to retrieve information about the
active user (from an existing session or an API key) via the passive
flag. Will return a 200 OK with a login response on successful login,
whether active or passive. The active (username/password) login may also
return a 403 Forbidden in case of a username/password mismatch, unknown
user or a deactivated account.
operationId: login
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/Login'
- $ref: '#/components/schemas/PassiveLogin'
responses:
'200':
description: Successful login
content:
application/json:
schema:
$ref: '#/components/schemas/LoginResponse'
'403':
description: 'Username/password mismatch, unknown user or deactivated account'
/logout:
post:
tags:
- User
- General
summary: Logout
description: Ends the current login session of the current user
operationId: logout
responses:
'204':
description: User logged out
/currentuser:
get:
tags:
- User
- General
summary: Current User
description: Retrieves information about the current user.
operationId: getCurrentUser
responses:
'200':
description: Current user object
content:
application/json:
schema:
$ref: '#/components/schemas/CurrentUser'
/version:
get:
summary: Version
description: >-
Retrieve information regarding server and API version. Returns a JSON
object with two keys, api containing the API version, server containing
the server version, text containing the server version including the
prefix ``OctoPrint `` (to determine that this is indeed a genuine
OctoPrint instance).
operationId: getVersion
tags:
- General
- System
responses:
'200':
description: OctoPrint server version
content:
application/json:
schema:
type: object
properties:
api:
type: string
server:
type: string
text:
type: string
/connection:
get:
summary: Printer Connection
operationId: getConnection
tags:
- General
- System
description: >-
Retrieve the current connection settings, including information
regarding the available baudrates and serial ports and the current
connection state.
responses:
'200':
description: Connection info object
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectionInfo'
post:
summary: Change Printer Connection
operationId: setConnectionOptions
tags:
- General
- System
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ConnectCmd'
- $ref: '#/components/schemas/DisconnectCmd'
- $ref: '#/components/schemas/FakeAckCmd'
discriminator:
propertyName: command
responses:
'204':
description: Printer connection settings changed
'400':
description: >-
If the selected port or baudrate for a connect command are not part
of the available options.
/files:
get:
summary: Retrieve all files
operationId: getAllFiles
description: >-
Retrieve information regarding all files currently available and
regarding the disk space still available locally in the system. By
default only returns the files and folders in the root directory. If the
query parameter `recursive` is provided and set to `true`, returns all
files and folders.
tags:
- Files
parameters:
- in: query
name: recursive
description: >-
If set to true, return all files and folders recursively. Otherwise
only return items on same level.
required: false
schema:
type: string
responses:
'200':
description: Returns a Retrieve response
content:
application/json:
schema:
$ref: '#/components/schemas/RetrieveResponse'
'/files/{location}':
get:
summary: Retrieve files from specific location
operationId: getAllFilesInLocation
description: >-
Retrieve information regarding all files currently available and
regarding the disk space still available locally in the system. By
default only returns the files and folders in the root directory. If the
query parameter `recursive` is provided and set to `true`, returns all
files and folders.
tags:
- Files
parameters:
- $ref: '#/components/parameters/fileLocation'
- $ref: '#/components/parameters/fileRecursive'
responses:
'200':
description: Returns a Retrieve Response
content:
application/json:
schema:
$ref: '#/components/schemas/RetrieveResponse'
post:
summary: Upload file or create folder
operationId: uploadFile
description: >-
Upload a file to the selected location or create a new empty folder on
it.
tags:
- Files
parameters:
- $ref: '#/components/parameters/fileLocation'
requestBody:
$ref: '#/components/requestBodies/File'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/UploadResponse'
'400':
description: >-
If no file or foldername are included in the request, userdata was
provided but could not be parsed as JSON or the request is otherwise
invalid.
'404':
description: >-
If location is neither local nor sdcard or trying to upload to SD
card and SD card support is disabled
'409':
description: >-
If the upload of the file would override the file that is currently
being printed or if an upload to SD card was requested and the
printer is either not operational or currently busy with a print
job.
'415':
description: >-
If the file is neither a gcode nor an stl file (or it is an stl file
but slicing support is disabled)
'500':
description: If the upload failed internally
'/files/{location}/{path}':
get:
summary: Retrieve a specific files or folders information
operationId: getFileOrFolder
description: Retrieves the selected files or folders information.
tags:
- Files
parameters:
- $ref: '#/components/parameters/fileLocation'
- $ref: '#/components/parameters/filePath'
- $ref: '#/components/parameters/fileRecursive'
responses:
'200':
description: Returns a Retrieve Response
content:
application/json:
schema:
$ref: '#/components/schemas/RetrieveResponse'
delete:
summary: Delete a file or folder
operationId: deleteFileOrFolder
description: Delete the selected path on the selected location.
tags:
- Files
parameters:
- $ref: '#/components/parameters/fileLocation'
- $ref: '#/components/parameters/filePath'
responses:
'204':
description: File deleted
'404':
description: >-
If location is neither local nor sdcard or the requested file was
not found
'409':
description: If the file to be deleted is currently being printed
/job:
get:
summary: Retrieve information about the current job
operationId: getCurrentJob
description: Retrieve information about the current job (if there is one).
tags:
- Jobs
requestBody:
content:
application/json:
schema:
type: object
properties:
job:
$ref: '#/components/schemas/JobInfo'
progress:
$ref: '#/components/schemas/ProgressInfo'
state:
type: string
enum:
- Operational
- Printing
- Pausing
- Paused
- Cancelling
- Error
- Offline
description: >-
A textual representation of the current state of the job, i.e.
“Operational”, “Printing”, “Pausing”, “Paused”, “Cancelling”,
“Error” or “Offline”.
responses:
'200':
description: No error
post:
summary: Issue a job command
operationId: sendJobCommand
description: 'Job commands allow starting, pausing and cancelling print jobs.'
tags:
- Jobs
requestBody:
$ref: '#/components/requestBodies/JobCommand'
responses:
'204':
description: No error
'409':
description: >-
If the printer is not operational or the current print job state
does not match the preconditions for the command.
/printer:
get:
summary: Printer State
description: Retrieves the current state of the printer.
operationId: getPrinterState
tags:
- State
parameters:
- $ref: '#/components/parameters/history'
- $ref: '#/components/parameters/limit'
- in: query
name: exclude
schema:
type: array
items:
type: string
enum:
- temperature
- sd
- state
description: >-
An optional comma-separated list of fields to exclude from the
response (e.g. if not needed by the client). Valid values to supply
here are temperature, sd and state.
responses:
'200':
description: Current Printer state.
'409':
description: If the printer is not operational.
/printer/tool:
get:
summary: Retrieve the current tool state
operationId: getToolState
description: >-
Retrieves the current temperature data (actual, target and offset) plus
optionally a (limited) history (actual, target, timestamp) for all of
the printers available tools. Its also possible to retrieve the
temperature history by supplying the history query parameter set to
true. The amount of returned history data points can be limited using
the limit query parameter.
tags:
- Tool
- State
parameters:
- $ref: '#/components/parameters/history'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: Current tool status with optional history
content:
application/json:
schema:
type: object
properties:
history:
type: array
items:
type: object
properties:
time:
type: integer
additionalProperties:
$ref: '#/components/schemas/TemperatureProbe'
example:
tool1:
actual: 250
tool2:
actual: 200
target: 215
additionalProperties:
$ref: '#/components/schemas/TemperatureProbe'
'409':
description: If the printer is not operational.
post:
summary: Issue a tool command
operationId: sendToolCmd
description: >-
Tool commands allow setting the temperature and temperature offsets for
the printers tools (hotends), selecting the current tool and
extruding/retracting from the currently selected tool.
tags:
- Tool
requestBody:
$ref: '#/components/requestBodies/PrinterToolCommand'
responses:
'204':
description: No Error
'400':
description: >-
If targets or offsets contains a property or tool contains a value
not matching the format tool{n}, the target/offset temperature,
extrusion amount or flow rate factor is not a valid number or
outside of the supported range, or if the request is otherwise
invalid.
'409':
description: >-
If the printer is not operational or in case of select or extrude
currently printing.
/printer/bed:
get:
summary: Retrieve the current bed state
operationId: getBedState
tags:
- Bed
- State
description: >-
Retrieves the current temperature data (actual, target and offset) plus
optionally a (limited) history (actual, target, timestamp) for the
printers heated bed. Its also possible to retrieve the temperature
history by supplying the history query parameter set to true. The amount
of returned history data points can be limited using the limit query
parameter.
parameters:
- $ref: '#/components/parameters/history'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: Current bed status with optional history
content:
application/json:
schema:
type: object
properties:
bed:
$ref: '#/components/schemas/TemperatureProbe'
history:
type: array
items:
type: object
properties:
time:
type: integer
bed:
$ref: '#/components/schemas/TemperatureProbe'
example:
time: 1395651928
bed:
actual: 50.221
target: 70
'409':
description: >-
If the printer is not operational or the selected printer profile
does not have a heated bed.
post:
summary: Issue a bed command
operationId: sendBedCmd
description: >-
Bed commands allow setting the temperature and temperature offsets for
the printers heated bed.
tags:
- Bed
requestBody:
$ref: '#/components/requestBodies/PrinterBedCommand'
responses:
'204':
description: No Error
'400':
description: >-
If target or offset is not a valid number or outside of the
supported range, or if the request is otherwise invalid.
'409':
description: >-
If the printer is not operational or the selected printer profile
does not have a heated bed.
/printer/chamber:
get:
summary: Retrieve the current chamber state
operationId: getChamberState
description: >-
Retrieves the current temperature data (actual, target and offset) plus
optionally a (limited) history (actual, target, timestamp) for the
printers heated chamber.
Its also possible to retrieve the temperature history by supplying the
history query parameter set to true. The amount of returned history data
points can be limited using the limit query parameter.
tags:
- Chamber
- State
parameters:
- $ref: '#/components/parameters/history'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: Current chamber status with optional history
content:
application/json:
schema:
type: object
properties:
chamber:
$ref: '#/components/schemas/TemperatureProbe'
history:
type: array
items:
type: object
properties:
time:
type: integer
chamber:
$ref: '#/components/schemas/TemperatureProbe'
example:
time: 1395651928
bed:
actual: 50.221
target: 70
'409':
description: >-
If the printer is not operational or the selected printer profile
does not have a heated chamber.
post:
summary: Issue a bed command
operationId: sendChamberCmd
description: >-
Chamber commands allow setting the temperature and temperature offsets
for the printers heated chamber.
tags:
- Chamber
requestBody:
$ref: '#/components/requestBodies/PrinterChamberCommand'
responses:
'204':
description: No Error
'400':
description: >-
If target or offset is not a valid number or outside of the
supported range, or if the request is otherwise invalid.
'409':
description: >-
If the printer is not operational or the selected printer profile
does not have a heated chamber.
/printer/sd:
get:
summary: Retrieve the current SD state
operationId: getSdState
description: >-
Retrieves the current state of the printers SD card. For this request
no authentication is needed.
If SD support has been disabled in OctoPrints settings, a 404 Not Found
is returned.
Returns a 200 OK with an SD State Response in the body upon success.
tags:
- SD Card
- State
responses:
'200':
description: SD State Response
content:
application/json:
schema:
type: object
properties:
ready:
type: boolean
'409':
description: If SD support has been disabled in OctoPrints config.
post:
summary: Issue an SD command
operationId: sendSdCmd
description: >-
SD commands allow initialization, refresh and release of the printers
SD card (if available).
tags:
- SD Card
requestBody:
$ref: '#/components/requestBodies/PrinterSdCommand'
responses:
'204':
description: No error
'409':
description: >-
If a refresh or release command is issued but the SD card has not
been initialized (e.g. via init.
/printer/command/custom:
get:
summary: Retrieve custom controls
operationId: getCustomControls
description: >-
Retrieves the custom controls as configured in config.yaml.
Please refer to the documentation of custom controls on what data
structure to expect here.
tags:
- Command
responses:
'200':
description: Custom Controls
content:
application/json:
schema:
type: object
properties:
controls:
type: array
items:
type: object
additionalProperties: true
/printer/command:
post:
summary: Send an arbitrary command to the printer
operationId: sendPrinterCmd
description: >-
Sends any command to the printer via the serial interface. Should be
used with some care as some commands can interfere with or even stop a
running print job.
tags:
- Command
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ArbitraryPrinterCmd'
responses:
'204':
description: No error
/printerprofiles:
get:
summary: Retrieve all printer profiles
operationId: getPrinterProfiles
description: Retrieves a list of all configured printer profiles.
tags:
- Profiles
responses:
'200':
description: List of available printer profiles
content:
application/json:
schema:
type: object
properties:
profiles:
type: array
items:
$ref: '#/components/schemas/Profile'
post:
summary: Add a new printer profile
operationId: addNewPrinterProfile
description: >-
Adds a new printer profile based on either the current default profile
or the profile identified in basedOn. The provided profile data will be
merged with the profile data from the base profile.
tags:
- Profiles
requestBody:
content:
application/json:
schema:
type: object
required:
- profile
properties:
basedOn:
type: string
profile:
$ref: '#/components/schemas/Profile'
required: false
responses:
'200':
description: Profile saved.
content:
application/json:
schema:
type: object
properties:
profile:
$ref: '#/components/schemas/Profile'
'/printerprofiles/{identifier}':
get:
summary: Retrieve a single printer profile
operationId: getPrinterProfile
description: Retrieves an existing single printer profile.
tags:
- Profiles
parameters:
- $ref: '#/components/parameters/profileIdentifier'
responses:
'200':
description: List of available printer profiles
content:
application/json:
schema:
$ref: '#/components/schemas/Profile'
'404':
description: The profile does not exist
post:
summary: Update an existing printer profile
operationId: updatePrinterProfile
description: >-
Adds a new printer profile based on either the current default profile
or the profile identified in basedOn. The provided profile data will be
merged with the profile data from the base profile.
tags:
- Profiles
parameters:
- $ref: '#/components/parameters/profileIdentifier'
requestBody:
$ref: '#/components/requestBodies/PrinterProfileChange'
responses:
'200':
description: Profile saved.
content:
application/json:
schema:
type: object
properties:
profile:
$ref: '#/components/schemas/Profile'
delete:
summary: Remove an existing printer profile
operationId: deletePrinterProfile
description: Deletes an existing printer profile by its profile identifier.
parameters:
- $ref: '#/components/parameters/profileIdentifier'
tags:
- Profiles
responses:
'204':
description: Profile removed
'409':
description: >-
If the profile to be deleted is the currently selected profile, a
409 Conflict will be returned.
/system/commands:
get:
summary: List all registered system commands
operationId: getSystemCmds
description: Retrieves all configured system commands.
tags:
- System Commands
responses:
'200':
description: All available system commands.
content:
application/json:
schema:
type: object
properties:
core:
type: array
items:
$ref: '#/components/schemas/ClientCmd'
'/system/commands/{source}':
get:
summary: List all registered system commands for a source
operationId: getSystemSourceCmds
description: Retrieves the configured system commands for the specified source.
tags:
- System Commands
parameters:
- $ref: '#/components/parameters/systemCmdSource'
responses:
'200':
description: All available system commands.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ClientCmd'
'/system/commands/{source}/{action}':
post:
summary: Execute a registered system command
operationId: executeSysCmd
description: Execute the system command action defined in source.
tags:
- System Commands
parameters:
- $ref: '#/components/parameters/systemCmdSource'
- in: path
name: action
schema:
type: string
description: 'The identifier of the command, action from its definition'
responses:
'204':
description: Command executed
'400':
description: >-
If a divider is supposed to be executed or if the request is
malformed otherwise
'404':
description: If the command could not be found for source and action
'500':
description: >-
If the command didnt define a command to execute, the command
returned a non-zero return code and ignore was not true or some
other internal server error occurred
/settings:
get:
summary: Retrieve current settings
operationId: getSettings
description: Retrieves the current configuration of OctoPrint.
tags:
- Settings
responses:
'200':
description: Current OctoPrint state
content:
application/json:
schema:
$ref: '#/components/schemas/Config'
post:
summary: Update Settings
operationId: updateSettings
description: >-
Saves the provided settings in OctoPrint.
Expects a JSON object with the settings to change as request body. This
can be either a full settings tree, or only a partial tree containing
only those fields that should be updated.
tags:
- Settings
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Config'
responses:
'200':
description: Current OctoPrint state
content:
application/json:
schema:
$ref: '#/components/schemas/Config'
/settings/templates:
get:
summary: Fetch template data
operationId: getTemplates
description: >-
Fetch data (currently only the sorting order) of all registered template
components in the system.
Use this to get a full list of the identifiers of all UI components
provided either by core OctoPrint or any currently active plugins.
tags:
- Settings
- Templates
responses:
'200':
description: Current OctoPrint state
content:
application/json:
schema:
$ref: '#/components/schemas/Templates'
/settings/apikey:
get:
summary: Regenerate the system wide API key
operationId: regenerateApiKey
description: >-
Generates a new system wide API key.
Does not expect a body. Will return the generated API key as apikey
property in the JSON object contained in the response body.
tags:
- System
- Settings
responses:
'200':
description: ApiKey was regenerated
'403':
description: No admin rights
/access/permissions:
get:
summary: List all permissions
operationId: getAllPermissions
description: Retrieves all permissions available in the system.
tags:
- Permissions
responses:
'200':
description: List of available permissions on the system
content:
application/json:
schema:
type: object
properties:
permissions:
type: array
items:
$ref: '#/components/schemas/PermissionRecord'
/access/groups:
get:
summary: Get all groups
operationId: getAllGroups
tags:
- Groups
description: Retrieves all groups registered in the system.
responses:
'200':
description: List of available groups on the system
content:
application/json:
schema:
$ref: '#/components/schemas/GroupList'
post:
summary: Add a new group
operationId: addGroup
tags:
- Groups
description: Adds a new group to the system.
requestBody:
$ref: '#/components/requestBodies/GroupRegistrationReq'
responses:
'200':
description: List of all groups on the system
content:
application/json:
schema:
$ref: '#/components/schemas/GroupList'
'400':
description: >-
If any of the mandatory fields is missing or the request is
otherwise invalid
'409':
description: 'Conflict: A group with the provided key does already exist'
'/access/groups/{key}':
get:
summary: Retrieve a group
operationId: getGroup
tags:
- Groups
description: Retrieves an individual group record.
parameters:
- in: path
name: key
description: The groups identifier
schema:
type: string
responses:
'200':
description: Group record
content:
application/json:
schema:
$ref: '#/components/schemas/GroupRecord'
put:
summary: Update a group
operationId: updateGroup
tags:
- Groups
description: Updates an existing group.
parameters:
- in: path
name: key
description: The groups identifier
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GroupUpdate'
responses:
'200':
description: Group records
content:
application/json:
schema:
$ref: '#/components/schemas/GroupList'
'400':
description: >-
If any of the mandatory fields is missing or the request is
otherwise invalid
delete:
summary: Delete a group
operationId: deleteGroup
tags:
- Groups
description: Deletes a group by its identifier.
parameters:
- in: path
name: key
description: The groups identifier
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GroupUpdate'
responses:
'200':
description: Group was deleted. A list of all available groups will be returned.
content:
application/json:
schema:
$ref: '#/components/schemas/GroupList'
/access/users:
get:
summary: Retrieve a list of users
operationId: getAllUsers
tags:
- User
description: Retrieves a list of all registered users in OctoPrint.
responses:
'200':
description: List of available groups on the system
content:
application/json:
schema:
$ref: '#/components/schemas/UserList'
post:
summary: Add a new user
operationId: addUser
tags:
- User
description: Adds a new user to OctoPrint.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserRegister'
responses:
'200':
description: List of all groups on the system
content:
application/json:
schema:
$ref: '#/components/schemas/UserList'
'400':
description: >-
If any of the mandatory fields is missing or the request is
otherwise invalid
'409':
description: 'Conflict: A user with the provided name does already exist'
'/access/users/{username}':
get:
summary: Retrieve a user
operationId: getUser
tags:
- User
description: Retrieves information about a user.
parameters:
- $ref: '#/components/parameters/username'
responses:
'200':
description: Group record
content:
application/json:
schema:
$ref: '#/components/schemas/UserRecord'
'404':
description: Unknown user
put:
summary: Update a user
operationId: updateUser
tags:
- User
description: Updates an existing user.
parameters:
- $ref: '#/components/parameters/username'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserUpdate'
responses:
'200':
description: Group records
content:
application/json:
schema:
$ref: '#/components/schemas/UserList'
'404':
description: Unknown user
delete:
summary: Delete a user
operationId: deleteUser
description: Deletes a user by name.
tags:
- User
parameters:
- $ref: '#/components/parameters/username'
responses:
'200':
description: User was deleted
content:
application/json:
schema:
$ref: '#/components/schemas/UserList'
'404':
description: User not found.
'/access/users/{username}/password':
put:
summary: Change user password
operationId: changeUserPassword
tags:
- User
description: Changes the password of a user.
parameters:
- $ref: '#/components/parameters/username'
requestBody:
content:
application/json:
schema:
type: object
properties:
password:
type: string
responses:
'200':
description: Password was updated
'400':
description: >-
If the request doesnt contain a `password` property or the request
is otherwise invalid
'403':
description: No admin rights and not logged in as the user
'404':
description: Unknown user
'/access/users/{username}/settings':
get:
summary: Get a user's settings
operationId: getUserSettings
tags:
- User
description: >-
Retrieves a users settings. Will return a 200 OK with a JSON object
representing the users personal settings (if any) as body.
parameters:
- $ref: '#/components/parameters/username'
responses:
'200':
description: User settings
content:
application/json:
schema:
type: object
additionalProperties: true
'403':
description: No admin rights and not logged in as the user
'404':
description: Unknown user
patch:
summary: Update a users settings
operationId: updateUserSettings
tags:
- User
description: >-
Retrieves a users settings. Will return a 200 OK with a JSON object
representing the users personal settings (if any) as body.
parameters:
- $ref: '#/components/parameters/username'
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'204':
description: Settings updated
'403':
description: No admin rights and not logged in as the user
'404':
description: Unknown user
'/access/users/{username}/apikey':
post:
summary: Regenerate a users api key
operationId: regenerateUserApiKey
tags:
- User
description: >-
Generates a new API key for the user.
Does not expect a body. Will return the generated API key as apikey
property in the JSON object contained in the response body.
parameters:
- $ref: '#/components/parameters/username'
responses:
'200':
description: Api key was regenerated
'403':
description: No admin rights and not logged in as the user
'404':
description: Unknown user
delete:
summary: Delete a users api key
operationId: deleteApiKey
tags:
- User
description: |-
Deletes a users personal API key.
Requires the SETTINGS permission or to be logged in as the user.
parameters:
- $ref: '#/components/parameters/username'
responses:
'204':
description: Api key was deleted
'403':
description: No admin rights and not logged in as the user
'404':
description: Unknown user
/languages:
get:
summary: Retrieve installed language packs
operationId: getLanguages
description: |-
Retrieves a list of installed language packs.
The response body will contain a list of available languages packs.
tags:
- Languages
responses:
'200':
description: Available language packs
content:
application/json:
schema:
$ref: '#/components/schemas/LanguageList'
post:
summary: Upload a language pack
operationId: uploadLanguagePack
description: >-
Uploads a new language pack to OctoPrint.
Other than most of the other requests on OctoPrints API which are
expected as JSON, this request is expected as Content-Type:
multipart/form-data due to the included file upload.
To upload a file, the request body must contain the file form field with
the contents and file name of the file to upload.
Only files with one of the extensions zip, tar.gz, tgz or tar will be
processed, for other file extensions a 400 Bad Request will be returned.
Will return a list of installed language packs upon completion, as
described in Retrieve installed language packs.
tags:
- Languages
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
description: The language pack file to upload
type: string
format: binary
responses:
'200':
description: The file was uploaded successfully
content:
application/json:
schema:
$ref: '#/components/schemas/LanguageList'
'400':
description: File has an invalid file extension
'/languages/{locale}/{pack}':
delete:
summary: Delete a language pack
operationId: deleteLanguagePack
description: >-
Deletes the language pack pack for locale locale. Can be either the
_core pack (containing translations for core OctoPrint) or the language
pack for a plugin specified by the plugin identifier.
tags:
- Languages
parameters:
- in: path
name: locale
schema:
type: string
description: 'The identifier of the command, action from its definition'
- in: path
name: pack
schema:
type: string
description: The language pack to delete
responses:
'200':
description: The language pack was deleted
content:
application/json:
schema:
$ref: '#/components/schemas/LanguageList'
components:
schemas:
Login:
type: object
properties:
user:
type: string
pass:
type: string
PassiveLogin:
type: object
properties:
passive:
type: boolean
remember:
type: boolean
LoginResponse:
type: object
properties:
session:
type: string
_is_external_client:
type: boolean
Needs:
type: object
properties:
role:
type: array
items:
type: string
group:
type: array
items:
type: string
PermissionRecord:
type: object
properties:
key:
type: string
description: The permissions identifier
name:
type: string
description: The permissions name
dangerous:
type: boolean
description: >-
Whether the permission should be considered dangerous due to a high
reponsibility (true) or not (false).
default_groups:
type: array
description: >-
List of group identifiers for which this permission is enabled by
default
items:
type: string
description:
type: string
description: Human readable description of the permission
needs:
description: Needs assigned to the permission
$ref: '#/components/schemas/Needs'
GroupRecord:
allOf:
- $ref: '#/components/schemas/GroupRegister'
- type: object
properties:
needs:
$ref: '#/components/schemas/Needs'
removable:
type: boolean
description: Whether this group can be removed (true) or not (false)
changeable:
type: boolean
description: Whether this group can be modified (true) or not (false)
toggleable:
type: boolean
description: >-
Whether this group can be assigned to users or other groups
(true) or not (false)
GroupUpdate:
type: object
properties:
description:
type: string
description: The groups description. Set to empty if not provided.
permissions:
type: array
items:
$ref: '#/components/schemas/PermissionRecord'
description: A list of identifiers of permissions to assign to the group
subgroups:
type: array
items:
$ref: '#/components/schemas/GroupRecord'
description: A list of identifiers of groups to assign to the group as subgroups
default:
type: boolean
description: >-
Whether to assign the group to new users by default (true) or not
(false, default value)
GroupRegister:
allOf:
- $ref: '#/components/schemas/GroupUpdate'
- type: object
properties:
key:
type: string
description: The groups identifier
name:
type: string
description: The groups name
CurrentUser:
type: object
properties:
name:
type: string
groups:
type: array
items:
$ref: '#/components/schemas/GroupRecord'
permissions:
type: array
items:
$ref: '#/components/schemas/PermissionRecord'
Box:
type: object
description: A simple Box
properties:
min_x:
type: number
description: >-
Minimum X coordinate defining the safe custom bounding box. Smaller
value than the minimum X coordinate of the print volume.
max_x:
type: number
description: >-
Maximum X coordinate defining the safe custom bounding box. Larger
value than the maximum X coordinate of the print volume.
min_y:
type: number
description: >-
Minimum Y coordinate defining the safe custom bounding box. Smaller
value than the minimum Y coordinate of the print volume.
max_y:
type: number
description: >-
Maximum Y coordinate defining the safe custom bounding box. Larger
value than the maximum Y coordinate of the print volume.
min_z:
type: number
description: >-
Minimum Z coordinate defining the safe custom bounding box. Smaller
value than the minimum Z coordinate of the print volume.
max_z:
type: number
description: >-
Maximum Z coordinate defining the safe custom bounding box. Larger
value than the maximum Z coordinate of the print volume.
Volume:
type: object
description: Printer volume
properties:
formFactor:
type: string
description: >-
The form factor of the printers bed, valid values are “rectangular”
and “circular”
origin:
type: string
description: >-
The location of the origin on the printers bed, valid values are
“lowerleft” and “center”
enum:
- lowerleft
- center
width:
description: >-
The width of the print volume. For circular beds, the diameter of
the bed.
type: number
height:
description: >-
The depth of the print volume. For circular beds, this is the
diameter of the bed and will be forced to be the same as
volume.width upon saving.
type: number
depth:
type: number
description: The height of the print volume
custom_box:
description: >-
If the printer has a custom bounding box where the print head can be
safely moved to, exceeding the defined print volume, that bounding
box will be defined here. Otherwise (safe area == print volume) this
value will be false.
oneOf:
- type: boolean
- $ref: '#/components/schemas/Box'
AxisProperty:
type: object
properties:
speed:
type: integer
description: Maximum speed of the axis in mm/min.
inverted:
type: boolean
description: Whether the axis is inverted or not.
Axis:
type: object
properties:
x:
$ref: '#/components/schemas/AxisProperty'
'y':
$ref: '#/components/schemas/AxisProperty'
z:
$ref: '#/components/schemas/AxisProperty'
e:
$ref: '#/components/schemas/AxisProperty'
Extruder:
type: object
description: Information about the printers extruders
properties:
nozzleDiameter:
type: number
description: The diameter of the printers nozzle(s) in mm.
count:
type: integer
description: Count of extruders on the printer (defaults to 1)
offsets:
type: array
description: >-
Tuple of (x, y) values describing the offsets of the other extruders
relative to the first extruder. E.g. for a printer with two
extruders, if the second extruder is offset by 20mm in the X and
25mm in the Y direction, this array will read
items:
type: array
items:
type: number
minItems: 2
example:
- - 0
- 0
- - 20
- 25
Profile:
type: object
description: Printer profile
properties:
id:
type: string
description: >-
Identifier of the profile. Will always be returned in responses, is
mandatory in add requests but can be left out of update requests.
name:
type: string
description: >-
Display name of the profile. Will always be returned in responses,
is mandatory in add requests but can be left out of update requests.
color:
type: string
description: >-
The color to associate with this profile (used in the UIs title
bar). Valid values are “default”, “red”, “orange”, “yellow”,
“green”, “blue”, “black”. Will always be returned in responses but
can be left out of save/update requests.
model:
type: string
description: >-
Printer model of the profile. Will always be returned in responses
but can be left out of save/update requests.
default:
type: boolean
description: >-
Whether this is the default profile to be used with new connections
(true) or not (false). Will always be returned in responses but can
be left out of save/update requests.
current:
type: boolean
description: >-
Whether this is the profile currently active. Will always be
returned in responses but ignored in save/update requests.
resource:
type: string
format: url
description: >-
Resource URL of the profile, will always be returned in responses
but can be left out of save/update requests.
volume:
description: >-
The print volume, will always be returned in responses but can be
left out of save/update requests.
$ref: '#/components/schemas/Volume'
heatedBed:
type: boolean
description: Whether the printer has a headed bed.
heatedChamber:
type: boolean
description: Whether the printer has a heated chamber (true) or not (false)
axis:
$ref: '#/components/schemas/Axis'
description: >-
Description of the printers axes properties, one entry each for x,
y, z and e holding maximum speed and whether this axis is inverted
or not.
extruder:
$ref: '#/components/schemas/Extruder'
ConnectionOptions:
type: object
properties:
ports:
type: array
items:
type: string
baudrates:
type: array
items:
type: number
printerProfiles:
type: array
items:
$ref: '#/components/schemas/Profile'
baudratePreference:
type: number
printerProfilePreference:
type: string
autoconnect:
type: boolean
ConnectionInfo:
type: object
properties:
current:
type: object
properties:
state:
type: string
port:
type: string
baudrate:
type: number
printerProfile:
type: string
options:
$ref: '#/components/schemas/ConnectionOptions'
ConnectCmd:
type: object
properties:
command:
type: string
enum:
- connect
port:
type: string
baudrate:
type: number
printerProfile:
type: string
save:
type: boolean
autoconnect:
type: boolean
DisconnectCmd:
type: object
properties:
command:
type: string
enum:
- disconnect
FakeAckCmd:
type: object
properties:
command:
type: string
enum:
- fake_ack
Reference:
type: object
properties:
resource:
type: string
format: url
download:
type: string
format: url
model:
type: string
format: url
required:
- resource
FilamentUsage:
type: object
description: The estimated usage of filament
properties:
length:
type: number
description: 'The length of filament used, in mm'
volume:
type: number
description: 'The volume of filament used, in cm³'
dimensions:
type: object
description: Information regarding the size of the printed model
properties:
depth:
type: number
description: 'The depth of the printed model, in mm'
height:
type: number
description: 'The height of the printed model, in mm'
width:
type: number
description: 'The width of the printed model, in mm'
printingArea:
type: object
properties:
maxX:
type: number
description: 'The maximum X coordinate of the printed model, in mm'
maxY:
type: number
description: 'The maximum Y coordinate of the printed model, in mm'
maxZ:
type: number
description: 'The maximum Z coordinate of the printed model, in mm'
minX:
type: number
description: 'The minimum X coordinate of the printed model, in mm'
minY:
type: number
description: 'The minimum Y coordinate of the printed model, in mm'
minZ:
type: number
description: 'The minimum Z coordinate of the printed model, in mm'
GCodeAnalysis:
type: object
properties:
estimatedPrintTime:
type: number
description: 'The estimated print time of the file, in seconds'
filament:
$ref: '#/components/schemas/FilamentUsage'
File:
type: object
required:
- origin
properties:
origin:
type: string
description: >-
The size of the file in bytes. Only available for local files or
sdcard files if the printer supports file sizes for sd card files.
enum:
- local
- sdcard
hash:
type: string
size:
type: number
date:
type: number
format: date-time
refs:
$ref: '#/components/schemas/Reference'
gcodeAnalysis:
$ref: '#/components/schemas/GCodeAnalysis'
RetrieveResponse:
type: object
properties:
files:
type: array
items:
$ref: '#/components/schemas/File'
free:
description: Remaining free space
type: string
example: 25.4G
UploadResponse:
type: object
properties:
files:
type: object
description: >-
Abridged information regarding the file that was just uploaded. If
only uploaded to local this will only contain the local property. If
uploaded to SD card, this will contain both local and sdcard
properties. Only contained if a file was uploaded, not present if
only a new folder was created.
properties:
local:
description: >-
The information regarding the file that was just uploaded to the
local storage.
$ref: '#/components/schemas/File'
sdcard:
description: >-
The information regarding the file that was just uploaded to the
printers SD card.
$ref: '#/components/schemas/File'
folder:
description: >-
Abridged information regarding the folder that was just created.
Only contained if a folder was created, not present if a file was
uploaded.
$ref: '#/components/schemas/File'
done:
type: boolean
description: >-
Whether any file processing after upload has already finished (true)
or not, e.g. due to first needing to perform a slicing step (false).
Clients may use this information to direct progress displays related
to the upload.
Filament:
type: object
description: Information regarding the estimated filament usage of the print job
properties:
length:
description: 'Length of filament used, in mm'
type: number
volume:
description: 'Volume of filament used, in cm³'
type: number
JobInfo:
type: object
properties:
file:
description: The file that is the target of the current print job
$ref: '#/components/schemas/File'
estimatedPrintTime:
description: 'The estimated print time for the file, in seconds.'
type: number
lastPrintTime:
description: 'The print time of the last print of the file, in seconds.'
type: number
filament:
$ref: '#/components/schemas/Filament'
ProgressInfo:
type: object
properties:
completion:
type: number
description: Percentage of completion of the current print job
filepos:
type: number
description: >-
Current position in the file being printed, in bytes from the
beginning
printTime:
type: number
description: 'Time already spent printing, in seconds'
printTimeLeft:
type: number
description: 'Estimate of time left to print, in seconds'
printTimeLeftOrigin:
type: string
enum:
- linear
- analysis
- estimate
- average
- mixed-analysis
- mixed-average
description: >-
Origin of the current time left estimate. - linear: based on an
linear approximation of the progress in file in bytes vs time -
analysis: based on an analysis of the file - estimate: calculated
estimate after stabilization of linear estimation - average: based
on the average total from past prints of the same model against the
same printer profile - mixed-analysis: mixture of estimate and
analysis - mixed-average: mixture of estimate and average
TemperatureProbe:
type: object
description: Current Tool temperature
required:
- actual
properties:
actual:
type: number
target:
type: number
offset:
type: number
ArbitraryPrinterCmd:
type: object
description: Arbitrary Command Request
properties:
command:
type: string
description: >-
Single command to send to the printer, mutually exclusive with
commands and script.
commands:
type: array
items:
type: string
description: >-
Multiple commands to send to the printer (in the given order),
mutually exclusive with command and script.
script:
type: string
description: >-
Name of the GCODE script template to send to the printer, mutually
exclusive with command and commands.
parameters:
type: object
additionalProperties: true
description: >-
Key value pairs of parameters to replace in sent commands/provide to
the script renderer
context:
type: object
additionalProperties: true
description: >-
(only if script is set) additional template variables to provide to
the script render
ClientCmd:
type: object
description: System command
properties:
name:
type: string
description: The name of the command to display in the System menu.
action:
type: string
description: >-
An identifier to refer to the command programmatically. The special
action string divider signifies a divider in the menu.
confirm:
type: string
description: >-
If present and set, this text will be displayed to the user in a
confirmation dialog they have to acknowledge in order to really
execute the command.
source:
type: string
description: >-
Source of the command definition, currently either core (for system
actions defined by OctoPrint itself) or custom (for custom system
commands defined by the user through config.yaml).
resource:
type: string
format: url
description: The URL of the command to use for executing it.
Config:
type: object
description: OctoPrint config (Work in Progress)
additionalProperties: true
Templates:
type: object
required:
- id
- name
properties:
id:
type: string
name:
type: string
additionalProperties: true
GroupList:
type: object
properties:
groups:
type: array
items:
$ref: '#/components/schemas/GroupRecord'
UserRecord:
type: object
description: User record
properties:
name:
type: string
description: The users name
active:
type: boolean
description: Whether the users account is active (true) or not (false)
user:
type: boolean
description: >-
Whether the user has user rights. Should always be true. Deprecated
as of 1.4.0, use the users group instead.
admin:
type: boolean
description: >-
Whether the user has admin rights (true) or not (false). Deprecated
as of 1.4.0, use the admins group instead.
apiKey:
type: string
description: The users personal API key
settings:
type: object
description: 'The users personal settings, might be an empty object.'
groups:
type: array
description: Groups assigned to the user
items:
$ref: '#/components/schemas/GroupRecord'
permissions:
type: array
description: >-
The list of permissions assigned to the user (note: this does not
include implicit permissions inherit from groups).
items:
$ref: '#/components/schemas/PermissionRecord'
needs:
description: Effective needs of the user
$ref: '#/components/schemas/Needs'
UserList:
type: object
properties:
groups:
type: array
items:
$ref: '#/components/schemas/UserRecord'
UserRegister:
type: object
description: User registration request payload
properties:
name:
type: string
description: The users name
password:
type: string
description: User's password
active:
type: boolean
description: Whether the users account is active (true) or not (false)
groups:
type: array
description: Groups assigned to the user
items:
$ref: '#/components/schemas/GroupRecord'
permissions:
type: array
description: >-
The list of permissions assigned to the user (note: this does not
include implicit permissions inherit from groups).
items:
$ref: '#/components/schemas/PermissionRecord'
UserUpdate:
type: object
description: User update request body
properties:
active:
type: boolean
description: Whether the users account is active (true) or not (false)
groups:
type: array
description: Groups assigned to the user
items:
$ref: '#/components/schemas/GroupRecord'
permissions:
type: array
description: >-
The list of permissions assigned to the user (note: this does not
include implicit permissions inherit from groups).
items:
$ref: '#/components/schemas/PermissionRecord'
LanguagePackMeta:
type: object
description: Language pack metadata
required:
- locale
- locale_display
- locale_english
properties:
locale:
description: Locale of the language pack
type: string
example: de
locale_display:
description: Displayable name of the locale
type: string
example: Deutsch
locale_english:
description: English representation of the locale
type: string
example: German
last_update:
description: Timestamp of the last update of the language pack
type: integer
example: 1474574597
author:
type: string
description: Author of the language pack
example: Gina Häußge
ComponentList:
type: object
description: Component List
properties:
identifier:
type: string
description: >-
The plugins identifier, `_core` for core OctoPrint, the plugins
identifier for plugins
example: _core
display:
description: >-
Displayable name of the component, Core for core OctoPrint, the
plugins name for plugins
type: string
example: Core
languages:
description: Language packs for the component
type: array
items:
$ref: '#/components/schemas/LanguagePackMeta'
LanguageList:
type: object
additionalProperties:
$ref: '#/components/schemas/ComponentList'
parameters:
fileLocation:
in: path
name: location
description: >-
Retrieve information regarding the files currently available on the
selected location and if targeting the local location regarding the
disk space still available locally in the system.
schema:
type: string
enum:
- local
- sdcard
fileRecursive:
in: query
name: recursive
description: >-
If set to true, return all files and folders recursively. Otherwise only
return items on same level.
required: false
schema:
type: boolean
filePath:
in: path
name: path
description: The filename of the file for which to retrieve the information
schema:
type: string
format: uri
history:
in: query
name: history
schema:
type: string
enum:
- 'yes'
- 'y'
- '1'
description: >-
If set to true (or: yes, y, 1), history information will be included in
the response too. If no limit parameter is given, all available
temperature history data will be returned.
limit:
in: query
name: limit
schema:
type: integer
description: >-
If set to an integer (n), only the last n data points from the history
will be returned. Will be ignored if history is not enabled.
profileIdentifier:
in: path
name: identifier
description: identifier of a given printer profile
systemCmdSource:
in: path
name: source
description: 'The source for which to list commands, currently either core or custom'
username:
in: path
name: username
description: Name of the user which to retrieve
schema:
type: string
requestBodies:
File:
content:
multipart/form-data:
schema:
type: object
properties:
file:
description: 'The file to upload, including a valid'
type: string
format: binary
path:
description: >-
The path within the location to upload the file to or create
the folder in (without the future filename or foldername -
basically the parent folder). If unset will be taken from the
provided files name or foldername and default to the root
folder of the location.
type: string
format: uri
select:
type: boolean
description: >-
Whether to select the file directly after upload (true) or not
(false). Optional, defaults to false. Ignored when creating a
folder.
print:
type: boolean
description: >-
Whether to start printing the file directly after upload
(true) or not (false). If set, select is implicitly true as
well. Optional, defaults to false. Ignored when creating a
folder.
userdata:
type: string
description: >-
An optional string that if specified will be interpreted as
JSON and then saved along with the file as metadata (metadata
key userdata). Ignored when creating a folder.
foldername:
type: string
description: >-
The name of the folder to create. Ignored when uploading a
file.
JobCommand:
content:
application/json:
schema:
discriminator:
propertyName: command
oneOf:
- type: object
description: Starts the print of the currently selected file.
properties:
command:
type: string
enum:
- start
- type: object
description: >-
Cancels the current print job. If no print job is active
(either paused or printing), a 409 Conflict will be returned.
properties:
command:
type: string
enum:
- cancel
- type: object
description: >-
Restart the print of the currently selected file from the
beginning. There must be an active print job for this to work
and the print job must currently be paused. If either is not
the case, a 409 Conflict will be returned.
properties:
command:
type: string
enum:
- restart
- type: object
description: >-
Pauses/resumes/toggles the current print job. Accepts one
optional additional parameter action specifying which action
to take.
properties:
command:
type: string
enum:
- restart
action:
type: string
enum:
- pause
- resume
- toggle
PrinterToolCommand:
content:
application/json:
schema:
discriminator:
propertyName: command
oneOf:
- type: object
description: Sets the given target temperature on the printers tools.
properties:
command:
type: string
enum:
- target
targets:
type: object
description: >-
Target temperature(s) to set, properties must match the
format tool{n} with n being the tools index starting with
0. A value of 0 will turn the heater off.
- type: object
description: Sets the given temperature offset on the printers tools.
properties:
command:
type: string
enum:
- offset
offsets:
type: object
description: >-
Offset(s) to set, properties must match the format tool{n}
with n being the tools index starting with 0.
- type: object
description: Selects the printers current tool.
properties:
command:
type: string
enum:
- select
tool:
description: >-
Tool to select, format tool{n} with n being the tools
index starting with 0.
type: string
- type: object
description: >-
Extrudes the given amount of filament from the currently
selected tool.
required:
- command
- amount
properties:
command:
type: string
enum:
- extrude
amount:
description: >-
The amount of filament to extrude in mm. May be negative
to retract.
type: number
speed:
description: >-
Optional. Speed at which to extrude. If not provided,
maximum speed for E axis from printer profile will be
used. Otherwise interpreted as an integer signifying the
speed in mm/min, to append to the command.
type: number
- type: object
description: >-
Changes the flow rate factor to apply to extrusion of the
tool.
properties:
command:
type: string
enum:
- flowrate
factor:
description: >-
The new factor, percentage between 75 and 125% as integer
(75 to 125) or float (0.75 to 1.25).
oneOf:
- type: integer
minimum: 75
maximum: 125
- type: number
minimum: 0.75
maximum: 1.25
PrinterBedCommand:
content:
application/json:
schema:
discriminator:
propertyName: command
oneOf:
- type: object
description: Sets the given target temperature on the printers bed.
properties:
command:
type: string
enum:
- target
target:
type: number
description: >-
Target temperature to set. A value of 0 will turn the
heater off.
- type: object
description: Sets the given temperature offset on the printers bed.
properties:
command:
type: string
enum:
- offset
offset:
type: number
description: Offset to set.
PrinterChamberCommand:
content:
application/json:
schema:
discriminator:
propertyName: command
oneOf:
- type: object
description: Sets the given target temperature on the printers chamber.
properties:
command:
type: string
enum:
- target
target:
type: number
description: >-
Target temperature to set. A value of 0 will turn the
heater off.
- type: object
description: Sets the given temperature offset on the printers chamber.
properties:
command:
type: string
enum:
- offset
offset:
type: number
description: Offset to set.
PrinterSdCommand:
content:
application/json:
schema:
type: object
description: Printer SD card command
properties:
command:
type: string
description: >-
- `init`: Initializes the printers SD card, making it
available for use. This also includes an initial retrieval of
the list of files currently stored on the SD card, so after
issuing that command a retrieval of the files on SD card will
return a successful result. - `refresh`: Refreshes the list of
files stored on the printers SD card. Will return a 409
Conflict if the card has not been initialized yet (see the
init command and SD state). - `release`: Releases the SD card
from the printer. The reverse operation to init. After issuing
this command, the SD card wont be available anymore, hence
and operations targeting files stored on it will fail. Will
return a 409 Conflict if the card has not been initialized yet
(see the init command and SD state).
enum:
- init
- refresh
- release
PrinterProfileChange:
content:
application/json:
schema:
type: object
required:
- profile
properties:
basedOn:
type: string
profile:
$ref: '#/components/schemas/Profile'
required: false
GroupRegistrationReq:
content:
application/json:
schema:
$ref: '#/components/schemas/GroupRegister'