Last active
October 12, 2020 20:38
-
-
Save SimonIT/ea672554e9d642b517202125b10d3b37 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
openapi: 3.0.0 | |
info: | |
version: 1.0.0-oas3 | |
title: Ultimaker API | |
description: >- | |
REST API for the Ultimaker 3D printer. | |
Authentication: Any PUT/POST/DELETE api requires authentication before it | |
can be used. Authentication is done with http digest (RFC 2617) without | |
fallback to basic authentication. | |
To get a valid username/password combination, the following process | |
can/should be followed. | |
1) POST /auth/request with 'application' and 'user' as parameters. The | |
application name and user name will be shown to the user on the printer. The | |
reply body will contain a json reply with an 'id' and 'key' part. | |
2) Repeatedly GET /auth/check/<id> until it reports 'authorized' or | |
'unauthorized'. This will be reported back once the end user selects if the | |
application is allowed to use the API. | |
3) [optional] test the authentication, the earlier given 'id' is the | |
username, the 'key' is the password. Use digest authentication on GET | |
/auth/verify to test this. | |
tags: | |
- name: Authentication | |
description: Request and check authorization keys | |
- name: Materials | |
description: All materials known by the printer | |
- name: Printer | |
description: Printer state | |
- name: Network | |
description: Network state | |
- name: PrintJob | |
description: Currently running print | |
- name: System | |
description: Device information | |
- name: History | |
description: History of this printer | |
- name: Camera | |
description: Camera image and video | |
paths: | |
/auth/request: | |
post: | |
tags: | |
- Authentication | |
description: >- | |
Request authentication from the printer. This generates new id/key | |
combination that has to be used as username/password in the digest | |
authentication on certain APIs. | |
responses: | |
'200': | |
description: Register as a new application that wants access to the API. | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
id: | |
type: string | |
description: >- | |
New ID that is unique as authentication token. This is the | |
username part in the http digest authentication. | |
key: | |
type: string | |
description: >- | |
New key that is unique as authentication token. This is | |
the password part in the http digest authentication. | |
requestBody: | |
content: | |
application/x-www-form-urlencoded: | |
schema: | |
type: object | |
properties: | |
application: | |
description: >- | |
Name of the application that wants access. Displayed to the | |
user. | |
type: string | |
user: | |
description: >- | |
Name of the user who wants access. Displayed to the user | |
when confirming access. | |
type: string | |
host_name: | |
description: >- | |
Optionally the hostname of the service that is | |
authenticating can be provided for future use. | |
type: string | |
exclusion_key: | |
description: >- | |
Optionally This key can make sure only one authorisation | |
will exist on the remote printer with this same key, This | |
allows a new user to de-authenticate the old one preventing | |
multiple printer controlling applications to use the printer | |
at the same time. Naturally multiple authorisations can | |
exist if this is omitted | |
type: string | |
required: | |
- application | |
- user | |
'/auth/check/{id}': | |
get: | |
tags: | |
- Authentication | |
description: >- | |
Check if the given ID is authorized for printer access. Will return | |
'authorized' when the end user has selected that this application is | |
allowed to use the printer. Will return 'unauthorized' when the user has | |
selected that the application is not allowed to access the printer. Will | |
return 'unknown' when the end user has not selected any option yet. | |
parameters: | |
- name: id | |
in: path | |
description: id returned from the /auth/request call | |
required: true | |
schema: | |
type: string | |
responses: | |
'200': | |
description: result of the authorization check. | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
message: | |
type: string | |
enum: | |
- authorized | |
- unauthorized | |
- unknown | |
/auth/verify: | |
get: | |
tags: | |
- Authentication | |
description: >- | |
This API call always does authentication checking for digest | |
authentication. Invalid digest id/key combinations will generate a 401 | |
result. | |
responses: | |
'200': | |
description: 'Verify check successful, digest authentication is valid.' | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
message: | |
type: string | |
enum: | |
- ok | |
'401': | |
description: >- | |
Not authorized. Check or request your id/key combination, and/or | |
http digest implementation. | |
/camera: | |
get: | |
tags: | |
- Camera | |
description: Returns camera object | |
responses: | |
'200': | |
description: Camera object | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Camera' | |
/camera/feed: | |
get: | |
tags: | |
- Camera | |
description: 'Get a link to the camera feed, this returns an url to a camera stream' | |
responses: | |
'200': | |
description: Camera feed | |
content: | |
application/json: | |
schema: | |
type: string | |
'/camera/{index}/stream': | |
get: | |
tags: | |
- Camera | |
description: Get a redirection to the camera live feed. | |
parameters: | |
- name: index | |
in: path | |
description: index of the camera to get the feed from. | |
required: true | |
schema: | |
type: number | |
responses: | |
'302': | |
description: Redirection to the camera feed. | |
'404': | |
description: Camera with this index is not available in the system. | |
'/camera/{index}/snapshot': | |
get: | |
tags: | |
- Camera | |
description: Get a redirection to the camera snapshot. | |
parameters: | |
- name: index | |
in: path | |
description: index of the camera to get the snapshot from. | |
required: true | |
schema: | |
type: number | |
responses: | |
'302': | |
description: Redirection to the camera snapshot. | |
'404': | |
description: Camera with this index is not available in the system. | |
/materials: | |
get: | |
tags: | |
- Materials | |
responses: | |
'200': | |
description: 'All known material XML files, one string for each material.' | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
type: string | |
post: | |
tags: | |
- Materials | |
responses: | |
'204': | |
description: Material profile added. | |
requestBody: | |
content: | |
application/x-www-form-urlencoded: | |
schema: | |
type: object | |
properties: | |
file: | |
description: Material file (.xml) | |
type: string | |
format: binary | |
filename: | |
description: Name of the file | |
type: string | |
signature_file: | |
description: Signature file (.sig) | |
type: string | |
format: binary | |
required: | |
- file | |
- filename | |
'/materials/{material_guid}': | |
get: | |
tags: | |
- Materials | |
parameters: | |
- name: material_guid | |
in: path | |
description: GUID of material to fetch | |
required: true | |
schema: | |
type: string | |
responses: | |
'200': | |
description: xml of material | |
content: | |
application/json: | |
schema: | |
type: string | |
put: | |
tags: | |
- Materials | |
parameters: | |
- name: material_guid | |
in: path | |
description: GUID of material to update | |
required: true | |
schema: | |
type: string | |
responses: | |
'204': | |
description: Material updated | |
delete: | |
tags: | |
- Materials | |
parameters: | |
- name: material_guid | |
in: path | |
description: GUID of material to delete | |
required: true | |
schema: | |
type: string | |
responses: | |
'204': | |
description: Material deleted | |
/printer: | |
get: | |
tags: | |
- Printer | |
description: Returns printer object | |
responses: | |
'200': | |
description: Printer object | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Printer' | |
/printer/diagnostics/cap_sensor_noise: | |
get: | |
tags: | |
- Printer | |
description: >- | |
Calculates noise variances on the cap sensor by executing 100 loop | |
iterations, each iteration measuring 50 samples | |
responses: | |
'200': | |
description: >- | |
A list of dictionaries containing the min, max, avg and stddev^2 | |
values | |
'400': | |
description: >- | |
When a timeout occurs (taking too long to get the data) or when the | |
printer is already busy | |
'/printer/diagnostics/cap_sensor_noise/{loop_count}': | |
get: | |
tags: | |
- Printer | |
description: >- | |
Calculates noise variances on the cap sensor by executing the specified | |
loop_count iterations, each iteration measuring 50 samples | |
parameters: | |
- name: loop_count | |
in: path | |
description: The number of times to get sample data | |
required: true | |
schema: | |
type: integer | |
format: int32 | |
responses: | |
'200': | |
description: >- | |
A list of dictionaries containing the min, max, avg and stddev^2 | |
values | |
'400': | |
description: >- | |
When a timeout occurs (taking too long to get the data) or when the | |
printer is already busy | |
'/printer/diagnostics/cap_sensor_noise/{loop_count}/{sample_count}': | |
get: | |
tags: | |
- Printer | |
description: >- | |
Calculates noise variances on the cap sensor by executing the specified | |
loop_count iterations, each iteration measuring sample_count samples | |
parameters: | |
- name: loop_count | |
in: path | |
description: The number of times to get sample data | |
required: true | |
schema: | |
type: integer | |
format: int32 | |
- name: sample_count | |
in: path | |
description: The number of samples to get in each iteration | |
required: true | |
schema: | |
type: integer | |
format: int32 | |
responses: | |
'200': | |
description: >- | |
A list of dictionaries containing the min, max, avg and stddev^2 | |
values | |
'400': | |
description: >- | |
When a timeout occurs (taking too long to get the data) or when the | |
printer is already busy | |
'/printer/diagnostics/temperature_flow/{sample_count}': | |
get: | |
tags: | |
- Printer | |
description: Gets historical temperature & flow data | |
parameters: | |
- name: sample_count | |
in: path | |
description: The number of samples to get | |
required: true | |
schema: | |
type: integer | |
format: int32 | |
- name: csv | |
in: query | |
description: >- | |
If not zero, return the results as comma separated values instead of | |
a normal json response. | |
required: false | |
schema: | |
type: integer | |
format: int32 | |
responses: | |
'200': | |
description: >- | |
A 2 dimensional array of sample data. First row of the array | |
contains names of each column. All the other rows contain the actual | |
sample data. | |
/printer/diagnostics/probing_report: | |
get: | |
tags: | |
- Printer | |
responses: | |
'200': | |
description: Gets a file with the most recent build plate probing report. | |
content: | |
application/json: | |
schema: | |
type: string | |
format: binary | |
'204': | |
description: When no probing report is found. | |
/printer/status: | |
get: | |
tags: | |
- Printer | |
description: Get the status of the printer | |
responses: | |
'200': | |
description: >- | |
Global status of the printer, most interesting ones are 'idle' which | |
means the printer can accept a print job. And 'printing' which means | |
the printer is actively working on a print job. | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Printer_status' | |
/printer/led: | |
get: | |
tags: | |
- Printer | |
description: 'Returns the hue, saturation, and value (HSV) of the case lighting' | |
responses: | |
'200': | |
description: HSV the case lighting | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/led' | |
put: | |
tags: | |
- Printer | |
description: 'Sets the hue, saturation, and value (HSV) of the case lighting' | |
responses: | |
'204': | |
description: lighting set | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/led' | |
description: Target HSV of case lighting | |
required: true | |
/printer/led/hue: | |
get: | |
tags: | |
- Printer | |
description: Returns the hue of the case lighting | |
responses: | |
'200': | |
description: Current hue of the case lighting | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/led_hue' | |
put: | |
tags: | |
- Printer | |
responses: | |
'204': | |
description: lighting set | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/led_hue' | |
description: Target hue of case lighting | |
required: true | |
/printer/led/saturation: | |
get: | |
tags: | |
- Printer | |
description: Returns the saturation of the case lighting | |
responses: | |
'200': | |
description: Current saturation of the case lighting | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/led_saturation' | |
put: | |
tags: | |
- Printer | |
responses: | |
'204': | |
description: lighting set | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/led_saturation' | |
description: Target saturation of case lighting | |
required: true | |
/printer/led/brightness: | |
get: | |
tags: | |
- Printer | |
description: Returns the brightness of the case lighting | |
responses: | |
'200': | |
description: Current brightness of the case lighting | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/led_brightness' | |
put: | |
tags: | |
- Printer | |
responses: | |
'204': | |
description: lighting set | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/led_brightness' | |
description: Target brightness of case lighting | |
required: true | |
/printer/led/blink: | |
post: | |
tags: | |
- Printer | |
responses: | |
'204': | |
description: blink set | |
'400': | |
description: This is returned when frequency <= 0 or count <= 0 with a message | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Blink' | |
/printer/heads: | |
get: | |
tags: | |
- Printer | |
description: Returns all heads of the printer | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/Head' | |
'/printer/heads/{head_id}': | |
get: | |
tags: | |
- Printer | |
description: Returns head by ID | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head to fetch | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Head' | |
'404': | |
description: >- | |
Head was not found. Note that this means that all deeper (eg: | |
getting position, extruders, etc.) calls will also return a 404 | |
'/printer/heads/{head_id}/position': | |
get: | |
tags: | |
- Printer | |
description: Returns position of head by ID | |
parameters: | |
- name: head_id | |
in: path | |
description: >- | |
ID of head of which to get position. Note that this position also | |
has a Z component. This api assumes that the head is the only part | |
that moves. | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/XYZ' | |
put: | |
tags: | |
- Printer | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'204': | |
description: Position set | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/XYZ' | |
description: Target position | |
required: true | |
'/printer/heads/{head_id}/max_speed': | |
get: | |
tags: | |
- Printer | |
description: Returns max speed of head by ID | |
parameters: | |
- name: head_id | |
in: path | |
description: >- | |
ID of head of which to get the max speed of. Note that this speed | |
also has a Z component. This api assumes that the head is the only | |
part that moves. | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/XYZ' | |
put: | |
tags: | |
- Printer | |
parameters: | |
- name: head_id | |
in: path | |
description: '' | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'204': | |
description: Max speed set | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/XYZ' | |
description: Target maximum speed for each axis. | |
required: true | |
'/printer/heads/{head_id}/acceleration': | |
get: | |
tags: | |
- Printer | |
description: Returns the default acceleration of head by ID. | |
parameters: | |
- name: head_id | |
in: path | |
description: >- | |
ID of head of which to get the default acceleration of. Note that | |
this speed also has a Z component. This API assumes that the head is | |
the only part that moves. | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: number | |
put: | |
tags: | |
- Printer | |
parameters: | |
- name: head_id | |
in: path | |
description: '' | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'204': | |
description: acceleration speed set | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: number | |
description: Target default acceleration. | |
required: true | |
'/printer/heads/{head_id}/jerk': | |
get: | |
tags: | |
- Printer | |
description: Returns jerk of head by ID | |
parameters: | |
- name: head_id | |
in: path | |
description: >- | |
ID of head of which to get the jerk of. Note that this speed also | |
has a Z component. This API assumes that the head is the only part | |
that moves. | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/XYZ' | |
put: | |
tags: | |
- Printer | |
parameters: | |
- name: head_id | |
in: path | |
description: '' | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'204': | |
description: Jerk set | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/XYZ' | |
description: Target jerk | |
required: true | |
/printer/bed: | |
get: | |
tags: | |
- Printer | |
description: Returns bed object | |
responses: | |
'200': | |
description: bed object | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Bed' | |
/printer/bed/temperature: | |
get: | |
tags: | |
- Printer | |
description: Returns temperature of bed | |
responses: | |
'200': | |
description: Temperature of the bed | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/CurrentTargetNumberPair' | |
put: | |
tags: | |
- Printer | |
responses: | |
'204': | |
description: Temperature set | |
requestBody: | |
content: | |
application/x-www-form-urlencoded: | |
schema: | |
type: object | |
properties: | |
temperature: | |
description: Target temperature of bed | |
type: number | |
required: | |
- temperature | |
/printer/bed/pre_heat: | |
get: | |
tags: | |
- Printer | |
description: Returns status of pre-heating the heated bed. | |
responses: | |
'200': | |
description: Status of pre-heating the heated bed. | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
active: | |
type: boolean | |
remaining: | |
type: number | |
description: >- | |
Remaining pre-heat time in seconds. Only available when | |
'active' is True | |
put: | |
tags: | |
- Printer | |
responses: | |
'204': | |
description: Preheating Temperature set | |
'400': | |
description: Bad request (invalid parameters) | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Bed_PreHeat' | |
required: true | |
/printer/bed/type: | |
get: | |
tags: | |
- Printer | |
description: Returns the type of the bed. | |
responses: | |
'200': | |
description: 'The type of the bed, for now glass.' | |
content: | |
application/json: | |
schema: | |
type: string | |
'/printer/heads/{head_id}/extruders': | |
get: | |
tags: | |
- Printer | |
description: Returns all extruders of a head | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the extruders are fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/Extruder' | |
'/printer/heads/{head_id}/extruders/{extruder_id}': | |
get: | |
tags: | |
- Printer | |
description: Returns extruder by ID | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the extruder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder to fetch. | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Extruder' | |
'/printer/heads/{head_id}/extruders/{extruder_id}/hotend/offset': | |
get: | |
tags: | |
- Printer | |
description: Returns offset of hotend with respect to head | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the extruder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder to fetch | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/HotendOffset' | |
'/printer/heads/{head_id}/extruders/{extruder_id}/feeder': | |
get: | |
tags: | |
- Printer | |
description: Returns feeder of selected extruder | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the extruder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the feeder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Feeder' | |
'/printer/heads/{head_id}/extruders/{extruder_id}/feeder/jerk': | |
get: | |
tags: | |
- Printer | |
description: Returns jerk of feeder | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the extruder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the feeder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: number | |
put: | |
tags: | |
- Printer | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the extruder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the feeder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'204': | |
description: Jerk set | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: number | |
description: Target jerk | |
required: true | |
'/printer/heads/{head_id}/extruders/{extruder_id}/feeder/max_speed': | |
get: | |
tags: | |
- Printer | |
description: Returns max_speed of feeder. | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the extruder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the feeder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: number | |
put: | |
tags: | |
- Printer | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the extruder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the feeder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'204': | |
description: Max speed set | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: number | |
description: Target max speed | |
required: true | |
'/printer/heads/{head_id}/extruders/{extruder_id}/feeder/acceleration': | |
get: | |
tags: | |
- Printer | |
description: Returns acceleration of feeder. | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the extruder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the feeder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: number | |
put: | |
tags: | |
- Printer | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the extruder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the feeder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'204': | |
description: Acceleration set | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: number | |
description: Target acceleration speed | |
required: true | |
'/printer/heads/{head_id}/extruders/{extruder_id}/active_material': | |
get: | |
tags: | |
- Printer | |
description: Get the active material of the extruder | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the extruder is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Material' | |
'/printer/heads/{head_id}/extruders/{extruder_id}/active_material/length_remaining': | |
get: | |
tags: | |
- Printer | |
description: length of material remaining on spool in mm. Or -1 if no value is known. | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: >- | |
length of material remaining on spool in mm. Or -1 if no value is | |
known. | |
content: | |
application/json: | |
schema: | |
type: number | |
'/printer/heads/{head_id}/extruders/{extruder_id}/hotend': | |
get: | |
tags: | |
- Printer | |
description: Returns hotend of extruder | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Hotend' | |
'/printer/heads/{head_id}/extruders/{extruder_id}/hotend/temperature': | |
get: | |
tags: | |
- Printer | |
description: Returns temperature of extruder | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: Temperature of the hotend | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/CurrentTargetNumberPair' | |
put: | |
tags: | |
- Printer | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'204': | |
description: Temperature set | |
requestBody: | |
content: | |
application/x-www-form-urlencoded: | |
schema: | |
type: object | |
properties: | |
temperature: | |
description: Target temperature of nozzle | |
type: number | |
required: | |
- temperature | |
'/printer/heads/{head_id}/extruders/{extruder_id}/active_material/guid': | |
get: | |
tags: | |
- Printer | |
description: Returns the GUID of the active material | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: The GUID of the current active material. | |
content: | |
application/json: | |
schema: | |
type: string | |
'/printer/heads/{head_id}/extruders/{extruder_id}/active_material/GUID': | |
get: | |
tags: | |
- Printer | |
deprecated: true | |
description: Returns the GUID of the active material | |
parameters: | |
- name: head_id | |
in: path | |
description: ID of head from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
- name: extruder_id | |
in: path | |
description: ID of extruder from which the hotend is fetched | |
required: true | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: The GUID of the current active material. | |
content: | |
application/json: | |
schema: | |
type: string | |
/printer/network: | |
get: | |
tags: | |
- Network | |
description: Returns network state | |
responses: | |
'200': | |
description: Network object | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Network' | |
/printer/network/wifi_networks: | |
get: | |
tags: | |
- Network | |
description: Returns a list of available wifi networks | |
responses: | |
'200': | |
description: List of network ssid' | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/Wifi_network' | |
'/printer/network/wifi_networks/{ssid}': | |
put: | |
tags: | |
- Network | |
description: Connect to a wifi network | |
parameters: | |
- name: ssid | |
in: path | |
description: ssid of the network to connect with. | |
required: true | |
schema: | |
type: string | |
responses: | |
'204': | |
description: '' | |
requestBody: | |
content: | |
application/x-www-form-urlencoded: | |
schema: | |
type: object | |
properties: | |
passphrase: | |
description: Phassphrase of network to connect with | |
type: string | |
required: | |
- passphrase | |
delete: | |
tags: | |
- Network | |
description: Forget a wifi network | |
parameters: | |
- name: ssid | |
in: path | |
description: ssid of the network to forget. | |
required: true | |
schema: | |
type: string | |
responses: | |
'204': | |
description: '' | |
/printer/validate_header: | |
post: | |
tags: | |
- Printer | |
responses: | |
'200': | |
description: All header validation mishaps | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/HeaderValidationEntry' | |
'400': | |
description: No validation checked because file is missing. | |
requestBody: | |
content: | |
application/x-www-form-urlencoded: | |
schema: | |
type: object | |
properties: | |
file: | |
description: 'File that needs to be printed (.gcode, .gcode.gz)' | |
type: string | |
format: binary | |
required: | |
- file | |
/printer/beep: | |
post: | |
tags: | |
- Printer | |
description: Makes the printer beep | |
responses: | |
'204': | |
description: Printer beeped | |
'400': | |
description: Unable to beep due to missing parameters | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
frequency: | |
description: The frequency of the tone in hz. | |
type: number | |
duration: | |
description: The duration in milliseconds. | |
type: number | |
required: true | |
/print_job: | |
get: | |
tags: | |
- PrintJob | |
responses: | |
'200': | |
description: Print job object | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/PrintJob' | |
'404': | |
description: No printer job running | |
post: | |
tags: | |
- PrintJob | |
responses: | |
'201': | |
description: Print job accepted | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
message: | |
type: string | |
uuid: | |
$ref: '#/components/schemas/uuid' | |
requestBody: | |
content: | |
application/x-www-form-urlencoded: | |
schema: | |
type: object | |
properties: | |
jobname: | |
description: Name of the print job. | |
type: string | |
file: | |
description: 'File that needs to be printed (.gcode, .gcode.gz, .ufp)' | |
type: string | |
format: binary | |
required: | |
- jobname | |
- file | |
/print_job/name: | |
get: | |
tags: | |
- PrintJob | |
description: Name of print job | |
responses: | |
'200': | |
description: Name of print job | |
content: | |
application/json: | |
schema: | |
type: string | |
'404': | |
description: No printer job running | |
/print_job/datetime_started: | |
get: | |
tags: | |
- PrintJob | |
description: The moment the current print job was started | |
responses: | |
'200': | |
description: A timestamp in ISO 8601 format or an empty string if not available | |
content: | |
application/json: | |
schema: | |
type: string | |
format: date-time | |
'404': | |
description: No printer job running | |
/print_job/datetime_finished: | |
get: | |
tags: | |
- PrintJob | |
description: The moment the last print job finished. | |
responses: | |
'200': | |
description: A timestamp in ISO 8601 format or an empty string if not available | |
content: | |
application/json: | |
schema: | |
type: string | |
format: date-time | |
'404': | |
description: No printer job running | |
/print_job/datetime_cleaned: | |
get: | |
tags: | |
- PrintJob | |
description: The moment the last print job was cleaned from the build plate | |
responses: | |
'200': | |
description: A timestamp in ISO 8601 format or an empty string if not available | |
content: | |
application/json: | |
schema: | |
type: string | |
format: date-time | |
'404': | |
description: No printer job running | |
/print_job/source: | |
get: | |
tags: | |
- PrintJob | |
description: >- | |
From what source was the print job started. USB means it's started | |
manually from the USB drive. WEB_API means it's being received by the | |
WEB API. CALIBRATION_MENU means it's printing the XY offset print | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: string | |
enum: | |
- USB | |
- WEP_API | |
- CALIBRATION_MENU | |
'404': | |
description: No printer job running | |
/print_job/source_user: | |
get: | |
tags: | |
- PrintJob | |
description: >- | |
If the origin equals to WEB_API, then this will return the user who | |
initiated the job | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: string | |
'404': | |
description: No printer job running | |
/print_job/source_application: | |
get: | |
tags: | |
- PrintJob | |
description: >- | |
If the origin equals to WEB_API, then this will return the application | |
that sent the job | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: string | |
'404': | |
description: No printer job running | |
/print_job/uuid: | |
get: | |
tags: | |
- PrintJob | |
responses: | |
'200': | |
description: Unique identifier of this print job. In a UUID4 format. | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/uuid' | |
'404': | |
description: No printer job running | |
/print_job/reprint_original_uuid: | |
get: | |
tags: | |
- PrintJob | |
responses: | |
'200': | |
description: Unique identifier of this print job. In a UUID4 format. | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/uuid' | |
'404': | |
description: No printer job running | |
/print_job/time_elapsed: | |
get: | |
tags: | |
- PrintJob | |
description: >- | |
Get the time elapsed (in seconds) since starting this print, including | |
pauses etc. | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: integer | |
'404': | |
description: No printer job running | |
/print_job/time_total: | |
get: | |
tags: | |
- PrintJob | |
description: >- | |
Get the (estimated) total time in seconds for this print, excluding | |
pauses etc. | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: integer | |
'404': | |
description: No printer job running | |
/print_job/progress: | |
get: | |
tags: | |
- PrintJob | |
description: >- | |
Get the (estimated) progress for the current print job, a value between | |
0 and 1 | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: number | |
'404': | |
description: No printer job running | |
/print_job/gcode: | |
get: | |
tags: | |
- PrintJob | |
responses: | |
'200': | |
description: >- | |
Get the gcode (possibly gzipped) of the active print job, you need | |
to get this with authentication! | |
content: | |
application/json: | |
schema: | |
type: string | |
format: binary | |
'404': | |
description: No printer job running or no gcode found | |
/print_job/container: | |
get: | |
tags: | |
- PrintJob | |
responses: | |
'200': | |
description: >- | |
Get the file (Gzipped, gcode or UFP) of the active print job, you | |
need to get this with authentication! | |
content: | |
application/json: | |
schema: | |
type: string | |
format: binary | |
'404': | |
description: No printer job running or no file found | |
/print_job/pause_source: | |
get: | |
tags: | |
- PrintJob | |
description: If the printer is paused this exposes what initiated the pause | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: string | |
enum: | |
- unknown | |
- gcode | |
- display | |
- flowsensor | |
- printer | |
- api | |
'404': | |
description: No printer job running | |
/print_job/state: | |
get: | |
tags: | |
- PrintJob | |
description: Get the print job state | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
type: string | |
enum: | |
- none | |
- printing | |
- pausing | |
- paused | |
- resuming | |
- pre_print | |
- post_print | |
- wait_cleanup | |
- wait_user_action | |
'404': | |
description: No printer job running | |
put: | |
tags: | |
- PrintJob | |
responses: | |
'204': | |
description: State changed | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: string | |
enum: | |
- pause | |
- abort | |
description: >- | |
"print", "pause" or "abort". Change the current state of the print. | |
Note that only changes to abort / pause are always allowed and | |
changing to print only when state is paused. | |
required: true | |
/print_job/result: | |
get: | |
tags: | |
- PrintJob | |
description: The result of the current print job | |
responses: | |
'200': | |
description: The result of a print job | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/printJob_result' | |
'404': | |
description: No printer job running | |
/history/print_jobs: | |
get: | |
tags: | |
- History | |
parameters: | |
- name: offset | |
in: query | |
description: >- | |
Allow an offset parameter to specify the start in the history to get | |
jobs from. Defaults to 0 | |
required: false | |
schema: | |
type: number | |
- name: count | |
in: query | |
description: >- | |
Allow a count parameter to specify the number of jobs to get from | |
the log. Defaults to 50 | |
required: false | |
schema: | |
type: number | |
responses: | |
'200': | |
description: All past PrintJobs on this printer | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/PrintJobHistory' | |
'/history/print_jobs/{uuid}': | |
get: | |
tags: | |
- History | |
parameters: | |
- name: uuid | |
in: path | |
description: UUID of the job to get | |
required: true | |
schema: | |
type: string | |
responses: | |
'200': | |
description: PrintJob with the given UUID | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/PrintJobHistory' | |
/history/events: | |
get: | |
tags: | |
- History | |
parameters: | |
- name: offset | |
in: query | |
description: >- | |
Allow an offset parameter to specify the start in the history to get | |
events from. Defaults to 0 | |
required: false | |
schema: | |
type: number | |
- name: count | |
in: query | |
description: >- | |
Allow a count parameter to specify the number of events to get from | |
the log. Defaults to 50 | |
required: false | |
schema: | |
type: number | |
- name: type_id | |
in: query | |
description: Allows the user to filter events by type | |
required: false | |
schema: | |
type: number | |
responses: | |
'200': | |
description: All events that happened on this printer | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/EventHistoryEntry' | |
post: | |
tags: | |
- History | |
responses: | |
'200': | |
description: Event logged | |
'400': | |
description: 'Bad request, some input value was not excepted.' | |
requestBody: | |
content: | |
application/x-www-form-urlencoded: | |
schema: | |
type: object | |
properties: | |
type_id: | |
type: number | |
parameters: | |
type: array | |
items: | |
type: string | |
required: | |
- type_id | |
- parameters | |
/system: | |
get: | |
tags: | |
- System | |
description: Get the entire system object | |
responses: | |
'200': | |
description: '' | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/System' | |
/system/platform: | |
get: | |
tags: | |
- System | |
description: A string identifying the underlying platform in human readable form. | |
responses: | |
'200': | |
description: Platform | |
content: | |
application/json: | |
schema: | |
type: string | |
/system/hostname: | |
get: | |
tags: | |
- System | |
description: The hostname of this machine | |
responses: | |
'200': | |
description: Hostname | |
content: | |
application/json: | |
schema: | |
type: string | |
/system/firmware: | |
get: | |
tags: | |
- System | |
description: The version of the firmware currently running | |
responses: | |
'200': | |
description: Firmware version | |
content: | |
application/json: | |
schema: | |
type: string | |
put: | |
tags: | |
- System | |
description: >- | |
Trigger a firmware update. Printer will try to fetch & install the | |
latest version. | |
responses: | |
'200': | |
description: Update started | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: string | |
description: Type of the firmware update to do. Can be 'testing' or 'stable' | |
/system/firmware/status: | |
get: | |
tags: | |
- System | |
description: Get the status of the firmware update | |
responses: | |
'200': | |
description: Status of the firmware update | |
content: | |
application/json: | |
schema: | |
type: string | |
/system/firmware/stable: | |
get: | |
tags: | |
- System | |
description: Get the version available for updating to of the 'stable' release path | |
responses: | |
'200': | |
description: Possible future firmware version | |
content: | |
application/json: | |
schema: | |
type: string | |
/system/firmware/testing: | |
get: | |
tags: | |
- System | |
description: Get the version available for updating to of the 'testing' release path | |
responses: | |
'200': | |
description: Possible future firmware version | |
content: | |
application/json: | |
schema: | |
type: string | |
/system/memory: | |
get: | |
tags: | |
- System | |
description: The current memory usage | |
responses: | |
'200': | |
description: Memory usage | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/system_memory' | |
/system/time: | |
get: | |
tags: | |
- System | |
description: The current UTC time | |
responses: | |
'200': | |
description: Time | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/system_time' | |
/system/log: | |
get: | |
tags: | |
- System | |
description: Get the logs of the system | |
parameters: | |
- name: boot | |
in: query | |
description: >- | |
Allow a boot parameter to get logs from previous boot sessions, | |
default is 0 which is the current boot. -1 is the previous boot. | |
required: false | |
schema: | |
type: number | |
- name: lines | |
in: query | |
description: >- | |
Allow a lines parameter to specify the number of lines to get from | |
the log. Defaults to 50 | |
required: false | |
schema: | |
type: number | |
responses: | |
'200': | |
description: Log data | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/SystemLog' | |
/system/name: | |
get: | |
tags: | |
- System | |
description: Get the name of the system | |
responses: | |
'200': | |
description: name | |
content: | |
application/json: | |
schema: | |
type: string | |
put: | |
tags: | |
- System | |
responses: | |
'204': | |
description: Name set | |
'400': | |
description: 'Name is not set, because an invalid name is specified' | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: string | |
description: Target name of machine | |
required: true | |
/system/country: | |
get: | |
tags: | |
- System | |
description: Get the country of the system | |
responses: | |
'200': | |
description: country | |
content: | |
application/json: | |
schema: | |
type: string | |
put: | |
tags: | |
- System | |
responses: | |
'204': | |
description: Country set | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: string | |
description: Target country of system | |
required: true | |
/system/language: | |
get: | |
tags: | |
- System | |
description: Get the language of the system | |
responses: | |
'200': | |
description: Language | |
content: | |
application/json: | |
schema: | |
type: string | |
/system/uptime: | |
get: | |
tags: | |
- System | |
description: Get the uptime of the system in seconds | |
responses: | |
'200': | |
description: Uptime | |
content: | |
application/json: | |
schema: | |
type: integer | |
/system/type: | |
get: | |
tags: | |
- System | |
description: >- | |
Get the type of machine that we are talking with. Always returns "3D | |
printer" | |
responses: | |
'200': | |
description: Type of machine | |
content: | |
application/json: | |
schema: | |
type: string | |
/system/variant: | |
get: | |
tags: | |
- System | |
description: >- | |
Gets the machines variant. Currently this can return "Ultimaker 3", | |
"Ultimaker 3 extended" or "Ultimaker S5". | |
responses: | |
'200': | |
description: Machine variant | |
content: | |
application/json: | |
schema: | |
type: string | |
/system/hardware: | |
get: | |
tags: | |
- System | |
description: Gets the hardware number and revision identifiers | |
responses: | |
'200': | |
description: Machine hardware type and revision ID | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/system_hardware' | |
/system/hardware/typeid: | |
get: | |
tags: | |
- System | |
description: >- | |
Gets the machine type as number identifier. This identifier IDs a | |
specific form of hardware | |
responses: | |
'200': | |
description: Machine hardware type ID | |
content: | |
application/json: | |
schema: | |
type: integer | |
/system/hardware/revision: | |
get: | |
tags: | |
- System | |
description: >- | |
The same machine could have different hardware revisions. When hardware | |
is updated and software needs to know that hardware has changed, this | |
revision number is changed. Currently only revision 0 is known. | |
responses: | |
'200': | |
description: Machine hardware revision | |
content: | |
application/json: | |
schema: | |
type: integer | |
/system/guid: | |
get: | |
tags: | |
- System | |
description: >- | |
Every machine as a unique identifier stored inside the board. This | |
allows for unique identification of this machine. This identifier is a | |
UUID4. | |
responses: | |
'200': | |
description: Machine guid | |
content: | |
application/json: | |
schema: | |
type: string | |
/system/display_message: | |
put: | |
tags: | |
- System | |
description: Enable external services to display a message screen on the printer. | |
responses: | |
'200': | |
description: Message is being displayed on the printer. | |
'400': | |
description: No message specified. | |
'405': | |
description: Message cannot be displayed because the printer is busy. | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- message | |
properties: | |
message: | |
type: string | |
button_caption: | |
type: string | |
description: Data to display on the screen of the printer. | |
required: true | |
servers: | |
- url: /api/v1 | |
components: | |
schemas: | |
Camera: | |
type: object | |
required: | |
- feed | |
properties: | |
feed: | |
type: string | |
Printer_status: | |
type: string | |
enum: | |
- booting | |
- idle | |
- printing | |
- error | |
- maintenance | |
Printer: | |
type: object | |
required: | |
- heads | |
properties: | |
heads: | |
type: array | |
items: | |
$ref: '#/components/schemas/Head' | |
camera: | |
$ref: '#/components/schemas/Camera' | |
bed: | |
$ref: '#/components/schemas/Bed' | |
network: | |
$ref: '#/components/schemas/Network' | |
led: | |
$ref: '#/components/schemas/led' | |
status: | |
$ref: '#/components/schemas/Printer_status' | |
Material: | |
type: object | |
properties: | |
length_remaining: | |
description: >- | |
mm of filament remaining on spool. Returns -1 if the remaining | |
length is unknown. | |
type: number | |
GUID: | |
description: >- | |
Unique identifier of the material, empty string if no material | |
loaded. | |
type: string | |
Network: | |
type: object | |
properties: | |
wifi: | |
type: object | |
properties: | |
connected: | |
type: boolean | |
description: A bool indicating if the interface is connected. | |
enabled: | |
type: boolean | |
description: A bool indicating if the interface is enabled. | |
mode: | |
type: string | |
description: Wifi mode | |
enum: | |
- AUTO | |
- HOTSPOT | |
- WIFI SETUP | |
- CABLE | |
- WIRELESS | |
- OFFLINE | |
ssid: | |
type: string | |
description: >- | |
If connected, the SSID of the hotspot this machine is connected | |
to. | |
wifi_networks: | |
type: array | |
items: | |
$ref: '#/components/schemas/Wifi_network' | |
ethernet: | |
type: object | |
properties: | |
connected: | |
type: boolean | |
description: A bool indicating if the interface is connected. | |
enabled: | |
type: boolean | |
description: A bool indicating if the interface is enabled. | |
Extruder: | |
type: object | |
description: >- | |
Extruder drive train. Includes the feeder & nozzle. Note that its id can | |
never be lower than 0 and should be seen as an index. | |
properties: | |
hotend: | |
$ref: '#/components/schemas/Hotend' | |
feeder: | |
$ref: '#/components/schemas/Feeder' | |
active_material: | |
$ref: '#/components/schemas/Material' | |
Head: | |
type: object | |
description: >- | |
Head of a printer. May contain multiple extruders. Heads can be uniquely | |
identified by ID. The id is an integer starting at 0. | |
properties: | |
position: | |
$ref: '#/components/schemas/XYZ' | |
max_speed: | |
$ref: '#/components/schemas/XYZ' | |
acceleration: | |
description: 'The default acceleration for the X, Y and Z axis' | |
type: number | |
jerk: | |
$ref: '#/components/schemas/XYZ' | |
extruders: | |
type: array | |
items: | |
$ref: '#/components/schemas/Extruder' | |
fan: | |
description: The speed of the fan in percentage | |
type: number | |
Wifi_network: | |
type: object | |
properties: | |
ssid: | |
type: string | |
security_required: | |
type: boolean | |
strength: | |
type: integer | |
Hotend: | |
type: object | |
description: A single hotend | |
required: | |
- id | |
properties: | |
id: | |
type: string | |
serial: | |
description: A hexadecimal representation of the serial number | |
type: string | |
temperature: | |
$ref: '#/components/schemas/CurrentTargetNumberPair' | |
offset: | |
$ref: '#/components/schemas/HotendOffset' | |
statistics: | |
$ref: '#/components/schemas/HotendStatistics' | |
led_hue: | |
description: A LED hue value that ranges from 0-360 | |
type: number | |
led_saturation: | |
description: A LED saturation value that ranges from 0-100 | |
type: number | |
led_brightness: | |
description: A LED brightness value that ranges from 0-100 | |
type: number | |
led: | |
type: object | |
description: A single (or set) of light source(s) | |
properties: | |
hue: | |
$ref: '#/components/schemas/led_hue' | |
saturation: | |
$ref: '#/components/schemas/led_saturation' | |
brightness: | |
$ref: '#/components/schemas/led_brightness' | |
Blink: | |
type: object | |
description: A description of a LED blink pattern | |
properties: | |
frequency: | |
description: Determine how fast the blink will happen (in Hz); defaults to 1Hz; | |
type: number | |
minimum: 0.1 | |
count: | |
description: >- | |
The number of times the blinking should be repeated; defaults to | |
once. | |
type: number | |
minimum: 1 | |
Bed: | |
type: object | |
description: (heated) bed of the printer | |
properties: | |
temperature: | |
$ref: '#/components/schemas/CurrentTargetNumberPair' | |
CurrentTargetNumberPair: | |
type: object | |
description: >- | |
Object with two numbers; Current (numeric) value of a setting and the | |
target (numeric) value of a setting | |
properties: | |
target: | |
type: number | |
current: | |
type: number | |
Feeder: | |
type: object | |
description: The feeder unit | |
properties: | |
position: | |
description: The position of the feeder. This is otherwise known as the E value | |
type: number | |
max_speed: | |
type: number | |
description: Max speed of the feeder in mm/s | |
jerk: | |
type: number | |
description: Acceleration of the acceleration (in mm/s^3) | |
acceleration: | |
type: number | |
description: Acceleration of the feeder (in mm/s^2) | |
HotendOffset: | |
type: object | |
description: >- | |
X,Y and Z offset of this hotend nozzle exit compared to the other | |
hotends in this head. The state indicates if the data for this hotend is | |
valid and thus can be used. | |
properties: | |
x: | |
type: number | |
default: 0 | |
'y': | |
type: number | |
default: 0 | |
z: | |
type: number | |
default: 0 | |
state: | |
type: string | |
enum: | |
- valid | |
- invalid | |
HotendStatistics: | |
type: object | |
description: Keeping track of both changing statistics of the PrintCore. | |
properties: | |
last_material_guid: | |
$ref: '#/components/schemas/uuid' | |
material_extruded: | |
description: >- | |
Approximate accumulated amount of material extruded during printing | |
in millimeters. | |
type: integer | |
max_temperature_exposed: | |
description: Maximum temperature exposed in degrees Celsius | |
type: integer | |
time_spent_hot: | |
description: Approximate time spent above 65 degrees Celsius in seconds. | |
type: integer | |
XYZ: | |
type: object | |
description: Container for xyz | |
properties: | |
x: | |
type: number | |
default: 0 | |
'y': | |
type: number | |
default: 0 | |
z: | |
type: number | |
default: 0 | |
printJob_result: | |
type: string | |
enum: | |
- Failed | |
- Aborted | |
- Finished | |
PrintJob: | |
type: object | |
description: An active print job. | |
properties: | |
time_elapsed: | |
type: integer | |
time_total: | |
type: integer | |
datetime_started: | |
description: Moment this print job started in ISO 8601 format | |
type: string | |
format: date-time | |
datetime_finished: | |
description: >- | |
Moment this print job finished in ISO 8601 format or empty string if | |
not finished yet | |
type: string | |
format: date-time | |
datetime_cleaned: | |
description: >- | |
Moment this print job was cleaned in ISO 8601 format or empty string | |
if build plate not cleaned yet | |
type: string | |
format: date-time | |
source: | |
type: string | |
source_user: | |
type: string | |
source_application: | |
type: string | |
name: | |
type: string | |
uuid: | |
$ref: '#/components/schemas/uuid' | |
reprint_original_uuid: | |
$ref: '#/components/schemas/uuid' | |
progress: | |
type: number | |
description: >- | |
Estimated progress for the current print job, a value between 0 and | |
1 | |
state: | |
type: string | |
enum: | |
- none | |
- printing | |
- pausing | |
- paused | |
- resuming | |
- pre_print | |
- post_print | |
- wait_cleanup | |
- wait_user_action | |
result: | |
$ref: '#/components/schemas/printJob_result' | |
HeaderValidationEntry: | |
type: object | |
description: A validation result of the header check. | |
properties: | |
fault_code: | |
type: string | |
enum: | |
- HEADER_NOT_PRESENT | |
- HEADER_MISSING_ITEM | |
- MACHINE_TOO_SMALL_FOR_GCODE | |
- CHANGE_BUILDPLATE | |
- NOZZLE_AMOUNT_MISMATCH | |
- NOZZLE_MISMATCH | |
- MATERIAL_NOT_LOADED | |
- GUID_MISMATCH | |
fault_level: | |
type: string | |
enum: | |
- WARNING | |
- ERROR | |
message: | |
type: string | |
data: | |
description: >- | |
This is a string encoded dictionary holding Key/Value pairs or an | |
empty string | |
type: string | |
PrintJobHistory: | |
type: object | |
description: A print job in the past. | |
properties: | |
time_elapsed: | |
type: integer | |
time_estimated: | |
type: integer | |
time_total: | |
type: integer | |
datetime_started: | |
type: string | |
format: date-time | |
datetime_finished: | |
type: string | |
format: date-time | |
datetime_cleaned: | |
type: string | |
format: date-time | |
result: | |
type: string | |
enum: | |
- Finished | |
- Aborted | |
source: | |
type: string | |
reprint_original_uuid: | |
$ref: '#/components/schemas/uuid' | |
name: | |
type: string | |
uuid: | |
$ref: '#/components/schemas/uuid' | |
EventHistoryEntry: | |
type: object | |
description: An event that happened on the printer. | |
properties: | |
time: | |
type: string | |
format: date-time | |
type_id: | |
type: number | |
message: | |
type: string | |
parameters: | |
type: array | |
items: | |
type: string | |
uuid: | |
description: UUID in UUID4 format. | |
type: string | |
system_memory: | |
description: System memory | |
type: object | |
properties: | |
total: | |
description: in kb | |
type: integer | |
used: | |
description: in kb | |
type: integer | |
system_hardware: | |
type: object | |
description: Hardware versions | |
properties: | |
typeid: | |
type: integer | |
revision: | |
type: integer | |
system_time: | |
type: object | |
properties: | |
utc: | |
type: number | |
description: Number of seconds since the Unix Epoch | |
System: | |
type: object | |
description: 'Meta data on the system. ' | |
properties: | |
name: | |
type: string | |
platform: | |
type: string | |
hostname: | |
type: string | |
uptime: | |
type: integer | |
time: | |
$ref: '#/components/schemas/system_time' | |
type: | |
type: string | |
variant: | |
type: string | |
memory: | |
$ref: '#/components/schemas/system_memory' | |
hardware: | |
$ref: '#/components/schemas/system_hardware' | |
log: | |
type: string | |
version: | |
type: string | |
guid: | |
type: string | |
SystemLog: | |
type: array | |
items: | |
type: string | |
Bed_PreHeat: | |
type: object | |
properties: | |
temperature: | |
description: >- | |
Target temperature of bed in degrees Celsius. Set to 0 to stop | |
pre-heating | |
type: number | |
minimum: 0 | |
timeout: | |
description: Timeout for preheating in seconds | |
type: number |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment