{
  "openapi": "3.0.4",
  "info": {
    "title": "PrinterController",
    "description": "API collection that allows for controlling a DIGI printer.<br />This endpoint is transcoded from the gRPC service contract. The Protobuf file can be retrieved via gRPC Server Reflection on the base URI. Use of gRPC is more preferable because of better performance.",
    "version": "v1"
  },
  "paths": {
    "/printer_controller/v1/printer_controller/start": {
      "put": {
        "tags": [
          "PrinterControllerService"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      }
    },
    "/printer_controller/v1/printer_controller/stop": {
      "put": {
        "tags": [
          "PrinterControllerService"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      }
    },
    "/printer_controller/v1/printer_controller/print_job": {
      "post": {
        "tags": [
          "PrinterControllerService"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PrintJobRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrintJobResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      }
    },
    "/printer_controller/v1/printer_controller/job_state": {
      "get": {
        "tags": [
          "PrinterControllerService"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobStatusResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      }
    },
    "/printer_controller/v1/printer_controller/printer_state": {
      "get": {
        "tags": [
          "PrinterControllerService"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrinterStatusResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      }
    },
    "/printer_controller/v1/printer_controller/notifications": {
      "get": {
        "tags": [
          "PrinterControllerService"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationsResponse"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      }
    },
    "/recipe_module/v1/recipe": {
      "post": {
        "tags": [
          "RecipeService"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRecipeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateRecipeReply"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "RecipeService"
        ],
        "parameters": [
          {
            "name": "paging.pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "paging.pageNumber",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "paging.includeTotalSize",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "order.id",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "order.createdDateTime",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order.name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter.id",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "filter.createdDateTime",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter.name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListRecipeReply"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "RecipeService"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRecipeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateRecipeReply"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      }
    },
    "/recipe_module/v1/recipe/{name}": {
      "get": {
        "tags": [
          "RecipeService"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetRecipeReply"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "RecipeService"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      }
    },
    "/variable_module/v1/variable/{id}": {
      "get": {
        "tags": [
          "VariableService"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetVariableReply"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      }
    },
    "/variable_module/v1/variable": {
      "get": {
        "tags": [
          "VariableService"
        ],
        "parameters": [
          {
            "name": "paging.pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "paging.pageNumber",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "paging.includeTotalSize",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "order.id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order.name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order.dataType",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/DataType"
            }
          },
          {
            "name": "order.category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order.component",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order.eventlog",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "order.datalog",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "order.recipe",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "order.configuration",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "order.value",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter.id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter.name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter.dataType",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/DataType"
            }
          },
          {
            "name": "filter.category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter.component",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter.eventlog",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "filter.datalog",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "filter.recipe",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "filter.configuration",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "filter.value",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListVariableReply"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Any": {
        "required": [
          "@type"
        ],
        "type": "object",
        "properties": {
          "@type": {
            "type": "string"
          }
        },
        "additionalProperties": {
          "$ref": "#/components/schemas/Value"
        }
      },
      "CreateRecipeReply": {
        "type": "object",
        "properties": {
          "recipe": {
            "$ref": "#/components/schemas/Recipe"
          }
        },
        "additionalProperties": false
      },
      "CreateRecipeRequest": {
        "type": "object",
        "properties": {
          "recipe": {
            "$ref": "#/components/schemas/Recipe"
          }
        },
        "additionalProperties": false
      },
      "DataType": {
        "enum": [
          "DATA_TYPE_UNKNOWN",
          "DATA_TYPE_BOOLEAN",
          "DATA_TYPE_NULLABLE_BOOLEAN",
          "DATA_TYPE_INTEGER",
          "DATA_TYPE_FLOAT",
          "DATA_TYPE_STRING",
          "DATA_TYPE_DATE",
          "DATA_TYPE_DATE_TIME",
          "DATA_TYPE_TIME",
          "DATA_TYPE_UNSIGNED_INTEGER",
          "DATA_TYPE_SHORT",
          "DATA_TYPE_OBJECT"
        ],
        "type": "string"
      },
      "Empty": {
        "type": "object",
        "additionalProperties": false
      },
      "FileType": {
        "enum": [
          "FileType_Unknown",
          "FileType_PDF",
          "FileType_ISI",
          "FileType_TIFF",
          "FileType_DJOB",
          "FileType_BMP",
          "FileType_PNG",
          "FileType_ZIP"
        ],
        "type": "string"
      },
      "GetRecipeReply": {
        "type": "object",
        "properties": {
          "recipe": {
            "$ref": "#/components/schemas/Recipe"
          }
        },
        "additionalProperties": false
      },
      "GetVariableReply": {
        "type": "object",
        "properties": {
          "variable": {
            "$ref": "#/components/schemas/Variable"
          }
        },
        "additionalProperties": false
      },
      "JobStatus": {
        "enum": [
          "JobStatus_Unknown",
          "JobStatus_Idle",
          "JobStatus_Queued",
          "JobStatus_Active",
          "JobStatus_Printing",
          "JobStatus_Finished",
          "JobStatus_Canceled",
          "JobStatus_Error"
        ],
        "type": "string"
      },
      "JobStatusResponse": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string"
          },
          "jobName": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/JobStatus"
          }
        },
        "additionalProperties": false
      },
      "KindOneofCase": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "format": "int32"
      },
      "ListRecipeReply": {
        "type": "object",
        "properties": {
          "recipes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Recipe"
            }
          },
          "paging": {
            "$ref": "#/components/schemas/PagingReply"
          }
        },
        "additionalProperties": false
      },
      "ListValue": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Value"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ListVariableReply": {
        "type": "object",
        "properties": {
          "variables": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Variable"
            }
          },
          "paging": {
            "$ref": "#/components/schemas/PagingReply"
          }
        },
        "additionalProperties": false
      },
      "Notification": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/NotificationType"
          },
          "startTime": {
            "type": "string"
          },
          "endTime": {
            "type": "string"
          },
          "componentName": {
            "type": "string"
          },
          "content": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NotificationType": {
        "enum": [
          "NotificationType_Unknown",
          "NotificationType_Info",
          "NotificationType_Warning",
          "NotificationType_Error"
        ],
        "type": "string"
      },
      "NotificationsResponse": {
        "type": "object",
        "properties": {
          "notifications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Notification"
            }
          }
        },
        "additionalProperties": false
      },
      "NullValue": {
        "enum": [
          0
        ],
        "type": "integer",
        "format": "int32"
      },
      "PagingReply": {
        "type": "object",
        "properties": {
          "totalSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PrintFile": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/FileType"
          },
          "fileData": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PrintJobMode": {
        "type": "object",
        "properties": {
          "printMode": {
            "$ref": "#/components/schemas/PrintMode"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PrintJobRequest": {
        "type": "object",
        "properties": {
          "job": {
            "$ref": "#/components/schemas/PrintFile"
          },
          "parameters": {
            "$ref": "#/components/schemas/PrintJobRequestParameters"
          }
        },
        "additionalProperties": false
      },
      "PrintJobRequestParameters": {
        "type": "object",
        "properties": {
          "jobTemplateId": {
            "type": "string"
          },
          "jobTemplateCustomerReference": {
            "type": "string"
          },
          "enabledLayers": {
            "type": "integer",
            "format": "int32"
          },
          "enabledProducts": {
            "type": "integer",
            "format": "int64"
          },
          "enabledSides": {
            "type": "integer",
            "format": "int32"
          },
          "printJobMode": {
            "$ref": "#/components/schemas/PrintJobMode"
          }
        },
        "additionalProperties": false
      },
      "PrintJobResponse": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string"
          },
          "jobName": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PrintMode": {
        "enum": [
          "PrintMode_Unknown",
          "PrintMode_Single",
          "PrintMode_Batch",
          "PrintMode_Continuous"
        ],
        "type": "string"
      },
      "PrinterStatus": {
        "enum": [
          "PrinterStatus_Unknown",
          "PrinterStatus_Idle",
          "PrinterStatus_Starting",
          "PrinterStatus_Started",
          "PrinterStatus_Stopping",
          "PrinterStatus_Stopped",
          "PrinterStatus_Error"
        ],
        "type": "string"
      },
      "PrinterStatusResponse": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/PrinterStatus"
          }
        },
        "additionalProperties": false
      },
      "Recipe": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "createdDateTime": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "variables": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Variable"
            }
          }
        },
        "additionalProperties": false
      },
      "Status": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Any"
            }
          }
        },
        "additionalProperties": false
      },
      "Struct": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Value"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "UpdateRecipeReply": {
        "type": "object",
        "properties": {
          "recipe": {
            "$ref": "#/components/schemas/Recipe"
          }
        },
        "additionalProperties": false
      },
      "UpdateRecipeRequest": {
        "type": "object",
        "properties": {
          "recipe": {
            "$ref": "#/components/schemas/Recipe"
          }
        },
        "additionalProperties": false
      },
      "Value": {
        "type": "object",
        "properties": {
          "nullValue": {
            "$ref": "#/components/schemas/NullValue"
          },
          "hasNullValue": {
            "type": "boolean",
            "readOnly": true
          },
          "numberValue": {
            "type": "number",
            "format": "double"
          },
          "hasNumberValue": {
            "type": "boolean",
            "readOnly": true
          },
          "stringValue": {
            "type": "string",
            "nullable": true
          },
          "hasStringValue": {
            "type": "boolean",
            "readOnly": true
          },
          "boolValue": {
            "type": "boolean"
          },
          "hasBoolValue": {
            "type": "boolean",
            "readOnly": true
          },
          "structValue": {
            "$ref": "#/components/schemas/Struct"
          },
          "listValue": {
            "$ref": "#/components/schemas/ListValue"
          },
          "kindCase": {
            "$ref": "#/components/schemas/KindOneofCase"
          }
        },
        "additionalProperties": false
      },
      "Variable": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "category": {
            "type": "string"
          },
          "component": {
            "type": "string"
          },
          "eventlog": {
            "type": "boolean"
          },
          "datalog": {
            "type": "boolean"
          },
          "recipe": {
            "type": "boolean"
          },
          "configuration": {
            "type": "boolean"
          },
          "value": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "tags": [
    {
      "name": "PrinterControllerService"
    },
    {
      "name": "RecipeService"
    },
    {
      "name": "VariableService"
    }
  ]
}