/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ export interface paths { '/': { parameters: { query?: never header?: never path?: never cookie?: never } /** Return the OpenAPI schema in JSON format. */ get: operations['api_get_schema'] put?: never post?: never delete?: never options?: never head?: never patch?: never trace?: never } '/machines': { parameters: { query?: never header?: never path?: never cookie?: never } /** List available machines and their statuses */ get: operations['get_machines'] put?: never post?: never delete?: never options?: never head?: never patch?: never trace?: never } '/machines/{id}': { parameters: { query?: never header?: never path?: never cookie?: never } /** Get the status of a specific machine */ get: operations['get_machine'] put?: never post?: never delete?: never options?: never head?: never patch?: never trace?: never } '/metrics': { parameters: { query?: never header?: never path?: never cookie?: never } /** List available machines and their statuses */ get: operations['get_metrics'] put?: never post?: never delete?: never options?: never head?: never patch?: never trace?: never } '/ping': { parameters: { query?: never header?: never path?: never cookie?: never } /** Return pong. */ get: operations['ping'] put?: never post?: never delete?: never options?: never head?: never patch?: never trace?: never } '/print': { parameters: { query?: never header?: never path?: never cookie?: never } get?: never put?: never /** Print a given file. File must be a sliceable 3D model. */ post: operations['print_file'] delete?: never options?: never head?: never patch?: never trace?: never } } export type webhooks = Record export interface components { schemas: { /** @description Error information from a response. */ Error: { error_code?: string message: string request_id: string } /** @description Extra machine-specific information regarding a connected machine. */ ExtraMachineInfoResponse: | { /** @enum {string} */ type: 'moonraker' } | { /** @enum {string} */ type: 'usb' } | { /** @description The current stage of the machine as defined by Bambu which can include errors, etc. */ current_stage?: components['schemas']['Stage'] | null /** @description The nozzle diameter of the machine. */ nozzle_diameter: components['schemas']['NozzleDiameter'] /** @enum {string} */ type: 'bambu' } /** @description Configuration for a FDM-based printer. */ FdmHardwareConfiguration: { /** @description type of material being extruded */ filament_material: components['schemas']['FilamentMaterial'] /** * Format: double * @description Diameter of the extrusion nozzle, in mm. */ nozzle_diameter: number } /** @description The material that the filament is made of. */ FilamentMaterial: | 'Pla' | 'Abs' | 'Petg' | 'Nylon' | 'Tpu' | 'Pva' | 'Hips' | 'Composite' | 'Other' /** @description The hardware configuration of a machine. */ HardwareConfiguration: | 'None' | { Fdm: components['schemas']['FdmHardwareConfiguration'] } /** @description Information regarding a connected machine. */ MachineInfoResponse: { /** @description Additional, per-machine information which is specific to the underlying machine type. */ extra?: components['schemas']['ExtraMachineInfoResponse'] | null /** @description Information about how the Machine is currently configured. */ hardware_configuration: components['schemas']['HardwareConfiguration'] /** @description Machine Identifier (ID) for the specific Machine. */ id: string /** @description Information regarding the method of manufacture. */ machine_type: components['schemas']['MachineType'] /** @description Information regarding the make and model of the attached Machine. */ make_model: components['schemas']['MachineMakeModel'] /** @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. * * This may be `None` if the maximum size is not knowable by the Machine API. * * What "close" means is up to you! */ max_part_volume?: components['schemas']['Volume'] | null /** @description Status of the printer -- be it printing, idle, or unreachable. This may dictate if a machine is capable of taking a new job. */ state: components['schemas']['MachineState'] } /** @description Information regarding the make/model of a discovered endpoint. */ MachineMakeModel: { /** @description The manufacturer that built the connected Machine. */ manufacturer?: string | null /** @description The model of the connected Machine. */ model?: string | null /** @description The unique serial number of the connected Machine. */ serial?: string | null } /** @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. */ MachineState: | { /** @enum {string} */ state: 'unknown' } | { /** @enum {string} */ state: 'idle' } | { /** @enum {string} */ state: 'running' } | { /** @enum {string} */ state: 'offline' } | { /** @enum {string} */ state: 'paused' } | { /** @enum {string} */ state: 'complete' } | { /** @description A human-readable message describing the failure. */ message?: string | null /** @enum {string} */ state: 'failed' } /** @description Specific technique by which this Machine takes a design, and produces a real-world 3D object. */ MachineType: 'Stereolithography' | 'FusedDeposition' | 'Cnc' /** @description A nozzle diameter. */ NozzleDiameter: '0.2' | '0.4' | '0.6' | '0.8' /** @description The response from the `/ping` endpoint. */ Pong: { /** @description The pong response. */ message: string } /** @description The response from the `/print` endpoint. */ PrintJobResponse: { /** @description The job id used for this print. */ job_id: string /** @description The parameters used for this print. */ parameters: components['schemas']['PrintParameters'] } /** @description Parameters for printing. */ PrintParameters: { /** @description The name for the job. */ job_name: string /** @description The machine id to print to. */ machine_id: string /** @description Requested design-specific slicer configurations. */ slicer_configuration?: components['schemas']['SlicerConfiguration'] | null } /** @description The slicer configuration is a set of parameters that are passed to the slicer to control how the gcode is generated. */ SlicerConfiguration: Record /** @description The print stage. These come from: https://github.com/SoftFever/OrcaSlicer/blob/431978baf17961df90f0d01871b0ad1d839d7f5d/src/slic3r/GUI/DeviceManager.cpp#L78 */ Stage: | 'nothing' | 'empty' | 'auto_bed_leveling' | 'heatbed_preheating' | 'sweeping_xy_mech_mode' | 'changing_filament' | 'm400_pause' | 'paused_due_to_filament_runout' | 'heating_hotend' | 'calibrating_extrusion' | 'scanning_bed_surface' | 'inspecting_first_layer' | 'identifying_build_plate_type' | 'calibrating_micro_lidar' | 'homing_toolhead' | 'cleaning_nozzle_tip' | 'checking_extruder_temperature' | 'printing_was_paused_by_the_user' | 'pause_of_front_cover_falling' | 'calibrating_micro_lidar2' | 'calibrating_extrusion_flow' | 'paused_due_to_nozzle_temperature_malfunction' | 'paused_due_to_heat_bed_temperature_malfunction' | 'filament_unloading' | 'skip_step_pause' | 'filament_loading' | 'motor_noise_calibration' | 'paused_due_to_ams_lost' | 'paused_due_to_low_speed_of_the_heat_break_fan' | 'paused_due_to_chamber_temperature_control_error' | 'cooling_chamber' | 'paused_by_the_gcode_inserted_by_the_user' | 'motor_noise_showoff' | 'nozzle_filament_covered_detected_pause' | 'cutter_error_pause' | 'first_layer_error_pause' | 'nozzle_clog_pause' /** @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. * * All measurements are in millimeters. */ Volume: { /** * Format: double * @description Depth of the volume ("front to back"), in millimeters. */ depth: number /** * Format: double * @description Height of the volume ("up and down"), in millimeters. */ height: number /** * Format: double * @description Width of the volume ("left and right"), in millimeters. */ width: number } } responses: { /** @description Error */ Error: { headers: { [name: string]: unknown } content: { 'application/json': components['schemas']['Error'] } } } parameters: never requestBodies: never headers: never pathItems: never } export type $defs = Record export interface operations { api_get_schema: { parameters: { query?: never header?: never path?: never cookie?: never } requestBody?: never responses: { /** @description successful operation */ 200: { headers: { [name: string]: unknown } content: { 'application/json': unknown } } '4XX': components['responses']['Error'] '5XX': components['responses']['Error'] } } get_machines: { parameters: { query?: never header?: never path?: never cookie?: never } requestBody?: never responses: { /** @description successful operation */ 200: { headers: { [name: string]: unknown } content: { 'application/json': components['schemas']['MachineInfoResponse'][] } } '4XX': components['responses']['Error'] '5XX': components['responses']['Error'] } } get_machine: { parameters: { query?: never header?: never path: { /** @description The machine ID. */ id: string } cookie?: never } requestBody?: never responses: { /** @description successful operation */ 200: { headers: { [name: string]: unknown } content: { 'application/json': components['schemas']['MachineInfoResponse'] } } '4XX': components['responses']['Error'] '5XX': components['responses']['Error'] } } get_metrics: { parameters: { query?: never header?: never path?: never cookie?: never } requestBody?: never responses: { /** @description successful operation */ 200: { headers: { [name: string]: unknown } content: { 'application/json': string } } '4XX': components['responses']['Error'] '5XX': components['responses']['Error'] } } ping: { parameters: { query?: never header?: never path?: never cookie?: never } requestBody?: never responses: { /** @description successful operation */ 200: { headers: { [name: string]: unknown } content: { 'application/json': components['schemas']['Pong'] } } '4XX': components['responses']['Error'] '5XX': components['responses']['Error'] } } print_file: { parameters: { query?: never header?: never path?: never cookie?: never } requestBody: { content: { 'multipart/form-data': string } } responses: { /** @description successful operation */ 200: { headers: { [name: string]: unknown } content: { 'application/json': components['schemas']['PrintJobResponse'] } } '4XX': components['responses']['Error'] '5XX': components['responses']['Error'] } } }