YOYO NEW API SPEC! Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1214 lines
33 KiB
JSON
1214 lines
33 KiB
JSON
{
|
|
"components": {
|
|
"responses": {
|
|
"Error": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
}
|
|
}
|
|
},
|
|
"description": "Error"
|
|
}
|
|
},
|
|
"schemas": {
|
|
"Error": {
|
|
"description": "Error information from a response.",
|
|
"properties": {
|
|
"error_code": {
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"request_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"message",
|
|
"request_id"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ExtraMachineInfoResponse": {
|
|
"description": "Extra machine-specific information regarding a connected machine.",
|
|
"oneOf": [
|
|
{
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"moonraker"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"usb"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"current_stage": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Stage"
|
|
}
|
|
],
|
|
"description": "The current stage of the machine as defined by Bambu which can include errors, etc.",
|
|
"nullable": true
|
|
},
|
|
"nozzle_diameter": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/NozzleDiameter"
|
|
}
|
|
],
|
|
"description": "The nozzle diameter of the machine."
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"bambu"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"nozzle_diameter",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"FdmHardwareConfiguration": {
|
|
"description": "Configuration for a FDM-based printer.",
|
|
"properties": {
|
|
"filaments": {
|
|
"description": "The filaments the printer has access to.",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Filament"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"loaded_filament_idx": {
|
|
"description": "The currently loaded filament index.",
|
|
"format": "uint",
|
|
"minimum": 0,
|
|
"nullable": true,
|
|
"type": "integer"
|
|
},
|
|
"nozzle_diameter": {
|
|
"description": "Diameter of the extrusion nozzle, in mm.",
|
|
"format": "double",
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"filaments",
|
|
"nozzle_diameter"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"Filament": {
|
|
"description": "Information about the filament being used in a FDM printer.",
|
|
"properties": {
|
|
"color": {
|
|
"description": "The color (as hex without the `#`) of the filament, this is likely specific to the manufacturer.",
|
|
"maxLength": 6,
|
|
"minLength": 6,
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"material": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/FilamentMaterial"
|
|
}
|
|
],
|
|
"description": "The material that the filament is made of."
|
|
},
|
|
"name": {
|
|
"description": "The name of the filament, this is likely specfic to the manufacturer.",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"material"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"FilamentMaterial": {
|
|
"description": "The material that the filament is made of.",
|
|
"oneOf": [
|
|
{
|
|
"description": "Polylactic acid based plastics",
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"pla"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Pla support",
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"pla_support"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "acrylonitrile butadiene styrene based plastics",
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"abs"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "polyethylene terephthalate glycol based plastics",
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"petg"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "unsuprisingly, nylon based",
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"nylon"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "thermoplastic polyurethane based urethane material",
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"tpu"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "polyvinyl alcohol based material",
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"pva"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "high impact polystyrene based material",
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"hips"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "composite material with stuff in other stuff, something like PLA mixed with carbon fiber, kevlar, or fiberglass",
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"composite"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Unknown material",
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"unknown"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"HardwareConfiguration": {
|
|
"description": "The hardware configuration of a machine.",
|
|
"oneOf": [
|
|
{
|
|
"description": "No configuration is possible. This isn't the same conceptually as an `Option<HardwareConfiguration>`, because this indicates we positively know there is no possible configuration changes that are possible with this method of manufcture.",
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"none"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Hardware configuration specific to FDM based printers",
|
|
"properties": {
|
|
"config": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/FdmHardwareConfiguration"
|
|
}
|
|
],
|
|
"description": "The configuration for the FDM printer."
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"fdm"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"config",
|
|
"type"
|
|
],
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"MachineInfoResponse": {
|
|
"description": "Information regarding a connected machine.",
|
|
"properties": {
|
|
"extra": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ExtraMachineInfoResponse"
|
|
}
|
|
],
|
|
"description": "Additional, per-machine information which is specific to the underlying machine type.",
|
|
"nullable": true
|
|
},
|
|
"hardware_configuration": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/HardwareConfiguration"
|
|
}
|
|
],
|
|
"description": "Information about how the Machine is currently configured."
|
|
},
|
|
"id": {
|
|
"description": "Machine Identifier (ID) for the specific Machine.",
|
|
"type": "string"
|
|
},
|
|
"machine_type": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MachineType"
|
|
}
|
|
],
|
|
"description": "Information regarding the method of manufacture."
|
|
},
|
|
"make_model": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MachineMakeModel"
|
|
}
|
|
],
|
|
"description": "Information regarding the make and model of the attached Machine."
|
|
},
|
|
"max_part_volume": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Volume"
|
|
}
|
|
],
|
|
"description": "Maximum part size that can be manufactured by this device. This may be some sort of theoretical upper bound, getting close to this limit seems like maybe a bad idea.\n\nThis may be `None` if the maximum size is not knowable by the Machine API.\n\nWhat \"close\" means is up to you!",
|
|
"nullable": true
|
|
},
|
|
"progress": {
|
|
"description": "Progress of the current print, if printing.",
|
|
"format": "double",
|
|
"nullable": true,
|
|
"type": "number"
|
|
},
|
|
"state": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MachineState"
|
|
}
|
|
],
|
|
"description": "Status of the printer -- be it printing, idle, or unreachable. This may dictate if a machine is capable of taking a new job."
|
|
}
|
|
},
|
|
"required": [
|
|
"hardware_configuration",
|
|
"id",
|
|
"machine_type",
|
|
"make_model",
|
|
"state"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"MachineMakeModel": {
|
|
"description": "Information regarding the make/model of a discovered endpoint.",
|
|
"properties": {
|
|
"manufacturer": {
|
|
"description": "The manufacturer that built the connected Machine.",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"description": "The model of the connected Machine.",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"serial": {
|
|
"description": "The unique serial number of the connected Machine.",
|
|
"nullable": true,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"MachineState": {
|
|
"description": "Current state of the machine -- be it printing, idle or offline. This can be used to determine if a printer is in the correct state to take a new job.",
|
|
"oneOf": [
|
|
{
|
|
"description": "If a print state can not be resolved at this time, an Unknown may be returned.",
|
|
"properties": {
|
|
"state": {
|
|
"enum": [
|
|
"unknown"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"state"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Idle, and ready for another job.",
|
|
"properties": {
|
|
"state": {
|
|
"enum": [
|
|
"idle"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"state"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Running a job -- 3D printing or CNC-ing a part.",
|
|
"properties": {
|
|
"state": {
|
|
"enum": [
|
|
"running"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"state"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Machine is currently offline or unreachable.",
|
|
"properties": {
|
|
"state": {
|
|
"enum": [
|
|
"offline"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"state"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Job is underway but halted, waiting for some action to take place.",
|
|
"properties": {
|
|
"state": {
|
|
"enum": [
|
|
"paused"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"state"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Job is finished, but waiting manual action to move back to Idle.",
|
|
"properties": {
|
|
"state": {
|
|
"enum": [
|
|
"complete"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"state"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "The printer has failed and is in an unknown state that may require manual attention to resolve. The inner value is a human readable description of what specifically has failed.",
|
|
"properties": {
|
|
"message": {
|
|
"description": "A human-readable message describing the failure.",
|
|
"nullable": true,
|
|
"type": "string"
|
|
},
|
|
"state": {
|
|
"enum": [
|
|
"failed"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"state"
|
|
],
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"MachineType": {
|
|
"description": "Specific technique by which this Machine takes a design, and produces a real-world 3D object.",
|
|
"oneOf": [
|
|
{
|
|
"description": "Use light to cure a resin to build up layers.",
|
|
"enum": [
|
|
"stereolithography"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Fused Deposition Modeling, layers of melted plastic.",
|
|
"enum": [
|
|
"fused_deposition"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "\"Computer numerical control\" - machine that grinds away material from a hunk of material to construct a part.",
|
|
"enum": [
|
|
"cnc"
|
|
],
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"NozzleDiameter": {
|
|
"description": "A nozzle diameter.",
|
|
"oneOf": [
|
|
{
|
|
"description": "0.2mm.",
|
|
"enum": [
|
|
"0.2"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "0.4mm.",
|
|
"enum": [
|
|
"0.4"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "0.6mm.",
|
|
"enum": [
|
|
"0.6"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "0.8mm.",
|
|
"enum": [
|
|
"0.8"
|
|
],
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"Pong": {
|
|
"description": "The response from the `/ping` endpoint.",
|
|
"properties": {
|
|
"message": {
|
|
"description": "The pong response.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"message"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PrintJobResponse": {
|
|
"description": "The response from the `/print` endpoint.",
|
|
"properties": {
|
|
"job_id": {
|
|
"description": "The job id used for this print.",
|
|
"type": "string"
|
|
},
|
|
"parameters": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PrintParameters"
|
|
}
|
|
],
|
|
"description": "The parameters used for this print."
|
|
}
|
|
},
|
|
"required": [
|
|
"job_id",
|
|
"parameters"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PrintParameters": {
|
|
"description": "Parameters for printing.",
|
|
"properties": {
|
|
"job_name": {
|
|
"description": "The name for the job.",
|
|
"type": "string"
|
|
},
|
|
"machine_id": {
|
|
"description": "The machine id to print to.",
|
|
"type": "string"
|
|
},
|
|
"slicer_configuration": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/SlicerConfiguration"
|
|
}
|
|
],
|
|
"description": "Requested design-specific slicer configurations.",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"job_name",
|
|
"machine_id"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SlicerConfiguration": {
|
|
"description": "The slicer configuration is a set of parameters that are passed to the slicer to control how the gcode is generated.",
|
|
"properties": {
|
|
"filament_idx": {
|
|
"description": "The filament to use for the print.",
|
|
"format": "uint",
|
|
"minimum": 0,
|
|
"nullable": true,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"Stage": {
|
|
"description": "The print stage. These come from: https://github.com/SoftFever/OrcaSlicer/blob/431978baf17961df90f0d01871b0ad1d839d7f5d/src/slic3r/GUI/DeviceManager.cpp#L78",
|
|
"oneOf": [
|
|
{
|
|
"description": "Nothing.",
|
|
"enum": [
|
|
"nothing"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Empty.",
|
|
"enum": [
|
|
"empty"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Auto bed leveling.",
|
|
"enum": [
|
|
"auto_bed_leveling"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Heatbed preheating.",
|
|
"enum": [
|
|
"heatbed_preheating"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Sweeping XY mech mode.",
|
|
"enum": [
|
|
"sweeping_xy_mech_mode"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Changing filament.",
|
|
"enum": [
|
|
"changing_filament"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "M400 pause.",
|
|
"enum": [
|
|
"m400_pause"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Paused due to filament runout.",
|
|
"enum": [
|
|
"paused_due_to_filament_runout"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Heating hotend.",
|
|
"enum": [
|
|
"heating_hotend"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Calibrating extrusion.",
|
|
"enum": [
|
|
"calibrating_extrusion"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Scanning bed surface.",
|
|
"enum": [
|
|
"scanning_bed_surface"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Inspecting first layer.",
|
|
"enum": [
|
|
"inspecting_first_layer"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Identifying build plate type.",
|
|
"enum": [
|
|
"identifying_build_plate_type"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Calibrating micro lidar.",
|
|
"enum": [
|
|
"calibrating_micro_lidar"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Homing toolhead.",
|
|
"enum": [
|
|
"homing_toolhead"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Cleaning nozzle tip.",
|
|
"enum": [
|
|
"cleaning_nozzle_tip"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Checking extruder temperature.",
|
|
"enum": [
|
|
"checking_extruder_temperature"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Printing was paused by the user.",
|
|
"enum": [
|
|
"printing_was_paused_by_the_user"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Pause of front cover falling.",
|
|
"enum": [
|
|
"pause_of_front_cover_falling"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Calibrating micro lidar.",
|
|
"enum": [
|
|
"calibrating_micro_lidar2"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Calibrating extrusion flow.",
|
|
"enum": [
|
|
"calibrating_extrusion_flow"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Paused due to nozzle temperature malfunction.",
|
|
"enum": [
|
|
"paused_due_to_nozzle_temperature_malfunction"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Paused due to heat bed temperature malfunction.",
|
|
"enum": [
|
|
"paused_due_to_heat_bed_temperature_malfunction"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Filament unloading.",
|
|
"enum": [
|
|
"filament_unloading"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Skip step pause.",
|
|
"enum": [
|
|
"skip_step_pause"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Filament loading.",
|
|
"enum": [
|
|
"filament_loading"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Motor noise calibration.",
|
|
"enum": [
|
|
"motor_noise_calibration"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Paused due to AMS lost.",
|
|
"enum": [
|
|
"paused_due_to_ams_lost"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Paused due to low speed of the heat break fan.",
|
|
"enum": [
|
|
"paused_due_to_low_speed_of_the_heat_break_fan"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Paused due to chamber temperature control error.",
|
|
"enum": [
|
|
"paused_due_to_chamber_temperature_control_error"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Cooling chamber.",
|
|
"enum": [
|
|
"cooling_chamber"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Paused by the Gcode inserted by the user.",
|
|
"enum": [
|
|
"paused_by_the_gcode_inserted_by_the_user"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Motor noise showoff.",
|
|
"enum": [
|
|
"motor_noise_showoff"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Nozzle filament covered detected pause.",
|
|
"enum": [
|
|
"nozzle_filament_covered_detected_pause"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Cutter error pause.",
|
|
"enum": [
|
|
"cutter_error_pause"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "First layer error pause.",
|
|
"enum": [
|
|
"first_layer_error_pause"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Nozzle clog pause.",
|
|
"enum": [
|
|
"nozzle_clog_pause"
|
|
],
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"Volume": {
|
|
"description": "Set of three values to represent the extent of a 3-D Volume. This contains the width, depth, and height values, generally used to represent some maximum or minimum.\n\nAll measurements are in millimeters.",
|
|
"properties": {
|
|
"depth": {
|
|
"description": "Depth of the volume (\"front to back\"), in millimeters.",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"height": {
|
|
"description": "Height of the volume (\"up and down\"), in millimeters.",
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"width": {
|
|
"description": "Width of the volume (\"left and right\"), in millimeters.",
|
|
"format": "double",
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"depth",
|
|
"height",
|
|
"width"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"info": {
|
|
"contact": {
|
|
"email": "machine-api@zoo.dev",
|
|
"url": "https://zoo.dev"
|
|
},
|
|
"description": "",
|
|
"title": "machine-api",
|
|
"version": "0.1.1"
|
|
},
|
|
"openapi": "3.0.3",
|
|
"paths": {
|
|
"/": {
|
|
"get": {
|
|
"operationId": "api_get_schema",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "successful operation"
|
|
},
|
|
"4XX": {
|
|
"$ref": "#/components/responses/Error"
|
|
},
|
|
"5XX": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"summary": "Return the OpenAPI schema in JSON format.",
|
|
"tags": [
|
|
"meta"
|
|
]
|
|
}
|
|
},
|
|
"/machines": {
|
|
"get": {
|
|
"operationId": "get_machines",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MachineInfoResponse"
|
|
},
|
|
"title": "Array_of_MachineInfoResponse",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "successful operation"
|
|
},
|
|
"4XX": {
|
|
"$ref": "#/components/responses/Error"
|
|
},
|
|
"5XX": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"summary": "List available machines and their statuses",
|
|
"tags": [
|
|
"machines"
|
|
]
|
|
}
|
|
},
|
|
"/machines/{id}": {
|
|
"get": {
|
|
"operationId": "get_machine",
|
|
"parameters": [
|
|
{
|
|
"description": "The machine ID.",
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MachineInfoResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "successful operation"
|
|
},
|
|
"4XX": {
|
|
"$ref": "#/components/responses/Error"
|
|
},
|
|
"5XX": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"summary": "Get the status of a specific machine",
|
|
"tags": [
|
|
"machines"
|
|
]
|
|
}
|
|
},
|
|
"/metrics": {
|
|
"get": {
|
|
"operationId": "get_metrics",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"title": "String",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"description": "successful operation"
|
|
},
|
|
"4XX": {
|
|
"$ref": "#/components/responses/Error"
|
|
},
|
|
"5XX": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"summary": "List available machines and their statuses",
|
|
"tags": [
|
|
"hidden"
|
|
]
|
|
}
|
|
},
|
|
"/ping": {
|
|
"get": {
|
|
"operationId": "ping",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Pong"
|
|
}
|
|
}
|
|
},
|
|
"description": "successful operation"
|
|
},
|
|
"4XX": {
|
|
"$ref": "#/components/responses/Error"
|
|
},
|
|
"5XX": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"summary": "Return pong.",
|
|
"tags": [
|
|
"meta"
|
|
]
|
|
}
|
|
},
|
|
"/print": {
|
|
"post": {
|
|
"operationId": "print_file",
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"format": "binary",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PrintJobResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "successful operation"
|
|
},
|
|
"4XX": {
|
|
"$ref": "#/components/responses/Error"
|
|
},
|
|
"5XX": {
|
|
"$ref": "#/components/responses/Error"
|
|
}
|
|
},
|
|
"summary": "Print a given file. File must be a sliceable 3D model.",
|
|
"tags": [
|
|
"machines"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"tags": [
|
|
{
|
|
"description": "Hidden API endpoints that should not show up in the docs.",
|
|
"externalDocs": {
|
|
"url": "https://docs.zoo.dev/api/machines"
|
|
},
|
|
"name": "hidden"
|
|
},
|
|
{
|
|
"description": "Utilities for making parts and discovering machines.",
|
|
"externalDocs": {
|
|
"url": "https://docs.zoo.dev/api/machines"
|
|
},
|
|
"name": "machines"
|
|
},
|
|
{
|
|
"description": "Meta information about the API.",
|
|
"externalDocs": {
|
|
"url": "https://docs.zoo.dev/api/meta"
|
|
},
|
|
"name": "meta"
|
|
}
|
|
]
|
|
} |