{
  "openapi": "3.0.4",
  "info": {
    "title": "RAPT API",
    "description": "Really Awesome Product Technology",
    "contact": {
      "name": "KegLand",
      "url": "https://rapt.io/",
      "email": "beer@kegland.com.au"
    },
    "version": "v1"
  },
  "paths": {
    "/api/BondedDevices/GetBondedDevices": {
      "get": {
        "tags": [
          "BondedDevice"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BondedDeviceModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/BondedDevices/GetBondedDevice": {
      "get": {
        "tags": [
          "BondedDevice"
        ],
        "parameters": [
          {
            "name": "bondedDeviceId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BondedDeviceModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/BondedDevices/GetTelemetry": {
      "get": {
        "tags": [
          "BondedDevice"
        ],
        "parameters": [
          {
            "name": "bondedDeviceId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BondedDeviceTelemetryModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/BrewZillas/GetBrewZillas": {
      "get": {
        "tags": [
          "BrewZilla"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BrewZillaModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/BrewZillas/GetBrewZilla": {
      "get": {
        "tags": [
          "BrewZilla"
        ],
        "parameters": [
          {
            "name": "brewZillaId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrewZillaModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/BrewZillas/SetTargetTemperature": {
      "post": {
        "tags": [
          "BrewZilla"
        ],
        "parameters": [
          {
            "name": "brewZillaId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "target",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/BrewZillas/SetHeatingEnabled": {
      "post": {
        "tags": [
          "BrewZilla"
        ],
        "parameters": [
          {
            "name": "brewZillaId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/BrewZillas/SetHeatingUtilisation": {
      "post": {
        "tags": [
          "BrewZilla"
        ],
        "parameters": [
          {
            "name": "brewZillaId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "utilisation",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/BrewZillas/SetPumpEnabled": {
      "post": {
        "tags": [
          "BrewZilla"
        ],
        "parameters": [
          {
            "name": "brewZillaId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/BrewZillas/SetPumpUtilisation": {
      "post": {
        "tags": [
          "BrewZilla"
        ],
        "parameters": [
          {
            "name": "brewZillaId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "utilisation",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/BrewZillas/SetPIDEnabled": {
      "post": {
        "tags": [
          "BrewZilla"
        ],
        "parameters": [
          {
            "name": "brewZillaId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/BrewZillas/SetPID": {
      "post": {
        "tags": [
          "BrewZilla"
        ],
        "parameters": [
          {
            "name": "brewZillaId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "p",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "i",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "d",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/BrewZillas/GetTelemetry": {
      "get": {
        "tags": [
          "BrewZilla"
        ],
        "parameters": [
          {
            "name": "brewZillaId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "profileSessionId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BrewZillaTelemetryModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/CanFillers/GetCanFillers": {
      "get": {
        "tags": [
          "CanFiller"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CanFillerModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/CanFillers/GetCanFiller": {
      "get": {
        "tags": [
          "CanFiller"
        ],
        "parameters": [
          {
            "name": "canFillerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CanFillerModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/CanFillers/GetTelemetry": {
      "get": {
        "tags": [
          "CanFiller"
        ],
        "parameters": [
          {
            "name": "canFillerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CanFillerTelemetryModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ExternalDevices/GetAll": {
      "get": {
        "tags": [
          "ExternalDevice"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExternalDeviceModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ExternalDevices/Get": {
      "get": {
        "tags": [
          "ExternalDevice"
        ],
        "parameters": [
          {
            "name": "deviceId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalDeviceModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/ExternalDevices/GetTelemetry": {
      "get": {
        "tags": [
          "ExternalDevice"
        ],
        "parameters": [
          {
            "name": "deviceId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExternalDeviceTelemetryModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ExternalDevices/Telemetry": {
      "post": {
        "tags": [
          "ExternalDevice"
        ],
        "parameters": [
          {
            "name": "deviceId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/FermentationChambers/GetFermentationChambers": {
      "get": {
        "tags": [
          "FermentationChamber"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FermentationChamberModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/FermentationChambers/GetFermentationChamber": {
      "get": {
        "tags": [
          "FermentationChamber"
        ],
        "parameters": [
          {
            "name": "fermentationChamberId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FermentationChamberModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/FermentationChambers/SetTargetTemperature": {
      "post": {
        "tags": [
          "FermentationChamber"
        ],
        "parameters": [
          {
            "name": "fermentationChamberId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "target",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/FermentationChambers/SetPIDEnabled": {
      "post": {
        "tags": [
          "FermentationChamber"
        ],
        "parameters": [
          {
            "name": "fermentationChamberId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/FermentationChambers/SetPID": {
      "post": {
        "tags": [
          "FermentationChamber"
        ],
        "parameters": [
          {
            "name": "fermentationChamberId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "p",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "i",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "d",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/FermentationChambers/GetTelemetry": {
      "get": {
        "tags": [
          "FermentationChamber"
        ],
        "parameters": [
          {
            "name": "fermentationChamberId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "profileSessionId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FermentationChamberTelemetryModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Hydrometers/GetHydrometers": {
      "get": {
        "tags": [
          "Hydrometer"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HydrometerModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Hydrometers/GetHydrometer": {
      "get": {
        "tags": [
          "Hydrometer"
        ],
        "parameters": [
          {
            "name": "hydrometerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HydrometerModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/Hydrometers/GetTelemetry": {
      "get": {
        "tags": [
          "Hydrometer"
        ],
        "parameters": [
          {
            "name": "hydrometerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "profileSessionId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HydrometerTelemetryModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Profiles/GetProfiles": {
      "get": {
        "tags": [
          "Profile"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfileModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Profiles/GetProfile": {
      "get": {
        "tags": [
          "Profile"
        ],
        "parameters": [
          {
            "name": "profileId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/ProfileTypes/GetAll": {
      "get": {
        "tags": [
          "ProfileType"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfileModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ProfileTypes/Get": {
      "get": {
        "tags": [
          "ProfileType"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileTypeModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/Stills/GetStills": {
      "get": {
        "tags": [
          "Still"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StillModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Stills/GetStill": {
      "get": {
        "tags": [
          "Still"
        ],
        "parameters": [
          {
            "name": "stillId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StillModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/Stills/SetTargetTemperature": {
      "post": {
        "tags": [
          "Still"
        ],
        "parameters": [
          {
            "name": "stillId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "target",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/Stills/SetHeatingEnabled": {
      "post": {
        "tags": [
          "Still"
        ],
        "parameters": [
          {
            "name": "stillId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/Stills/SetHeatingUtilisation": {
      "post": {
        "tags": [
          "Still"
        ],
        "parameters": [
          {
            "name": "stillId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "utilisation",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/Stills/SetPumpEnabled": {
      "post": {
        "tags": [
          "Still"
        ],
        "parameters": [
          {
            "name": "stillId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/Stills/SetPumpUtilisation": {
      "post": {
        "tags": [
          "Still"
        ],
        "parameters": [
          {
            "name": "stillId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "utilisation",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/Stills/SetPIDEnabled": {
      "post": {
        "tags": [
          "Still"
        ],
        "parameters": [
          {
            "name": "stillId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/Stills/SetPID": {
      "post": {
        "tags": [
          "Still"
        ],
        "parameters": [
          {
            "name": "stillId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "p",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "i",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "d",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/Stills/GetTelemetry": {
      "get": {
        "tags": [
          "Still"
        ],
        "parameters": [
          {
            "name": "stillId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "profileSessionId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StillTelemetryModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/TemperatureControllers/GetTemperatureControllers": {
      "get": {
        "tags": [
          "TemperatureController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TemperatureControllerModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/TemperatureControllers/GetTemperatureController": {
      "get": {
        "tags": [
          "TemperatureController"
        ],
        "parameters": [
          {
            "name": "temperatureControllerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemperatureControllerModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/TemperatureControllers/SetTargetTemperature": {
      "post": {
        "tags": [
          "TemperatureController"
        ],
        "parameters": [
          {
            "name": "temperatureControllerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "target",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/TemperatureControllers/SetPIDEnabled": {
      "post": {
        "tags": [
          "TemperatureController"
        ],
        "parameters": [
          {
            "name": "temperatureControllerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/TemperatureControllers/SetPID": {
      "post": {
        "tags": [
          "TemperatureController"
        ],
        "parameters": [
          {
            "name": "temperatureControllerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "p",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "i",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "d",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/TemperatureControllers/GetTelemetry": {
      "get": {
        "tags": [
          "TemperatureController"
        ],
        "parameters": [
          {
            "name": "temperatureControllerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "profileSessionId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TemperatureControllerTelemetryModel"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AmountTypes": {
        "enum": [
          "Weight",
          "Volume",
          "Units"
        ],
        "type": "string"
      },
      "BondedDeviceModel": {
        "required": [
          "deviceType",
          "macAddress",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "macAddress": {
            "minLength": 1,
            "type": "string"
          },
          "deviceType": {
            "$ref": "#/components/schemas/DeviceTypes"
          },
          "active": {
            "type": "boolean"
          },
          "disabled": {
            "type": "boolean"
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "connectionState": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "lastActivityTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "firmwareVersion": {
            "type": "string",
            "nullable": true
          },
          "isLatestFirmware": {
            "type": "boolean"
          },
          "activeProfileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileStepId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileSession": {
            "$ref": "#/components/schemas/ProfileSessionStatusModel"
          },
          "telemetry": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BondedDeviceTelemetryModel"
            },
            "nullable": true
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "battery": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "BondedDeviceTelemetryModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "rowKey": {
            "type": "string",
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "macAddress": {
            "type": "string",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "battery": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "BrewZillaModel": {
        "required": [
          "deviceType",
          "macAddress",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "macAddress": {
            "minLength": 1,
            "type": "string"
          },
          "deviceType": {
            "$ref": "#/components/schemas/DeviceTypes"
          },
          "active": {
            "type": "boolean"
          },
          "disabled": {
            "type": "boolean"
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "connectionState": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "lastActivityTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "firmwareVersion": {
            "type": "string",
            "nullable": true
          },
          "isLatestFirmware": {
            "type": "boolean"
          },
          "activeProfileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileStepId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileSession": {
            "$ref": "#/components/schemas/ProfileSessionStatusModel"
          },
          "customerUse": {
            "type": "string",
            "nullable": true
          },
          "telemetryFrequency": {
            "type": "integer",
            "format": "int32"
          },
          "compressorDelay": {
            "maximum": 10,
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "modeSwitchDelay": {
            "maximum": 30,
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "coolingHysteresis": {
            "maximum": 10,
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "profileSessions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileSessionModel"
            },
            "nullable": true
          },
          "betaUpdates": {
            "type": "boolean"
          },
          "bluetoothEnabled": {
            "type": "boolean"
          },
          "graphZoomLevel": {
            "type": "number",
            "format": "double"
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "targetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalRunTime": {
            "type": "number",
            "format": "double"
          },
          "coolingEnabled": {
            "type": "boolean"
          },
          "coolingRunTime": {
            "type": "number",
            "format": "double"
          },
          "coolingStarts": {
            "type": "number",
            "format": "double"
          },
          "heatingEnabled": {
            "type": "boolean"
          },
          "heatingRunTime": {
            "type": "number",
            "format": "double"
          },
          "heatingStarts": {
            "type": "number",
            "format": "double"
          },
          "heatingUtilisation": {
            "type": "number",
            "format": "double"
          },
          "highTempAlarm": {
            "type": "number",
            "format": "double"
          },
          "lowTempAlarm": {
            "type": "number",
            "format": "double"
          },
          "ntcBeta": {
            "type": "number",
            "format": "double"
          },
          "ntcRefResistance": {
            "type": "number",
            "format": "double"
          },
          "ntcRefTemperature": {
            "type": "number",
            "format": "double"
          },
          "pidCycleTime": {
            "type": "number",
            "format": "double"
          },
          "pidEnabled": {
            "type": "boolean"
          },
          "pidProportional": {
            "type": "number",
            "format": "double"
          },
          "pidIntegral": {
            "type": "number",
            "format": "double"
          },
          "pidDerivative": {
            "type": "number",
            "format": "double"
          },
          "sensorDifferential": {
            "type": "number",
            "format": "double"
          },
          "sensorTimeout": {
            "type": "number",
            "format": "double"
          },
          "showGraph": {
            "type": "boolean"
          },
          "soundsEnabled": {
            "type": "boolean"
          },
          "tempUnit": {
            "type": "string",
            "nullable": true
          },
          "useInternalSensor": {
            "type": "boolean"
          },
          "controlDeviceType": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceMacAddress": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "heatingHysteresis": {
            "maximum": 10,
            "minimum": 0.1,
            "type": "number",
            "format": "double"
          },
          "telemetry": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BrewZillaTelemetryModel"
            },
            "nullable": true
          },
          "auxillaryRunTime": {
            "type": "number",
            "format": "double"
          },
          "auxillaryStarts": {
            "type": "number",
            "format": "double"
          },
          "pumpEnabled": {
            "type": "boolean"
          },
          "pumpUtilisation": {
            "type": "number",
            "format": "double"
          },
          "distillationMode": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BrewZillaTelemetryModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "rowKey": {
            "type": "string",
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "macAddress": {
            "type": "string",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "controlDeviceType": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceMacAddress": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "targetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalRunTime": {
            "type": "number",
            "format": "double"
          },
          "heatingRunTime": {
            "type": "number",
            "format": "double"
          },
          "heatingStarts": {
            "type": "number",
            "format": "double"
          },
          "auxillaryRunTime": {
            "type": "number",
            "format": "double"
          },
          "auxillaryStarts": {
            "type": "number",
            "format": "double"
          },
          "profileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "profileStepId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "profileSessionStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "profileSessionTime": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "profileStepProgress": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CanFillerModel": {
        "required": [
          "deviceType",
          "macAddress",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "macAddress": {
            "minLength": 1,
            "type": "string"
          },
          "deviceType": {
            "$ref": "#/components/schemas/DeviceTypes"
          },
          "active": {
            "type": "boolean"
          },
          "disabled": {
            "type": "boolean"
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "connectionState": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "lastActivityTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "firmwareVersion": {
            "type": "string",
            "nullable": true
          },
          "isLatestFirmware": {
            "type": "boolean"
          },
          "activeProfileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileStepId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileSession": {
            "$ref": "#/components/schemas/ProfileSessionStatusModel"
          },
          "soundsEnabled": {
            "type": "boolean"
          },
          "emptyPressure": {
            "type": "number",
            "format": "double"
          },
          "calibrationFactor": {
            "type": "number",
            "format": "double"
          },
          "minFillRate": {
            "type": "number",
            "format": "double"
          },
          "fillTimeout": {
            "type": "number",
            "format": "double"
          },
          "temperatureOffset": {
            "type": "number",
            "format": "double"
          },
          "fillPresets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FillPresetModel"
            },
            "nullable": true
          },
          "totalFillCount": {
            "type": "integer",
            "format": "int32"
          },
          "totalFailedCount": {
            "type": "integer",
            "format": "int32"
          },
          "lastFillSession": {
            "$ref": "#/components/schemas/FillSessionModel"
          }
        },
        "additionalProperties": false
      },
      "CanFillerTelemetryModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "rowKey": {
            "type": "string",
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "macAddress": {
            "type": "string",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "success": {
            "type": "boolean"
          },
          "totalFills": {
            "type": "integer",
            "format": "int32"
          },
          "totalFailedFills": {
            "type": "integer",
            "format": "int32"
          },
          "fillTime": {
            "type": "number",
            "format": "double"
          },
          "temperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeviceTypes": {
        "enum": [
          "FermentationChamber",
          "TemperatureController",
          "Hydrometer",
          "GrainWeigh",
          "BrewZilla",
          "CanFiller",
          "GlycolChiller",
          "Still",
          "BLETemperature",
          "BLEHumidity",
          "BLETempHumidity",
          "BLEPressure",
          "External",
          "Fridge",
          "GrainWeighDevice",
          "Unknown"
        ],
        "type": "string"
      },
      "DeviceTypesNullable": {
        "enum": [
          "FermentationChamber",
          "TemperatureController",
          "Hydrometer",
          "GrainWeigh",
          "BrewZilla",
          "CanFiller",
          "GlycolChiller",
          "Still",
          "BLETemperature",
          "BLEHumidity",
          "BLETempHumidity",
          "BLEPressure",
          "External",
          "Fridge",
          "GrainWeighDevice",
          "Unknown",
          null
        ],
        "type": "string",
        "nullable": true
      },
      "ExternalDeviceModel": {
        "required": [
          "deviceType",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "deviceType": {
            "$ref": "#/components/schemas/DeviceTypes"
          },
          "active": {
            "type": "boolean"
          },
          "disabled": {
            "type": "boolean"
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "connectionState": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "lastActivityTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "firmwareVersion": {
            "type": "string",
            "nullable": true
          },
          "isLatestFirmware": {
            "type": "boolean"
          },
          "activeProfileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileStepId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileSession": {
            "$ref": "#/components/schemas/ProfileSessionStatusModel"
          },
          "macAddress": {
            "type": "string",
            "nullable": true
          },
          "telemetry": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalDeviceTelemetryModel"
            },
            "nullable": true
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "gravity": {
            "type": "number",
            "format": "double"
          },
          "pressure": {
            "type": "number",
            "format": "double"
          },
          "battery": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ExternalDeviceTelemetryModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "rowKey": {
            "type": "string",
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "macAddress": {
            "type": "string",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "gravity": {
            "type": "number",
            "format": "double"
          },
          "pressure": {
            "type": "number",
            "format": "double"
          },
          "battery": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "FermentationChamberModel": {
        "required": [
          "customerUse",
          "deviceType",
          "macAddress",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "macAddress": {
            "minLength": 1,
            "type": "string"
          },
          "deviceType": {
            "$ref": "#/components/schemas/DeviceTypes"
          },
          "active": {
            "type": "boolean"
          },
          "disabled": {
            "type": "boolean"
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "connectionState": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "lastActivityTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "firmwareVersion": {
            "type": "string",
            "nullable": true
          },
          "isLatestFirmware": {
            "type": "boolean"
          },
          "activeProfileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileStepId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileSession": {
            "$ref": "#/components/schemas/ProfileSessionStatusModel"
          },
          "profileSessions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileSessionModel"
            },
            "nullable": true
          },
          "betaUpdates": {
            "type": "boolean"
          },
          "bluetoothEnabled": {
            "type": "boolean"
          },
          "graphZoomLevel": {
            "type": "number",
            "format": "double"
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "targetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalRunTime": {
            "type": "number",
            "format": "double"
          },
          "coolingEnabled": {
            "type": "boolean"
          },
          "coolingRunTime": {
            "type": "number",
            "format": "double"
          },
          "coolingStarts": {
            "type": "number",
            "format": "double"
          },
          "heatingEnabled": {
            "type": "boolean"
          },
          "heatingRunTime": {
            "type": "number",
            "format": "double"
          },
          "heatingStarts": {
            "type": "number",
            "format": "double"
          },
          "heatingUtilisation": {
            "type": "number",
            "format": "double"
          },
          "highTempAlarm": {
            "type": "number",
            "format": "double"
          },
          "lowTempAlarm": {
            "type": "number",
            "format": "double"
          },
          "ntcBeta": {
            "type": "number",
            "format": "double"
          },
          "ntcRefResistance": {
            "type": "number",
            "format": "double"
          },
          "ntcRefTemperature": {
            "type": "number",
            "format": "double"
          },
          "pidCycleTime": {
            "type": "number",
            "format": "double"
          },
          "pidEnabled": {
            "type": "boolean"
          },
          "pidProportional": {
            "type": "number",
            "format": "double"
          },
          "pidIntegral": {
            "type": "number",
            "format": "double"
          },
          "pidDerivative": {
            "type": "number",
            "format": "double"
          },
          "sensorDifferential": {
            "type": "number",
            "format": "double"
          },
          "sensorTimeout": {
            "type": "number",
            "format": "double"
          },
          "showGraph": {
            "type": "boolean"
          },
          "soundsEnabled": {
            "type": "boolean"
          },
          "tempUnit": {
            "type": "string",
            "nullable": true
          },
          "useInternalSensor": {
            "type": "boolean"
          },
          "controlDeviceType": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceMacAddress": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "customerUse": {
            "minLength": 1,
            "type": "string"
          },
          "telemetryFrequency": {
            "maximum": 14440,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "compressorDelay": {
            "maximum": 10,
            "minimum": 2,
            "type": "number",
            "format": "double"
          },
          "modeSwitchDelay": {
            "maximum": 30,
            "minimum": 2,
            "type": "number",
            "format": "double"
          },
          "coolingHysteresis": {
            "maximum": 10,
            "minimum": 0.5,
            "type": "number",
            "format": "double"
          },
          "heatingHysteresis": {
            "maximum": 10,
            "minimum": 0.1,
            "type": "number",
            "format": "double"
          },
          "telemetry": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FermentationChamberTelemetryModel"
            },
            "nullable": true
          },
          "compressorRunTime": {
            "type": "number",
            "format": "double"
          },
          "compressorStarts": {
            "type": "number",
            "format": "double"
          },
          "auxillaryRunTime": {
            "type": "number",
            "format": "double"
          },
          "auxillaryStarts": {
            "type": "number",
            "format": "double"
          },
          "fanEnabled": {
            "type": "boolean"
          },
          "lightEnabled": {
            "$ref": "#/components/schemas/ToggleStates"
          }
        },
        "additionalProperties": false
      },
      "FermentationChamberTelemetryModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "rowKey": {
            "type": "string",
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "macAddress": {
            "type": "string",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "controlDeviceType": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceMacAddress": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "targetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalRunTime": {
            "type": "number",
            "format": "double"
          },
          "compressorRunTime": {
            "type": "number",
            "format": "double"
          },
          "compressorStarts": {
            "type": "number",
            "format": "double"
          },
          "heatingRunTime": {
            "type": "number",
            "format": "double"
          },
          "heatingStarts": {
            "type": "number",
            "format": "double"
          },
          "auxillaryRunTime": {
            "type": "number",
            "format": "double"
          },
          "auxillaryStarts": {
            "type": "number",
            "format": "double"
          },
          "profileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "profileStepId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "profileSessionStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "profileSessionTime": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "profileStepProgress": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FillPresetModel": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "purgeTime": {
            "type": "number",
            "format": "double"
          },
          "waitTime": {
            "type": "number",
            "format": "double"
          },
          "fillHeight": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "FillSessionModel": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fillCount": {
            "type": "integer",
            "format": "int32"
          },
          "failedCount": {
            "type": "integer",
            "format": "int32"
          },
          "sessionTimeMins": {
            "type": "number",
            "format": "double"
          },
          "cansPerMinute": {
            "type": "number",
            "format": "double"
          },
          "avgFillTime": {
            "type": "number",
            "format": "double"
          },
          "avgTemperature": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "HydrometerModel": {
        "required": [
          "deviceType",
          "macAddress",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "macAddress": {
            "minLength": 1,
            "type": "string"
          },
          "deviceType": {
            "$ref": "#/components/schemas/DeviceTypes"
          },
          "active": {
            "type": "boolean"
          },
          "disabled": {
            "type": "boolean"
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "connectionState": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "lastActivityTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "firmwareVersion": {
            "type": "string",
            "nullable": true
          },
          "isLatestFirmware": {
            "type": "boolean"
          },
          "activeProfileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileStepId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileSession": {
            "$ref": "#/components/schemas/ProfileSessionStatusModel"
          },
          "telemetry": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HydrometerTelemetryModel"
            },
            "nullable": true
          },
          "pairedDeviceType": {
            "$ref": "#/components/schemas/DeviceTypesNullable"
          },
          "pairedDeviceId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "gravity": {
            "type": "number",
            "format": "double"
          },
          "gravityVelocity": {
            "type": "number",
            "format": "double"
          },
          "battery": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "HydrometerTelemetryModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "rowKey": {
            "type": "string",
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "macAddress": {
            "type": "string",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "gravity": {
            "type": "number",
            "format": "double"
          },
          "gravityVelocity": {
            "type": "number",
            "format": "double"
          },
          "battery": {
            "type": "number",
            "format": "double"
          },
          "version": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileAlertModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "alertText": {
            "type": "string",
            "nullable": true
          },
          "trigger": {
            "$ref": "#/components/schemas/ProfileAlertTriggers"
          },
          "operator": {
            "$ref": "#/components/schemas/ProfileValueOperatorsNullable"
          },
          "temperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "gravity": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "profileId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "ProfileAlertTriggers": {
        "enum": [
          "StepStart",
          "StepEnd",
          "Temperature",
          "Gravity",
          "GravityVelocity",
          "Duration"
        ],
        "type": "string"
      },
      "ProfileModel": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "public": {
            "type": "boolean"
          },
          "profileName": {
            "type": "string",
            "nullable": true
          },
          "rating": {
            "type": "number",
            "format": "double"
          },
          "ratingCount": {
            "type": "integer",
            "format": "int32"
          },
          "ratingScore": {
            "type": "number",
            "format": "double"
          },
          "copyCount": {
            "type": "number",
            "format": "double"
          },
          "viewCount": {
            "type": "number",
            "format": "double"
          },
          "profileTypeId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "alerts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileAlertModel"
            },
            "nullable": true
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileStepModel"
            },
            "nullable": true
          },
          "profileSessions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileSessionModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileSessionModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "profileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "profile": {
            "$ref": "#/components/schemas/ProfileModel"
          },
          "brewZillaId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "fermentationChamberId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "hydrometerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "stillId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "temperatureControllerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "originalGravity": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "finalGravity": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "yeastId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "yeast": {
            "$ref": "#/components/schemas/YeastModel"
          },
          "sentAlerts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileAlertModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileSessionStatusModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "profileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "profile": {
            "$ref": "#/components/schemas/ProfileModel"
          },
          "brewZillaId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "fermentationChamberId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "hydrometerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "stillId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "temperatureControllerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "originalGravity": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "finalGravity": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "yeastId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "yeast": {
            "$ref": "#/components/schemas/YeastModel"
          },
          "sentAlerts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileAlertModel"
            },
            "nullable": true
          },
          "estimatedEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "profileLength": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "readOnly": true
          },
          "currentProfileTime": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "remainingProfileTime": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ProfileStepAlertModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "alertText": {
            "type": "string",
            "nullable": true
          },
          "trigger": {
            "$ref": "#/components/schemas/ProfileAlertTriggers"
          },
          "operator": {
            "$ref": "#/components/schemas/ProfileValueOperatorsNullable"
          },
          "temperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "gravity": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "length": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "profileStepId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "ProfileStepControlTypes": {
        "enum": [
          "Target",
          "Ramp",
          "FreeRise"
        ],
        "type": "string"
      },
      "ProfileStepDurationTypesNullable": {
        "enum": [
          "Start",
          "Temperature",
          "Gravity",
          "GravityVelocity",
          "Manual",
          null
        ],
        "type": "string",
        "nullable": true
      },
      "ProfileStepEndTypes": {
        "enum": [
          "Duration",
          "Temperature",
          "Gravity",
          "GravityVelocity",
          "Manual"
        ],
        "type": "string"
      },
      "ProfileStepModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "order": {
            "type": "integer",
            "format": "int32"
          },
          "controlType": {
            "$ref": "#/components/schemas/ProfileStepControlTypes"
          },
          "endType": {
            "$ref": "#/components/schemas/ProfileStepEndTypes"
          },
          "durationType": {
            "$ref": "#/components/schemas/ProfileStepDurationTypesNullable"
          },
          "operator": {
            "$ref": "#/components/schemas/ProfileValueOperatorsNullable"
          },
          "length": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "temperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "gravity": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "pumpEnabled": {
            "type": "boolean",
            "nullable": true
          },
          "pumpUtilisation": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "heatingUtilisation": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "pidEnabled": {
            "type": "boolean",
            "nullable": true
          },
          "sensorDifferential": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "profileId": {
            "type": "string",
            "format": "uuid"
          },
          "alerts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileStepAlertModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileTypeDeviceTypeModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "profileTypeId": {
            "type": "string",
            "format": "uuid"
          },
          "deviceType": {
            "$ref": "#/components/schemas/DeviceTypes"
          }
        },
        "additionalProperties": false
      },
      "ProfileTypeModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "minTemperature": {
            "type": "number",
            "format": "double"
          },
          "maxTemperature": {
            "type": "number",
            "format": "double"
          },
          "deviceTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileTypeDeviceTypeModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileValueOperatorsNullable": {
        "enum": [
          "Equals",
          "LessThan",
          "GreaterThan",
          null
        ],
        "type": "string",
        "nullable": true
      },
      "StillModel": {
        "required": [
          "deviceType",
          "macAddress",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "macAddress": {
            "minLength": 1,
            "type": "string"
          },
          "deviceType": {
            "$ref": "#/components/schemas/DeviceTypes"
          },
          "active": {
            "type": "boolean"
          },
          "disabled": {
            "type": "boolean"
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "connectionState": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "lastActivityTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "firmwareVersion": {
            "type": "string",
            "nullable": true
          },
          "isLatestFirmware": {
            "type": "boolean"
          },
          "activeProfileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileStepId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileSession": {
            "$ref": "#/components/schemas/ProfileSessionStatusModel"
          },
          "customerUse": {
            "type": "string",
            "nullable": true
          },
          "telemetryFrequency": {
            "type": "integer",
            "format": "int32"
          },
          "compressorDelay": {
            "maximum": 10,
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "modeSwitchDelay": {
            "maximum": 30,
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "coolingHysteresis": {
            "maximum": 10,
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "profileSessions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileSessionModel"
            },
            "nullable": true
          },
          "betaUpdates": {
            "type": "boolean"
          },
          "bluetoothEnabled": {
            "type": "boolean"
          },
          "graphZoomLevel": {
            "type": "number",
            "format": "double"
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "targetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalRunTime": {
            "type": "number",
            "format": "double"
          },
          "coolingEnabled": {
            "type": "boolean"
          },
          "coolingRunTime": {
            "type": "number",
            "format": "double"
          },
          "coolingStarts": {
            "type": "number",
            "format": "double"
          },
          "heatingEnabled": {
            "type": "boolean"
          },
          "heatingRunTime": {
            "type": "number",
            "format": "double"
          },
          "heatingStarts": {
            "type": "number",
            "format": "double"
          },
          "heatingUtilisation": {
            "type": "number",
            "format": "double"
          },
          "highTempAlarm": {
            "type": "number",
            "format": "double"
          },
          "lowTempAlarm": {
            "type": "number",
            "format": "double"
          },
          "ntcBeta": {
            "type": "number",
            "format": "double"
          },
          "ntcRefResistance": {
            "type": "number",
            "format": "double"
          },
          "ntcRefTemperature": {
            "type": "number",
            "format": "double"
          },
          "pidCycleTime": {
            "type": "number",
            "format": "double"
          },
          "pidEnabled": {
            "type": "boolean"
          },
          "pidProportional": {
            "type": "number",
            "format": "double"
          },
          "pidIntegral": {
            "type": "number",
            "format": "double"
          },
          "pidDerivative": {
            "type": "number",
            "format": "double"
          },
          "sensorDifferential": {
            "type": "number",
            "format": "double"
          },
          "sensorTimeout": {
            "type": "number",
            "format": "double"
          },
          "showGraph": {
            "type": "boolean"
          },
          "soundsEnabled": {
            "type": "boolean"
          },
          "tempUnit": {
            "type": "string",
            "nullable": true
          },
          "useInternalSensor": {
            "type": "boolean"
          },
          "controlDeviceType": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceMacAddress": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "heatingHysteresis": {
            "maximum": 10,
            "minimum": 0.1,
            "type": "number",
            "format": "double"
          },
          "telemetry": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StillTelemetryModel"
            },
            "nullable": true
          },
          "temperatureVapour": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "temperatureWash": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "rhc": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ethanol": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "power": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "abv": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "tempPerMin": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StillTelemetryModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "rowKey": {
            "type": "string",
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "macAddress": {
            "type": "string",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "controlDeviceType": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceMacAddress": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "temperatureVapour": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "temperatureWash": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "targetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "rhc": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ethanol": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "totalRunTime": {
            "type": "number",
            "format": "double"
          },
          "heatingRunTime": {
            "type": "number",
            "format": "double"
          },
          "heatingStarts": {
            "type": "number",
            "format": "double"
          },
          "power": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "abv": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "tempPerMin": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "profileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "profileStepId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "profileSessionStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "profileSessionTime": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "profileStepProgress": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TemperatureControllerModel": {
        "required": [
          "customerUse",
          "deviceType",
          "macAddress",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "macAddress": {
            "minLength": 1,
            "type": "string"
          },
          "deviceType": {
            "$ref": "#/components/schemas/DeviceTypes"
          },
          "active": {
            "type": "boolean"
          },
          "disabled": {
            "type": "boolean"
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "connectionState": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "lastActivityTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "firmwareVersion": {
            "type": "string",
            "nullable": true
          },
          "isLatestFirmware": {
            "type": "boolean"
          },
          "activeProfileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileStepId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "activeProfileSession": {
            "$ref": "#/components/schemas/ProfileSessionStatusModel"
          },
          "profileSessions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileSessionModel"
            },
            "nullable": true
          },
          "betaUpdates": {
            "type": "boolean"
          },
          "bluetoothEnabled": {
            "type": "boolean"
          },
          "graphZoomLevel": {
            "type": "number",
            "format": "double"
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "targetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalRunTime": {
            "type": "number",
            "format": "double"
          },
          "coolingEnabled": {
            "type": "boolean"
          },
          "coolingRunTime": {
            "type": "number",
            "format": "double"
          },
          "coolingStarts": {
            "type": "number",
            "format": "double"
          },
          "heatingEnabled": {
            "type": "boolean"
          },
          "heatingRunTime": {
            "type": "number",
            "format": "double"
          },
          "heatingStarts": {
            "type": "number",
            "format": "double"
          },
          "heatingUtilisation": {
            "type": "number",
            "format": "double"
          },
          "highTempAlarm": {
            "type": "number",
            "format": "double"
          },
          "lowTempAlarm": {
            "type": "number",
            "format": "double"
          },
          "ntcBeta": {
            "type": "number",
            "format": "double"
          },
          "ntcRefResistance": {
            "type": "number",
            "format": "double"
          },
          "ntcRefTemperature": {
            "type": "number",
            "format": "double"
          },
          "pidCycleTime": {
            "type": "number",
            "format": "double"
          },
          "pidEnabled": {
            "type": "boolean"
          },
          "pidProportional": {
            "type": "number",
            "format": "double"
          },
          "pidIntegral": {
            "type": "number",
            "format": "double"
          },
          "pidDerivative": {
            "type": "number",
            "format": "double"
          },
          "sensorDifferential": {
            "type": "number",
            "format": "double"
          },
          "sensorTimeout": {
            "type": "number",
            "format": "double"
          },
          "showGraph": {
            "type": "boolean"
          },
          "soundsEnabled": {
            "type": "boolean"
          },
          "tempUnit": {
            "type": "string",
            "nullable": true
          },
          "useInternalSensor": {
            "type": "boolean"
          },
          "controlDeviceType": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceMacAddress": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "customerUse": {
            "minLength": 1,
            "type": "string"
          },
          "telemetryFrequency": {
            "maximum": 14440,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "compressorDelay": {
            "maximum": 10,
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "modeSwitchDelay": {
            "maximum": 30,
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "coolingHysteresis": {
            "maximum": 10,
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "heatingHysteresis": {
            "maximum": 10,
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "telemetry": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemperatureControllerTelemetryModel"
            },
            "nullable": true
          },
          "minTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TemperatureControllerTelemetryModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "rowKey": {
            "type": "string",
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "macAddress": {
            "type": "string",
            "nullable": true
          },
          "rssi": {
            "type": "number",
            "format": "double"
          },
          "controlDeviceType": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceMacAddress": {
            "type": "string",
            "nullable": true
          },
          "controlDeviceTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "temperature": {
            "type": "number",
            "format": "double"
          },
          "targetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "minTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxTargetTemperature": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalRunTime": {
            "type": "number",
            "format": "double"
          },
          "coolingRunTime": {
            "type": "number",
            "format": "double"
          },
          "coolingStarts": {
            "type": "number",
            "format": "double"
          },
          "heatingRunTime": {
            "type": "number",
            "format": "double"
          },
          "heatingStarts": {
            "type": "number",
            "format": "double"
          },
          "profileId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "profileStepId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "profileSessionStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "profileSessionTime": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "profileStepProgress": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ToggleStates": {
        "enum": [
          "AlwaysOn",
          "AlwaysOff",
          "Automatic"
        ],
        "type": "string"
      },
      "YeastModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "format": "uuid"
          },
          "modifiedOn": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "productId": {
            "type": "string",
            "nullable": true
          },
          "laboratory": {
            "type": "string",
            "nullable": true
          },
          "supplier": {
            "type": "string",
            "nullable": true
          },
          "keglandProductCode": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "form": {
            "type": "string",
            "nullable": true
          },
          "minTemperature": {
            "type": "number",
            "format": "double"
          },
          "maxTemperature": {
            "type": "number",
            "format": "double"
          },
          "flocculation": {
            "type": "string",
            "nullable": true
          },
          "attenuation": {
            "type": "number",
            "format": "double"
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "bestFor": {
            "type": "string",
            "nullable": true
          },
          "maxReuse": {
            "type": "integer",
            "format": "int32"
          },
          "addToSecondary": {
            "type": "boolean"
          },
          "amountType": {
            "$ref": "#/components/schemas/AmountTypes"
          },
          "inventoryAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "archived": {
            "type": "boolean"
          },
          "stockLevel": {
            "type": "number",
            "format": "double"
          },
          "globalYeastId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "isGlobal": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "description": "Enter the Bearer Authorization string as following: `Bearer Generated-JWT`",
        "scheme": "Bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ]
}