{
  "swagger": "2.0",
  "info": {
    "version": "v1",
    "title": "Documentation of the MySirius API",
    "description": "<i>(last update 2026-04-29)</i><br/><br/>This documentation describes the REST API of MySirius to get informations, mesures, alarms, ... and to acknowledge or validate alarms.",
    "x-logo": {
      "url": "img/logo-app-2025.png"
    }
  },
  "host": "www.jri-mysirius.com",
  "basePath": "/webapi",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {
    "/v1/AckReasons": {
      "get": {
        "tags": [
          "AckReasons"
        ],
        "summary": "List all reasons",
        "description": "Returns the list of reasons usable in acknowledgement.",
        "operationId": "AckReasons_Get",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AckReason"
              }
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/WebHookUrl/measure": {
      "post": {
        "tags": [
          "Contracts"
        ],
        "summary": "New measures",
        "description": "Message sended for new measures",
        "operationId": "Contracts_Measures",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "data",
            "in": "body",
            "description": "Data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/WebHookMeasureData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/WebHookUrl/setPoint": {
      "post": {
        "tags": [
          "Contracts"
        ],
        "summary": "New setpoint",
        "description": "Message sended for new setpoint",
        "operationId": "Contracts_Measures",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "data",
            "in": "body",
            "description": "Data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/WebHookEnvironmentSetPointData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/WebHookUrl/configuration": {
      "post": {
        "tags": [
          "Contracts"
        ],
        "summary": "Monitored unit configuration changes",
        "description": "Message sended for monitored unit configuration changes",
        "operationId": "Contracts_MonitoredUnitChanges",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "data",
            "in": "body",
            "description": "Data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/WebHookConfigurationData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/WebHookUrl/alarmThresholdEnd": {
      "post": {
        "tags": [
          "Contracts"
        ],
        "summary": "End of threshold alarm",
        "description": "Message sended for end of threshold alarm",
        "operationId": "Contracts_AlarmThresholdEnd",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "data",
            "in": "body",
            "description": "Data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/WebHookAlarmThresholdEndData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/WebHookUrl/alarmTechnicalBegin": {
      "post": {
        "tags": [
          "Contracts"
        ],
        "summary": "New technical alarm",
        "description": "Message sended for new technical alarm",
        "operationId": "Contracts_AlarmTechnicalBegin",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "data",
            "in": "body",
            "description": "Data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/WebHookAlarmTechnicalBeginData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/WebHookUrl/alarmThresholdBegin": {
      "post": {
        "tags": [
          "Contracts"
        ],
        "summary": "New threshold alarm",
        "description": "Message sended for new threshold alarm",
        "operationId": "Contracts_AlarmThresholdBegin",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "data",
            "in": "body",
            "description": "Data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/WebHookAlarmThresholdBeginData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/Devices/{id}": {
      "get": {
        "tags": [
          "Devices"
        ],
        "summary": "Get a device by its id",
        "description": "Returns a device",
        "operationId": "Devices_GetById",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id of the device",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "List of fields separated by ',' (ex : fields=Alarms,Details)\r\n            <br />Available fields :\r\n            <ul><li>'Alarms' to get the alarms</li><li>'Details' to get all informations of the device (battery, radio level, ...)</li></ul>",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Device"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Devices": {
      "get": {
        "tags": [
          "Devices"
        ],
        "summary": "Get all devices",
        "description": "Returns the list of devices",
        "operationId": "Devices_GetAll",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "List of fields separated by ',' (ex : fields=Alarms,Details)\r\n            <br />Available fields :\r\n            <ul><li>'Alarms' to get the alarms</li><li>'Details' to get all informations of the device (battery, radio level, ...)</li></ul>",
            "required": false,
            "type": "string"
          },
          {
            "name": "state",
            "in": "query",
            "description": "State of device\r\n            <br />If state=InAlarm, the response contains only the device in alarm",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Device"
              }
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Devices/Validate": {
      "post": {
        "tags": [
          "Devices"
        ],
        "summary": "Validate technical alarms",
        "description": "Validate a list of alarm",
        "operationId": "ValidateList",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "alarms",
            "in": "body",
            "description": "Array of alarm id.",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "format": "int32",
                "type": "integer"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of validated alarm ids",
            "schema": {
              "type": "array",
              "items": {
                "format": "int32",
                "type": "integer"
              }
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Devices/Validate/{id}": {
      "post": {
        "tags": [
          "Devices"
        ],
        "summary": "Validate a technical alarm",
        "description": "Validate a technical alarm with its id",
        "operationId": "ValidateOne",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the alarm",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "Validated alarm id",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Foodcheck/Suppliers": {
      "get": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Get all suppliers",
        "description": "Returns the suppliers list",
        "operationId": "FoodCheck_GetAllSuppliers",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Suppliers",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/IdAndName"
              }
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "post": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Create a supplier",
        "description": "Create a new supplier",
        "operationId": "FoodCheck_CreateSupplier",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "body",
            "description": "New supplier name (max length 50)",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Created supplier",
            "schema": {
              "$ref": "#/definitions/IdAndName"
            }
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Foodcheck/Suppliers/{id}": {
      "get": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Get a supplier",
        "description": "Get a supplier by its id",
        "operationId": "FoodCheck_GetSupplierById",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Supplier id",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "Supplier",
            "schema": {
              "$ref": "#/definitions/IdAndName"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "put": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Update a supplier",
        "description": "Update the supplier",
        "operationId": "FoodCheck_UpdateSupplier",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Supplier id",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "name",
            "in": "body",
            "description": "New supplier name (max length 50)",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The updated supplier",
            "schema": {
              "$ref": "#/definitions/IdAndName"
            }
          },
          "400": {
            "description": "BadRequest"
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "delete": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Delete a supplier",
        "description": "Delete supplier",
        "operationId": "FoodCheck_DeleteSupplier",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Supplier id",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Foodcheck/Checklists/{id}": {
      "get": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Get items by checklist id",
        "description": "Get all items of a checklist",
        "operationId": "FoodCheck_GetControlByChecklistId",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Checklist id",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "items of the checklist",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FdckControl"
              }
            }
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Foodcheck/CorrectiveActions": {
      "get": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Get all corrective actions",
        "description": "Returns all corrective actions",
        "operationId": "FoodCheck_GetAllCorrectiveActions",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Corrective actions",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/IdAndName"
              }
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "post": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Create a corrective action",
        "description": "Create corrective action",
        "operationId": "FoodCheck_CreateCorrectiveAction",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "request",
            "in": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FoodcheckCorrectiveActionCreateUpdate"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Created corrective action",
            "schema": {
              "$ref": "#/definitions/IdAndName"
            }
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Foodcheck/ReasonNotApplicable": {
      "get": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Get all reason not applicable",
        "description": "Get all reason not applicable",
        "operationId": "FoodCheck_GetAllReasonNotApplicable",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "Reason not applicable",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/IdAndName"
              }
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "post": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Create a reason not applicable",
        "description": "Create reason not applicable",
        "operationId": "FoodCheck_CreateReasonNotApplicable",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "body",
            "description": "New reason not applicable label (max length 50)",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Reason not applicable created",
            "schema": {
              "$ref": "#/definitions/IdAndName"
            }
          },
          "400": {
            "description": "BadRequest"
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Foodcheck/CorrectiveActions/{id}": {
      "get": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Get a corrective action",
        "description": "Return a corrective action by its id",
        "operationId": "FoodCheck_GetCorrectiveActionById",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Corrective action id",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "Corrective action",
            "schema": {
              "$ref": "#/definitions/FdckCorrectiveAction"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "put": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Update corrective action",
        "description": "Update corrective action",
        "operationId": "FoodCheck_UpdateCorrectiveAction",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "corrective action id",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "request",
            "in": "body",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FoodcheckCorrectiveActionCreateUpdate"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated corrective action",
            "schema": {
              "$ref": "#/definitions/IdAndName"
            }
          },
          "400": {
            "description": "BadRequest"
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "delete": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Delete a corrective action",
        "description": "Delete the corrective action",
        "operationId": "FoodCheck_DeleteCorrectiveAction",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Corrective action id",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Foodcheck/ReasonNotApplicable/{id}": {
      "get": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Get a reason not applicable",
        "description": "Get the reason not applicable with id",
        "operationId": "FoodCheck_GetReasonNotApplicableById",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "reason not applicable id",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "The reason not applicable",
            "schema": {
              "$ref": "#/definitions/IdAndName"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "put": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Update reason not applicable",
        "description": "Update reason not applicable",
        "operationId": "FoodCheck_UpdateReasonNotApplicable",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Reason not applicable id",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "name",
            "in": "body",
            "description": "New label (max length 50)",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated reason not applicable",
            "schema": {
              "$ref": "#/definitions/IdAndName"
            }
          },
          "400": {
            "description": "BadRequest"
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "delete": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Delete reason not applicable",
        "description": "Delete reason not applicable",
        "operationId": "FoodCheck_DeleteReasonNotApplicable",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "reason not applicable id",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Foodcheck/Controls": {
      "get": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Get all controls by dates",
        "description": "Get all controls by dates",
        "operationId": "FoodCheck_GetControlByDates",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (utc or local timezone)",
            "required": true,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (utc or local timezone)",
            "required": true,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "Results of controls",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FdckControlResult"
              }
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Foodcheck/ChecklistDate": {
      "get": {
        "tags": [
          "FoodCheck"
        ],
        "summary": "Get checklist results by dates",
        "description": "Returns the completion of checklists for each date",
        "operationId": "FoodCheck_GetChecklistByDates",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (utc or local timezone)",
            "required": true,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (utc or local timezone)",
            "required": true,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "List of checklist results",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FdckChecklistDate"
              }
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/MeasuringPoints/{id}/Data": {
      "get": {
        "tags": [
          "MeasuringPoints"
        ],
        "summary": "Get graph data",
        "description": "Request to return data (measures, events, ...) for a measuring point and a period",
        "operationId": "MeasuringPoints_Get",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Measuring point id",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "List of fields separated by ',' (ex : fields=Measures,Events)\r\n            Available fields :\r\n            <ul><li>'Measures' to get the measures</li><li>'Events' to get the events</li><li>'Thresholds' to get thresholds</li></ul>",
            "required": true,
            "type": "string"
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date (utc or local timezone)",
            "required": true,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date (utc or local timezone)",
            "required": true,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GraphData"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/MonitoredUnits/{id}": {
      "get": {
        "tags": [
          "MonitoredUnits"
        ],
        "summary": "Get a monitored unit",
        "description": "Returns a monitored unit by its id",
        "operationId": "MonitoredUnits_GetById",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the monitored unit",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "fields",
            "in": "query",
            "description": "List of fields separated by ',' (ex : fields=Alarms,Config)\r\n            <br />Available fields :\r\n            <ul><li>'Alarms' to get the alarms</li><li>'Batches' to get the batches of the monitoring unit</li><li>'Area' to get the node are of the monitoring unit</li><li>'MeasuringSystem' to get the measuring system of the measuring points</li><li>'Config' to get the configuration of the measuring points</li><li>'Mobility' to get moblity data of the monitored unit</li></ul>",
            "required": false,
            "type": "string"
          },
          {
            "name": "specificDate",
            "in": "query",
            "description": "Specific date\r\n            <br />If specificDate != null, the response set the closest measure of the specific date into the field lastMeasure of the measuring point\r\n            <br />Note: the search is limited to +/- 4x datalogging period",
            "required": false,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MonitoredUnit"
              }
            }
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/MonitoredUnits/{id}/locations": {
      "get": {
        "tags": [
          "MonitoredUnits"
        ],
        "summary": "Get location history",
        "description": "<span class=\"min-version\">MySirius 5.0+</span> Returns location history for a monitored unit and a period",
        "operationId": "MonitoredUnits_GetLocationHistory",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Monitored unit Id",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "",
            "required": true,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "",
            "required": true,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocationInfos"
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "NotFound"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/MonitoredUnits": {
      "get": {
        "tags": [
          "MonitoredUnits"
        ],
        "summary": "Get all monitored units",
        "description": "Returns the list of monitored units",
        "operationId": "MonitoredUnits_GetAll",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "List of fields separated by ',' (ex : fields=Alarms,Config)\r\n            <br />Available fields :\r\n            <ul><li>'Alarms' to get the alarms</li><li>'Batches' to get the batches of the monitoring unit</li><li>'Area' to get the node area of the monitoring unit</li><li>'Config' to get the configuration of the measuring points</li><li>'MeasuringSystem' to get the measuring system of the measuring points</li><li>'Mobility' to get moblity data of the monitored unit</li></ul>",
            "required": false,
            "type": "string"
          },
          {
            "name": "state",
            "in": "query",
            "description": "State of monitoredUnit\r\n            <br />If state=InAlarm, the response contains only the monitored units in alarm",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter",
            "in": "query",
            "description": "<span class=\"min-version\">MySirius 5.0+</span>\r\n             List of filters (ex : filter=OnlyMobile) (available from version 5.1)\r\n             <br />Available filter :\r\n            <ul><li>'OnlyMobile' to get only the mobile monitored units</li></ul>",
            "required": false,
            "type": "string"
          },
          {
            "name": "specificDate",
            "in": "query",
            "description": "Specific date\r\n            <br />If specificDate != null, the response set the closest measure of the specific date into the field lastMeasure of the measuring point\r\n            <br />Note: the search is limited to +/- 4x datalogging period",
            "required": false,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MonitoredUnit"
              }
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/MonitoredUnits/{id}/Ack": {
      "post": {
        "tags": [
          "MonitoredUnits"
        ],
        "summary": "Acknowledge a monitored unit",
        "description": "Acknowledge a monitored unit in alarm by posting the acknowledgement informations for each alarm.",
        "operationId": "MonitoredUnits_AckMonitoredUnits",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the monitored unit",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "alarms",
            "in": "body",
            "description": "Array of alarms of the monitored units with acknowledgement informations",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AlarmThresholdAck"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "New alarm status of the monitored unit",
            "schema": {
              "$ref": "#/definitions/MonitoredUnitAlarmThresholdStatus"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/MonitoredUnits/{id}/Inhibate": {
      "post": {
        "tags": [
          "MonitoredUnits"
        ],
        "summary": "Inhibit a monitored unit",
        "description": "Inhibit a monitored unit",
        "operationId": "MonitoredUnits_Inhibate",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the monitored unit",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "New alarm status of the monitored unit",
            "schema": {
              "$ref": "#/definitions/MonitoredUnitAlarmThresholdStatus"
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "NotFound"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/MonitoredUnits/{id}/Uninhibate": {
      "post": {
        "tags": [
          "MonitoredUnits"
        ],
        "summary": "Activate a monitored unit",
        "description": "Activate a monitored unit",
        "operationId": "MonitoredUnits_Uninhibate",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the monitored unit",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "New alarm status of the monitored unit",
            "schema": {
              "$ref": "#/definitions/MonitoredUnitAlarmThresholdStatus"
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "NotFound"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/MonitoredUnits/{id}/LightConfig": {
      "post": {
        "tags": [
          "MonitoredUnits"
        ],
        "summary": "Light configuration of a monitored unit",
        "description": "Light configuration of a monitored unit, for changing datalogging period, thresholds...",
        "operationId": "MonitoredUnits_LightConfig",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the monitored unit",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "config",
            "in": "body",
            "description": "Configuration",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MonitoredUnitLightConfig"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "State of configuration",
            "schema": {
              "$ref": "#/definitions/LightConfigStatus"
            }
          },
          "400": {
            "description": "BadRequest"
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Profiles": {
      "get": {
        "tags": [
          "Profiles"
        ],
        "summary": "List all profiles",
        "description": "Returns the list of profiles.",
        "operationId": "Profiles_Get",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/IdAndName"
              }
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Statistics/AlarmThresholdAcknowledgment": {
      "get": {
        "tags": [
          "Statistics"
        ],
        "summary": "Threshold alarms",
        "description": "Returns threshold alarms and their acknowledgement duration, if any, as well as an acknowledgement duration counter",
        "operationId": "Statistics_GetThresholdAlarmsAckByDate",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date  (Minimum date : 10 days ago)",
            "required": true,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date",
            "required": true,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "Statistics",
            "schema": {
              "$ref": "#/definitions/AlarmThresholdAcknowledgmentStatistics"
            }
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Supervisors": {
      "get": {
        "tags": [
          "Supervisor"
        ],
        "summary": "List all supervisors",
        "description": "Returns the list of supervisors.",
        "operationId": "Supervisor_Get",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SupervisorForGet"
              }
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Supervisors/Update/{id}": {
      "put": {
        "tags": [
          "Supervisor"
        ],
        "summary": "Update a supervisor",
        "description": "Update a supervisor with this id",
        "operationId": "Update",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Supervisor ID or login (prefixed with '[login]')",
            "required": true,
            "type": "string"
          },
          {
            "name": "user",
            "in": "body",
            "description": "Supervisor to update",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SupervisorForUpdate"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated supervisor id",
            "schema": {
              "type": "string"
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "NotFound"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Supervisors/Create": {
      "post": {
        "tags": [
          "Supervisor"
        ],
        "summary": "Create a supervisor",
        "description": "Create a supervisor",
        "operationId": "Create",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "user",
            "in": "body",
            "description": "Supervisor to create",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SupervisorForCreate"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Created supervisor id",
            "schema": {
              "type": "string"
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "NotFound"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Supervisors/AddSupervisor": {
      "patch": {
        "tags": [
          "Supervisor"
        ],
        "summary": "Add a supervisor to a customer",
        "description": "Add a supervisor to a customer",
        "operationId": "Add",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "user",
            "in": "body",
            "description": "Supervisor to add",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SupervisorForAdd"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "NotFound"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Supervisors/Delete/{id}": {
      "delete": {
        "tags": [
          "Supervisor"
        ],
        "summary": "Delete a supervisor",
        "description": "Delete a user with this id",
        "operationId": "Delete",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Supervisor ID or login (prefixed with '[login]')",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Delete user id",
            "schema": {
              "type": "string"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Users": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "List all users",
        "description": "Returns the list of users.",
        "operationId": "User_Get",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UserForGet"
              }
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Users/Update/{id}": {
      "put": {
        "tags": [
          "User"
        ],
        "summary": "Update a user",
        "description": "Update a user with this id",
        "operationId": "Update",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "User ID or login (prefixed with '[login]')",
            "required": true,
            "type": "string"
          },
          {
            "name": "user",
            "in": "body",
            "description": "User to update",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UserForUpdate"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated user id",
            "schema": {
              "type": "string"
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "NotFound"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Users/Create": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Create a user",
        "description": "Create a user",
        "operationId": "Create",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "user",
            "in": "body",
            "description": "User to create",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UserForCreate"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Created user id",
            "schema": {
              "type": "string"
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "NotFound"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/Users/Delete/{id}": {
      "delete": {
        "tags": [
          "User"
        ],
        "summary": "Delete user",
        "description": "Delete a user with this id",
        "operationId": "Delete",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "User ID or login (prefixed with '[login]')",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Delete user id",
            "schema": {
              "type": "string"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/WebHooks": {
      "get": {
        "tags": [
          "WebHooks"
        ],
        "summary": "Get Configuration",
        "description": "<span class=\"min-version\">MySirius 2.2+</span> Get webhooks informations",
        "operationId": "Configure",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/WebHooksConfigData"
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/v1/WebHooks/Config": {
      "post": {
        "tags": [
          "WebHooks"
        ],
        "summary": "Set Configuration",
        "description": "<span class=\"min-version\">MySirius 2.2+</span> Configure webhooks informations",
        "operationId": "Configure",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "config",
            "in": "body",
            "description": "Webhooks configuration data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/WebHooksConfigData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webhooks configuration saved",
            "schema": {
              "type": "string"
            }
          },
          "401": {
            "description": "Invalid API Key"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    }
  },
  "definitions": {
    "AckReason": {
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "label": {
          "description": "Label of the reason",
          "type": "string"
        }
      }
    },
    "WebHookMeasureData": {
      "description": "Data for measures sended by webhook",
      "type": "object",
      "properties": {
        "appToken": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Application Token (if filled)",
          "type": "string"
        },
        "id": {
          "format": "int32",
          "description": "Measuring point ID",
          "type": "integer"
        },
        "isVirtual": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Is a virtual measuring point",
          "type": "boolean"
        },
        "measures": {
          "description": "Measures list",
          "type": "array",
          "items": {
            "$ref": "#/definitions/WebHookMeasures"
          }
        }
      }
    },
    "WebHookMeasures": {
      "description": "Data for a measure",
      "type": "object",
      "properties": {
        "date": {
          "format": "date-time",
          "description": "Measure date",
          "type": "string"
        },
        "value": {
          "format": "double",
          "description": "Measure value",
          "type": "number"
        },
        "unit": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Unit symbol of the measure",
          "type": "string"
        }
      }
    },
    "WebHookEnvironmentSetPointData": {
      "description": "Data sended by webhook for environment setpoint",
      "type": "object",
      "properties": {
        "appToken": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Application Token (if filled)",
          "type": "string"
        },
        "environment": {
          "$ref": "#/definitions/IdAndName",
          "description": "Environment"
        },
        "setPoint": {
          "format": "double",
          "description": "SetPoint",
          "type": "number"
        }
      }
    },
    "IdAndName": {
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "WebHookConfigurationData": {
      "description": "Data for monitored units changes sended by webhook",
      "type": "object",
      "properties": {
        "appToken": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Application Token (if filled)",
          "type": "string"
        },
        "operation": {
          "description": "Operation type: Create, Update or Delete",
          "type": "string"
        },
        "monitoredUnit": {
          "$ref": "#/definitions/WebHookMonitoredUnit",
          "description": "Monitored unit"
        }
      }
    },
    "WebHookMonitoredUnit": {
      "description": "Monitored unit informations",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Monitored unit ID",
          "type": "integer"
        },
        "name": {
          "description": "Monitored unit name",
          "type": "string"
        },
        "inventoryName": {
          "description": "Inventory name (optional)",
          "type": "string"
        },
        "measuringPoints": {
          "description": "Measuring points",
          "type": "array",
          "items": {
            "$ref": "#/definitions/WebHookMeasuringPoint"
          }
        }
      }
    },
    "WebHookMeasuringPoint": {
      "description": "Measuring point informations",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Measuring point ID",
          "type": "integer"
        },
        "name": {
          "description": "Measuring point name",
          "type": "string"
        },
        "unit": {
          "description": "Unit symbol of the measuring point",
          "type": "string"
        },
        "isVirtual": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Is a virtual measuring point",
          "type": "boolean"
        },
        "physicalMeasuringPointId": {
          "format": "int32",
          "description": "<span class=\"min-version\">MySirius 2.2+</span> ID of the linked physical measuring point (if it's a virtual measuring point)",
          "type": "integer"
        },
        "measuringSystem": {
          "$ref": "#/definitions/WebHookMeasuringSystem",
          "description": "Measuring system used by this measuring point"
        },
        "config": {
          "$ref": "#/definitions/WebHookConfig",
          "description": "Config of the measuring point"
        }
      }
    },
    "WebHookMeasuringSystem": {
      "description": "Measuring system used by this measuring point",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "unit": {
          "description": "Unit symbol of the measuring point",
          "type": "string"
        },
        "recorder": {
          "$ref": "#/definitions/WebHookRecorder",
          "description": "Recorder"
        },
        "probe": {
          "$ref": "#/definitions/WebHookProbe",
          "description": "Probe"
        }
      }
    },
    "WebHookConfig": {
      "description": "Config of the measuring point",
      "type": "object",
      "properties": {
        "dataloggingPeriodSec": {
          "format": "int32",
          "description": "Datalogging period (in seconds)",
          "type": "integer"
        },
        "dataloggingPeriodAlarmSec": {
          "format": "int32",
          "description": "Datalogging period in alarm (in seconds)",
          "type": "integer"
        },
        "startingType": {
          "description": "Starting Type",
          "enum": [
            "Immediate",
            "Dated",
            "ValueReached",
            "PushButton",
            "TouchPadAction",
            "OnOff_Channel_1_High",
            "OnOff_Channel_1_Low",
            "OnOff_Channel_2_High",
            "OnOff_Channel_2_Low",
            "OnOff_Channel_3_High",
            "OnOff_Channel_3_Low",
            "OnOff_Channel_4_High",
            "OnOff_Channel_4_Low",
            "Started_Dated",
            "Started_ValueReached"
          ],
          "type": "string"
        },
        "endingType": {
          "description": "Ending Type",
          "enum": [
            "NoEnd",
            "Dated",
            "NumberOfMeasures",
            "ValueReachedWithoutRestart",
            "ValueReachedButCanRestart",
            "TouchPadAction",
            "FullMemory",
            "Button",
            "Ended_Dated",
            "Ended_NumberOfMeasures",
            "Ended_ValueReachedWithoutRestart",
            "Ended_ValueReachedButCanRestart"
          ],
          "type": "string"
        },
        "startingInfo": {
          "description": "Starting informations",
          "type": "string"
        },
        "endingInfo": {
          "description": "Ending informations",
          "type": "string"
        },
        "thresholds": {
          "description": "Array of thresholds",
          "type": "array",
          "items": {
            "$ref": "#/definitions/WebHookThresholdConfig"
          }
        },
        "productProfile": {
          "$ref": "#/definitions/IdAndName",
          "description": "<span class=\"min-version\">MySirius 2.2+</span> ProductProfile (if it's a virtual measuring point)"
        }
      }
    },
    "WebHookRecorder": {
      "description": "Device",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/WebHookRecorderType",
          "description": "Type"
        },
        "serial": {
          "description": "Serial number",
          "type": "string"
        }
      }
    },
    "WebHookProbe": {
      "description": "Probe",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/WebHookProbeType",
          "description": "Type"
        },
        "serial": {
          "description": "Serial number",
          "type": "string"
        }
      }
    },
    "WebHookThresholdConfig": {
      "description": "Threshold",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "value": {
          "format": "double",
          "description": "Value",
          "type": "number"
        },
        "tempoSecondes": {
          "format": "int32",
          "description": "Delay (in seconds)",
          "type": "integer"
        },
        "type": {
          "$ref": "#/definitions/WebHookThresholdType",
          "description": "Type"
        },
        "isCritical": {
          "description": "Flag who indicates if the threshold is critical",
          "type": "boolean"
        },
        "isHigh": {
          "description": "Flag who indicates if it is a high (or a low) threshold",
          "type": "boolean"
        },
        "startDate": {
          "format": "date-time",
          "description": "Start Date of the threshold",
          "type": "string"
        },
        "endDate": {
          "format": "date-time",
          "description": "End Date of the threshold",
          "type": "string"
        }
      }
    },
    "WebHookRecorderType": {
      "description": "Device type",
      "type": "object",
      "properties": {
        "value": {
          "$ref": "#/definitions/DeviceType",
          "description": "Device type value"
        },
        "label": {
          "description": "Translated label of type",
          "type": "string"
        }
      }
    },
    "WebHookProbeType": {
      "description": "Probe type",
      "type": "object",
      "properties": {
        "value": {
          "$ref": "#/definitions/ProbeType",
          "description": "Probe type value"
        },
        "label": {
          "description": "Translated label of type",
          "type": "string"
        }
      }
    },
    "WebHookThresholdType": {
      "description": "Threshold type",
      "type": "object",
      "properties": {
        "value": {
          "description": "Threshold type",
          "enum": [
            "Continuous",
            "Accumulate",
            "Mkt",
            "Opening"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label of the threshold type",
          "type": "string"
        }
      }
    },
    "DeviceType": {
      "description": "Device type",
      "type": "object",
      "properties": {
        "value": {
          "enum": [
            "Unknown",
            "SpyRF_T",
            "SpyRF_Tplus",
            "SpyRF_TH",
            "SpyRF_U1",
            "SpyRF_U2",
            "SpyRF_N1",
            "SpyRF_N2",
            "SpyRF_C1",
            "SpyRF_C2",
            "SpyRF_TC1",
            "SpyRF_TC2",
            "SpyRF_Ref1",
            "SpyRF_Ref2",
            "SpyRF_RefAir",
            "SpyRF_MiniBlack",
            "SpyRF_MiniGreen",
            "SpyRF_Visu",
            "SpyRF_Relay",
            "SpyRF_Alarm",
            "SpyRF_Modem",
            "SpyIP_4V",
            "SpyIP_1V",
            "AccessPoint",
            "NanoSpy_T1",
            "NanoSpy_T2",
            "NanoSpy_T2_I",
            "NanoSpy_T3p",
            "NanoSpy_T3m",
            "NanoSpy_Ref",
            "NanoSpy_ModBus",
            "NanoSpy_BC",
            "NanoSpy_D",
            "NanoSpy_U",
            "NanoSpy_TH",
            "NanoSpy_Twin",
            "NanoSpy_Bridge",
            "NovaSpy_T",
            "NovaSpy_T2",
            "NovaSpy_T2_I",
            "NovaSpy_T3p",
            "NovaSpy_T3m",
            "NovaSpy_Ref",
            "NovaSpy_ModBus",
            "NovaSpy_D",
            "NovaSpy_U",
            "NovaSpy_TH",
            "NovaSpy_Twin",
            "NanoSpy_RelayAlarm",
            "NanoSpy_Modem",
            "NanoSpy_NanoCell",
            "NovaHub",
            "NovaCell",
            "Probe_Bench",
            "LoRaSpy_T0",
            "LoRaSpy_T1",
            "LoRaSpy_T2",
            "LoRaSpy_T2_I",
            "LoRaSpy_T3m",
            "LoRaSpy_T4",
            "LoRaSpy_Ref",
            "LoRaSpy_TH1",
            "LoRaSpy_D",
            "LoRaSpy_TC",
            "LoRaSpy_U",
            "LoraSpy_RelayAlarm",
            "LoRaSpy_Temp",
            "LoRaSpy_TempES",
            "LoRaSpy_TempPlus",
            "LoRaSpy_ModBus",
            "LoRaSpy_Gateway",
            "LoRaSpy_Objenious",
            "LoRaSpy_Proximus",
            "LoRaSpy_SwissCom",
            "LoRaSpy_Kpn",
            "LoRaSpy_Orange",
            "SpyLiberty_D",
            "Labguard_AccessPoint",
            "Labguard_Receiver",
            "Labguard_TransmitterEthernet",
            "Labguard_TransmitterRadio",
            "Labguard_MobiGuard_T",
            "Labguard_MobiGuard_TH",
            "BathAccessPoint"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label",
          "type": "string"
        }
      }
    },
    "ProbeType": {
      "description": "Probe type",
      "type": "object",
      "properties": {
        "value": {
          "enum": [
            "Unknown",
            "ProbePTC_interne",
            "ProbePTC_externe",
            "ProbePT100_externe",
            "ProbePT1000_externe",
            "Probe0_1volts",
            "Probe0_20mA",
            "Probe4_20mA",
            "ProbeTC",
            "ProbeNumT",
            "ProbeNumTHwhite",
            "ProbeNumTHambiant",
            "ProbeNumTHMetal",
            "ProbeNumT_low",
            "ProbeTOR",
            "ProbeComptage",
            "ProbeFrequence",
            "DigitalSensorEvolution_T",
            "DigitalSensorEvolution_T_low",
            "DigitalSensorEvolution_TH",
            "ProbeModBus",
            "U_PT100_800",
            "DigitalSensorEvolution_T_X2",
            "DigitalSensorEvolution_T_low_X2",
            "DigitalSensorEvolution_TH_X2",
            "DigitalSensorEvolution_T_high_X2",
            "DigitalSensorEvolution_T_ref_X2",
            "Labguard3Temperature_LC",
            "Labguard3Humidity_LC",
            "Labguard3DifferentialPressure",
            "Labguard3DryContactOut",
            "Labguard3Pt100_3wires",
            "Labguard3Voltage",
            "Labguard3Current",
            "Labguard3ThermoCoupleK",
            "Labguard3SpiPt100_3wires",
            "Labguard3DryContactIn",
            "Labguard3SpiPt100_4wires",
            "Labguard3HumidityTemperature_LC",
            "Labguard3MobiguardTemperature",
            "Labguard3MobiguardHumidity",
            "Labguard3VaisalaTemperature",
            "Labguard3VaisalaHumidity",
            "Labguard3ThermoCoupleT",
            "Labguard3Pt100_MC"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label",
          "type": "string"
        }
      }
    },
    "WebHookAlarmThresholdEndData": {
      "description": "Data sended by webhook for alarm threshold end",
      "type": "object",
      "properties": {
        "appToken": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Application Token (if filled)",
          "type": "string"
        },
        "measureValue": {
          "format": "double",
          "description": "Measure value",
          "type": "number"
        },
        "measureUnit": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Unit symbol of the measure",
          "type": "string"
        },
        "date": {
          "format": "date-time",
          "description": "Date of end alarm",
          "type": "string"
        },
        "monitoredUnit": {
          "$ref": "#/definitions/IdAndName",
          "description": "Monitored unit"
        },
        "measuringPoint": {
          "$ref": "#/definitions/IdAndName",
          "description": "Measuring point"
        }
      }
    },
    "WebHookAlarmTechnicalBeginData": {
      "description": "Data sended by webhook for alarm technical",
      "type": "object",
      "properties": {
        "appToken": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Application Token (if filled)",
          "type": "string"
        },
        "id": {
          "format": "int32",
          "description": "Id of technical alarm",
          "type": "integer"
        },
        "type": {
          "$ref": "#/definitions/WebHookAlarmTechnicalType",
          "description": "Alarm technical type"
        },
        "device": {
          "$ref": "#/definitions/IdAndName",
          "description": "Device in alarm"
        },
        "dateAlarm": {
          "format": "date-time",
          "description": "Date of alarm",
          "type": "string"
        }
      }
    },
    "WebHookAlarmTechnicalType": {
      "description": "Alarm type",
      "type": "object",
      "properties": {
        "value": {
          "description": "Technical alarm type",
          "enum": [
            "NoAlarm",
            "CommunicationProblem",
            "PowerFailure",
            "SpyRF_SensorProblem",
            "SpyRF_FullMemory",
            "SpyRF_NoMeasure",
            "SpyRF_RadioProblem",
            "SpyRF_LowBat",
            "SpyRF_SensorProblemV1",
            "SpyRF_SensorProblemV2",
            "SpyRF_SensorProblemV3",
            "SpyRF_SensorProblemV4",
            "NanoSpy_DefaultButton",
            "NanoSpy_DefaultGaugingTableV1Empty",
            "NanoSpy_DefaultGaugingTableV2Empty",
            "NanoSpy_DefaultDataFlash",
            "NanoSpy_DefaultLowBat",
            "NanoSpy_DefaultProbeReading",
            "LoRaSpy_DefaultParameters",
            "LoRaSpy_DefaultButton",
            "LoRaSpy_DefaultDataFlash",
            "LoRaSpy_DefaultLowBat",
            "LoRaSpy_DefaultGaugingTableV1Empty",
            "LoRaSpy_DefaultGaugingTableV2Empty",
            "LoRaSpy_DefaultProbeReadingV1",
            "LoRaSpy_DefaultProbeReadingV2",
            "Labguard_LowBat",
            "Labguard_ProbeLost",
            "LibertySpy_DefaultGaugingTable",
            "LibertySpy_DefaultLowBat",
            "LibertySpy_DefaultProbeReading",
            "Unknown",
            "PowerFailure_END"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label of type",
          "type": "string"
        }
      }
    },
    "WebHookAlarmThresholdBeginData": {
      "description": "Data sended by webhook for alarm threshold begin",
      "type": "object",
      "properties": {
        "appToken": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Application Token (if filled)",
          "type": "string"
        },
        "id": {
          "format": "int32",
          "description": "Alarm ID",
          "type": "integer"
        },
        "type": {
          "$ref": "#/definitions/WebHookAlarmType",
          "description": "Alarm type"
        },
        "monitoredUnit": {
          "$ref": "#/definitions/IdAndName",
          "description": "Monitored unit in alarm"
        },
        "measuringPoint": {
          "$ref": "#/definitions/IdAndName",
          "description": "Measuring point in alarm"
        },
        "threshold": {
          "$ref": "#/definitions/WebHookThreshold",
          "description": "Threshold triggered by alarm"
        },
        "dateAlarm": {
          "format": "date-time",
          "description": "Alarm date",
          "type": "string"
        },
        "measureValue": {
          "format": "double",
          "description": "Measure value",
          "type": "number"
        },
        "measureUnit": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Unit symbol of the measure",
          "type": "string"
        },
        "isVirtual": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Is a virtual measuring point",
          "type": "boolean"
        }
      }
    },
    "WebHookAlarmType": {
      "description": "Alarm type",
      "type": "object",
      "properties": {
        "value": {
          "description": "Alarm type",
          "enum": [
            "NoAlarm",
            "Continuous_High_Critical",
            "Continuous_Low_Critical",
            "Continuous_High_NotCritical",
            "Continuous_Low_NotCritical",
            "Accumulate_High_Critical",
            "Accumulate_Low_Critical",
            "Accumulate_High_NotCritical",
            "Accumulate_Low_NotCritical",
            "MKT_Critical",
            "MKT_NotCritical",
            "Opening_Critical",
            "Opening_NotCritical"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label of the alarm type",
          "type": "string"
        }
      }
    },
    "WebHookThreshold": {
      "description": "Threshold data",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Threshold ID",
          "type": "integer"
        },
        "value": {
          "format": "double",
          "description": "Threshold value",
          "type": "number"
        },
        "unit": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Unit symbol of the webhook",
          "type": "string"
        },
        "tempoSecondes": {
          "format": "int32",
          "description": "Threshold tempo (in seconds)",
          "type": "integer"
        },
        "type": {
          "$ref": "#/definitions/WebHookThresholdType",
          "description": "Threshold type"
        },
        "isCritical": {
          "description": "Flag is threshold critical",
          "type": "boolean"
        },
        "isHigh": {
          "description": "Flag is high threshold",
          "type": "boolean"
        }
      }
    },
    "Device": {
      "description": "Device (Recorder, Gateway, ...)",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/DeviceType",
          "description": "Type"
        },
        "serialNumber": {
          "description": "Serial number",
          "type": "string"
        },
        "inventoryNumber": {
          "description": "Inventory Number",
          "type": "string"
        },
        "dateLastMessage": {
          "format": "date-time",
          "description": "Date of last message",
          "type": "string"
        },
        "details": {
          "$ref": "#/definitions/DeviceDetails",
          "description": "Details of the device\r\n<br /><b>WARNING</b> : Only sent when field \"Details\" is requested"
        },
        "alarms": {
          "description": "List of technical alarms not validated\r\n<br /><b>WARNING</b> : Only sent when field \"Alarms\" is requested",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlarmTechnical"
          }
        },
        "role": {
          "description": "Role of the device",
          "enum": [
            "Recorder",
            "Modem",
            "Relay",
            "Alarm",
            "RelayAlarm",
            "Other"
          ],
          "type": "string"
        },
        "family": {
          "description": "Family of the device",
          "enum": [
            "SpyRF",
            "SpyIP",
            "AccessPoint",
            "NanoSpy",
            "LibertySpy",
            "LoRaSpy",
            "Labguard",
            "BathAccessPoint",
            "Bench",
            "Other"
          ],
          "type": "string"
        },
        "link": {
          "description": "Link to get this device",
          "type": "string"
        }
      }
    },
    "DeviceDetails": {
      "description": "Details of the device\r\n<br /><b>WARNING</b> : Only sent when field \"Details\" is requested",
      "type": "object",
      "properties": {
        "versionSoft": {
          "description": "Soft version\r\n<br />null if unknown or not applicable to the device",
          "type": "string"
        },
        "versionHard": {
          "description": "Hard version\r\n<br />null if unknown or not applicable to the device",
          "type": "string"
        },
        "model": {
          "description": "Model precision of the device\r\n<br />null if unknown or not applicable to the device",
          "type": "string"
        },
        "batteryLevel": {
          "format": "int32",
          "description": "Battery Level (percentage)\r\n<br />null if unknown or not applicable to the device",
          "type": "integer"
        },
        "batteryChangeDate": {
          "format": "date-time",
          "description": "Date of Battery Change\r\n<br />null if unknown or not applicable to the device",
          "type": "string"
        },
        "radioLevel": {
          "format": "int32",
          "description": "Radio Level (percentage)\r\n<br />null if unknown or not applicable to the device",
          "type": "integer"
        },
        "latitude": {
          "format": "double",
          "description": "Latitude\r\n<br />null if unknown or not applicable to the device",
          "type": "number"
        },
        "longitude": {
          "format": "double",
          "description": "Longitude\r\n<br />null if unknown or not applicable to the device",
          "type": "number"
        },
        "mappingPrecision": {
          "format": "int32",
          "description": "Mapping precision (in meters)\r\n<br />null if unknown or not applicable to the device",
          "type": "integer"
        },
        "sf": {
          "format": "int32",
          "description": "SF (LoRa)\r\n<br />null if unknown or not applicable to the device",
          "type": "integer"
        },
        "monitoredUnits": {
          "description": "Monitored units who use the device\r\n<br />Null if the device if not a recorder\r\n<br />Empty if the device is not used in a monitored unit",
          "type": "array",
          "items": {
            "$ref": "#/definitions/IdAndName"
          }
        }
      }
    },
    "AlarmTechnical": {
      "description": "Technical alarm",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "type": {
          "$ref": "#/definitions/AlarmTechnicalType",
          "description": "Type of alarm"
        },
        "dateAlarm": {
          "format": "date-time",
          "description": "Date of alarm",
          "type": "string"
        },
        "dateEndAction": {
          "format": "date-time",
          "description": "End date of the action",
          "type": "string"
        },
        "userAction": {
          "$ref": "#/definitions/IdAndName",
          "description": "User who made the action.<br />"
        },
        "status": {
          "$ref": "#/definitions/AlarmTechnicalStatus",
          "description": "Status of the alarm"
        },
        "validationLink": {
          "description": "Link to validation the alarm",
          "type": "string"
        }
      }
    },
    "AlarmTechnicalType": {
      "description": "Alarm type",
      "type": "object",
      "properties": {
        "value": {
          "enum": [
            "NoAlarm",
            "CommunicationProblem",
            "PowerFailure",
            "SpyRF_SensorProblem",
            "SpyRF_FullMemory",
            "SpyRF_NoMeasure",
            "SpyRF_RadioProblem",
            "SpyRF_LowBat",
            "SpyRF_SensorProblemV1",
            "SpyRF_SensorProblemV2",
            "SpyRF_SensorProblemV3",
            "SpyRF_SensorProblemV4",
            "NanoSpy_DefaultButton",
            "NanoSpy_DefaultGaugingTableV1Empty",
            "NanoSpy_DefaultGaugingTableV2Empty",
            "NanoSpy_DefaultDataFlash",
            "NanoSpy_DefaultLowBat",
            "NanoSpy_DefaultProbeReading",
            "LoRaSpy_DefaultParameters",
            "LoRaSpy_DefaultButton",
            "LoRaSpy_DefaultDataFlash",
            "LoRaSpy_DefaultLowBat",
            "LoRaSpy_DefaultGaugingTableV1Empty",
            "LoRaSpy_DefaultGaugingTableV2Empty",
            "LoRaSpy_DefaultProbeReadingV1",
            "LoRaSpy_DefaultProbeReadingV2",
            "Labguard_LowBat",
            "Labguard_ProbeLost",
            "LibertySpy_DefaultGaugingTable",
            "LibertySpy_DefaultLowBat",
            "LibertySpy_DefaultProbeReading",
            "Unknown",
            "PowerFailure_END"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label",
          "type": "string"
        }
      }
    },
    "AlarmTechnicalStatus": {
      "description": "Alarm status",
      "type": "object",
      "properties": {
        "value": {
          "enum": [
            "New",
            "Renew",
            "TakenInCharge",
            "Validated"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label",
          "type": "string"
        }
      }
    },
    "FdckControl": {
      "description": "Control",
      "type": "object",
      "properties": {
        "checklist": {
          "$ref": "#/definitions/IdAndName",
          "description": "Checklist"
        },
        "position": {
          "format": "int32",
          "description": "Position",
          "type": "integer"
        },
        "typeCheck": {
          "description": "Type of control",
          "type": "string"
        },
        "typeTarget": {
          "description": "Type of target",
          "type": "string"
        },
        "category": {
          "$ref": "#/definitions/IdAndName",
          "description": "Category of the product"
        },
        "product": {
          "$ref": "#/definitions/IdAndName",
          "description": "Product to control"
        },
        "enclosure": {
          "$ref": "#/definitions/IdAndName",
          "description": "Enclosure to control"
        }
      }
    },
    "FoodcheckCorrectiveActionCreateUpdate": {
      "description": "FdckControlResult",
      "type": "object",
      "properties": {
        "name": {
          "description": "Name",
          "type": "string"
        },
        "typeControl": {
          "description": "Type of control",
          "enum": [
            "Delivery",
            "Cooking",
            "HotHold",
            "ColdHold",
            "Cooling",
            "Reheat",
            "FoodStorage",
            "MonitoredUnitInAlarm",
            "ProbeCalibration"
          ],
          "type": "string"
        },
        "typeAction": {
          "description": "Type of action",
          "enum": [
            "Valid",
            "Continue",
            "CancelCheck",
            "CancelControl",
            "Invalid",
            "InvalidWithReason"
          ],
          "type": "string"
        }
      }
    },
    "FdckCorrectiveAction": {
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "typeControl": {
          "type": "string"
        },
        "typeAction": {
          "type": "string"
        }
      }
    },
    "FdckControlResult": {
      "description": "FdckControlResult",
      "type": "object",
      "properties": {
        "checklist": {
          "$ref": "#/definitions/IdAndName",
          "description": "Checklist"
        },
        "date": {
          "format": "date-time",
          "description": "Date where the control have been done",
          "type": "string"
        },
        "judgement": {
          "description": "Judgement",
          "type": "boolean"
        },
        "type": {
          "description": "Type",
          "type": "string"
        },
        "thresholdValueHigh": {
          "description": "ThresholdValueHigh",
          "type": "string"
        },
        "thresholdValueLow": {
          "description": "ThresholdValueLow",
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/IdAndName",
          "description": "User"
        },
        "correctiveActionName": {
          "description": "CorrectiveActionName",
          "type": "string"
        },
        "correctiveActionType": {
          "format": "int32",
          "description": "CorrectiveActionType",
          "type": "integer"
        },
        "invalidReason": {
          "description": "InvalidReason",
          "type": "string"
        },
        "dateAdjustment": {
          "format": "date-time",
          "description": "DateAdjustment",
          "type": "string"
        },
        "probe": {
          "description": "Probe",
          "type": "string"
        },
        "probeOffset": {
          "description": "OffsetProbe",
          "type": "string"
        }
      }
    },
    "FdckChecklistDate": {
      "description": "FdckChecklistDate",
      "type": "object",
      "properties": {
        "checklist": {
          "$ref": "#/definitions/IdAndName",
          "description": "Checklist"
        },
        "nbOk": {
          "format": "int32",
          "description": "Number of control ok",
          "type": "integer"
        },
        "nbKo": {
          "format": "int32",
          "description": "Number of control not ok",
          "type": "integer"
        },
        "nbNonApplicable": {
          "format": "int32",
          "description": "Number of non applicable controls",
          "type": "integer"
        },
        "nbWithProbe": {
          "format": "int32",
          "description": "Number of control done with probe",
          "type": "integer"
        },
        "nbTotal": {
          "format": "int32",
          "description": "Number of checks to be carried out",
          "type": "integer"
        },
        "localDate": {
          "description": "Local Date (format : YYYY-MM-DD)",
          "type": "string"
        },
        "date": {
          "format": "date-time",
          "description": "Date (JSON format)",
          "type": "string"
        },
        "signoffDate": {
          "format": "date-time",
          "description": "Validation date of checklist controls (only if Daily Signoff activated)",
          "type": "string"
        },
        "signoffUser": {
          "$ref": "#/definitions/IdAndName",
          "description": "Signoff user (only if Daily Signoff activated)"
        },
        "signoffComment": {
          "description": "Sign off comment (only if Daily Signoff activated)",
          "type": "string"
        }
      }
    },
    "GraphData": {
      "description": "Data for graph or measures table",
      "type": "object",
      "properties": {
        "measuringPointId": {
          "format": "int32",
          "description": "Id of measuring point",
          "type": "integer"
        },
        "startDate": {
          "format": "date-time",
          "description": "Utc Start date of request",
          "type": "string"
        },
        "endDate": {
          "format": "date-time",
          "description": "Utc End date of request",
          "type": "string"
        },
        "measures": {
          "description": "The measures of the period\r\n<br /><b>WARNING</b> : Only sent when field \"Measures\" is requested",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Measure"
          }
        },
        "events": {
          "description": "The events of the period\r\n<br /><b>WARNING</b> : Only sent when field \"Events\" is requested",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Event"
          }
        },
        "thresholds": {
          "description": "The thresholds of the period\r\n<br /><b>WARNING</b> : Only sent when field \"Thresholds\" is requested",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Threshold"
          }
        },
        "unit": {
          "description": "Unit symbol of the measuring point",
          "type": "string"
        }
      }
    },
    "Measure": {
      "description": "Measure",
      "type": "object",
      "properties": {
        "date": {
          "format": "date-time",
          "type": "string"
        },
        "value": {
          "format": "double",
          "type": "number"
        }
      }
    },
    "Event": {
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/EventType"
        },
        "comment": {
          "type": "string"
        },
        "dateEvent": {
          "format": "date-time",
          "type": "string"
        },
        "endDate": {
          "format": "date-time",
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/IdAndName"
        }
      }
    },
    "Threshold": {
      "description": "Threshold",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "value": {
          "format": "double",
          "description": "Value",
          "type": "number"
        },
        "tempoSeconds": {
          "format": "int32",
          "description": "Delay (in seconds)",
          "type": "integer"
        },
        "type": {
          "$ref": "#/definitions/ThresholdType",
          "description": "Type"
        },
        "isCritical": {
          "description": "Flag who indicates if the threshold is critical",
          "type": "boolean"
        },
        "isHigh": {
          "description": "Flag who indicates if it is a high (or a low) threshold",
          "type": "boolean"
        },
        "startDate": {
          "format": "date-time",
          "description": "Start Date of the threshold",
          "type": "string"
        },
        "endDate": {
          "format": "date-time",
          "description": "End Date of the threshold (Null if the threshold is active)",
          "type": "string"
        },
        "timeSlotMinutes": {
          "format": "int32",
          "description": "Time slot (in minutes) for \"Accumulate\" or \"MKT\" threshold (null for other thresholds)",
          "type": "integer"
        }
      }
    },
    "EventType": {
      "description": "Event type",
      "type": "object",
      "properties": {
        "value": {
          "enum": [
            "Unknown",
            "TechnicalAlarm",
            "TopZone",
            "AutoControl",
            "Ack",
            "ThresholdAlarmHigh",
            "ThresholdAlarmLow",
            "ThresholdAlarmHighNotCritical",
            "ThresholdAlarmLowNotCritical",
            "ThresholdAlarmMkt",
            "ThresholdAlarmMktNotCritical",
            "ThresholdAlarmOpening",
            "ThresholdAlarmOpeningNotCritical",
            "ThresholdAlarmHighAccumulated",
            "ThresholdAlarmLowAccumulated",
            "ThresholdAlarmHighAccumulatedNotCritical",
            "ThresholdAlarmLowAccumulatedNotCritical",
            "Snooze",
            "TakeInCharge",
            "Inhibition",
            "Maintenance",
            "Metrology",
            "Planning_InactivePeriod",
            "Value_InactivePeriod",
            "OpeningPeriod",
            "CommDefect",
            "GatewayChange",
            "NanoCellMessage",
            "NanoCellKeyOn",
            "NanoCellKeyOff",
            "NanoCellReset",
            "User"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label",
          "type": "string"
        }
      }
    },
    "ThresholdType": {
      "description": "Threshold type",
      "type": "object",
      "properties": {
        "value": {
          "description": "Value",
          "enum": [
            "Continuous",
            "Accumulate",
            "Mkt",
            "Opening"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label",
          "type": "string"
        }
      }
    },
    "MonitoredUnit": {
      "description": "Monitored unit",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name of the monitored unit",
          "type": "string"
        },
        "link": {
          "description": "Link to show this monitored unit",
          "type": "string"
        },
        "inventoryNumber": {
          "description": "Inventory Number (optional)",
          "type": "string"
        },
        "alarmState": {
          "$ref": "#/definitions/MonitoredUnitAlarmThresholdStatus",
          "description": "Alarm status of the monitored unit"
        },
        "points": {
          "description": "Array of measuring points",
          "type": "array",
          "items": {
            "$ref": "#/definitions/MeasuringPoint"
          }
        },
        "batches": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/IdAndName"
          }
        },
        "area": {
          "$ref": "#/definitions/IdAndName"
        },
        "alarms": {
          "description": "Array of alarms. \r\n<br /><b>WARNING</b> : Only sent when field \"Alarms\" is requested",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlarmThreshold"
          }
        },
        "isMobile": {
          "description": "Is mobile\r\n<br /><b>WARNING</b> : This field and the following ones are only sent when field \"Mobility\" is requested",
          "type": "boolean"
        },
        "isMoving": {
          "description": "Key On/Off\r\n<br /><b>WARNING</b> : Only for NanoCell",
          "type": "boolean"
        },
        "locationDevice": {
          "$ref": "#/definitions/LocationDevice",
          "description": "Location device"
        },
        "lastPosition": {
          "$ref": "#/definitions/LocationInfos",
          "description": "Last known position"
        }
      }
    },
    "MonitoredUnitAlarmThresholdStatus": {
      "description": "Status of the monitored unit",
      "type": "object",
      "properties": {
        "value": {
          "enum": [
            "NoAlarm",
            "Inhibated",
            "AlreadySnoozed",
            "Alarm",
            "TakenInCharge",
            "Snoozed"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label",
          "type": "string"
        }
      }
    },
    "MeasuringPoint": {
      "description": "Measuring point",
      "type": "object",
      "properties": {
        "lastMeasure": {
          "$ref": "#/definitions/Measure"
        },
        "measuringSystem": {
          "$ref": "#/definitions/MeasuringSystem"
        },
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "unit": {
          "description": "Unit symbol of the measuring point",
          "type": "string"
        },
        "isVirtual": {
          "description": "<span class=\"min-version\">MySirius 2.2+</span> Is a virtual measuring point",
          "type": "boolean"
        },
        "physicalMeasuringPointId": {
          "format": "int32",
          "description": "<span class=\"min-version\">MySirius 2.2+</span> ID of the linked physical measuring point (if it's a virtual measuring point)",
          "type": "integer"
        },
        "linkMeasuresLastDay": {
          "description": "Link to get measures of last day",
          "type": "string"
        },
        "config": {
          "$ref": "#/definitions/MeasuringPointConfig"
        }
      }
    },
    "AlarmThreshold": {
      "description": "Threshold alarm",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "type": {
          "$ref": "#/definitions/AlarmThresholdType",
          "description": "Type of alarm"
        },
        "measuringPointId": {
          "format": "int32",
          "description": "Measuring point id of this alarm",
          "type": "integer"
        },
        "dateAlarm": {
          "format": "date-time",
          "description": "Date of the alarm",
          "type": "string"
        },
        "status": {
          "$ref": "#/definitions/AlarmThresholdStatus",
          "description": "Status of the alarm"
        },
        "threshold": {
          "$ref": "#/definitions/Threshold",
          "description": "Threshold of the alarm"
        },
        "measureValue": {
          "format": "double",
          "description": "Measure of the alarm",
          "type": "number"
        },
        "dateAck": {
          "format": "date-time",
          "description": "Date of acknowledgement",
          "type": "string"
        },
        "ackUser": {
          "$ref": "#/definitions/IdAndName",
          "description": "User who acknowledged"
        },
        "reason": {
          "$ref": "#/definitions/AckReason",
          "description": "Reason of alarm in the acknowledgement"
        },
        "criticity": {
          "$ref": "#/definitions/AlarmCriticity",
          "description": "Criticity of alarm in the acknowledged"
        },
        "correctiveAction": {
          "description": "Corrective action in the acknowledgement",
          "type": "string"
        }
      }
    },
    "LocationDevice": {
      "description": "Location Device",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "serialNumber": {
          "description": "Serial number",
          "type": "string"
        }
      }
    },
    "LocationInfos": {
      "description": "Informations on a given position",
      "type": "object",
      "properties": {
        "date": {
          "format": "date-time",
          "description": "Location date",
          "type": "string"
        },
        "longitude": {
          "format": "double",
          "description": "Longitude",
          "type": "number"
        },
        "latitude": {
          "format": "double",
          "description": "Latitude",
          "type": "number"
        },
        "kilometres": {
          "format": "int32",
          "description": "Total Kilometres",
          "type": "integer"
        }
      }
    },
    "MeasuringSystem": {
      "description": "Measuring system used by this measuring point\r\n<br /><b>WARNING</b> : Only sent when field \"MeasuringSystem\" is requested",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "recorder": {
          "$ref": "#/definitions/RecorderSimple",
          "description": "Recorder"
        },
        "probe": {
          "$ref": "#/definitions/ProbeSimple",
          "description": "Probe"
        }
      }
    },
    "MeasuringPointConfig": {
      "description": "Config of the measuring point\r\n<br /><b>WARNING</b> : Only sent when field \"Config\" is requested",
      "type": "object",
      "properties": {
        "thresholds": {
          "description": "Array of thresholds",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Threshold"
          }
        },
        "dataloggingPeriodSec": {
          "format": "int32",
          "description": "Datalogging period (in seconds)",
          "type": "integer"
        },
        "dataloggingPeriodAlarmSec": {
          "format": "int32",
          "description": "Datalogging period in alarm (in seconds)",
          "type": "integer"
        },
        "startingType": {
          "description": "Starting Type",
          "enum": [
            "Immediate",
            "Dated",
            "ValueReached",
            "PushButton",
            "TouchPadAction",
            "OnOff_Channel_1_High",
            "OnOff_Channel_1_Low",
            "OnOff_Channel_2_High",
            "OnOff_Channel_2_Low",
            "OnOff_Channel_3_High",
            "OnOff_Channel_3_Low",
            "OnOff_Channel_4_High",
            "OnOff_Channel_4_Low",
            "Started_Dated",
            "Started_ValueReached"
          ],
          "type": "string"
        },
        "endingType": {
          "description": "Ending Type",
          "enum": [
            "NoEnd",
            "Dated",
            "NumberOfMeasures",
            "ValueReachedWithoutRestart",
            "ValueReachedButCanRestart",
            "TouchPadAction",
            "FullMemory",
            "Button",
            "Ended_Dated",
            "Ended_NumberOfMeasures",
            "Ended_ValueReachedWithoutRestart",
            "Ended_ValueReachedButCanRestart"
          ],
          "type": "string"
        },
        "startingInfo": {
          "description": "Starting informations",
          "type": "string"
        },
        "endingInfo": {
          "description": "Ending informations",
          "type": "string"
        },
        "productProfile": {
          "$ref": "#/definitions/IdAndName",
          "description": "<span class=\"min-version\">MySirius 2.2+</span> ProductProfile (if it's a virtual measuring point)"
        }
      }
    },
    "AlarmThresholdType": {
      "description": "Alarm type",
      "type": "object",
      "properties": {
        "value": {
          "enum": [
            "NoAlarm",
            "Continuous_High_Critical",
            "Continuous_Low_Critical",
            "Continuous_High_NotCritical",
            "Continuous_Low_NotCritical",
            "Accumulate_High_Critical",
            "Accumulate_Low_Critical",
            "Accumulate_High_NotCritical",
            "Accumulate_Low_NotCritical",
            "MKT_Critical",
            "MKT_NotCritical",
            "Opening_Critical",
            "Opening_NotCritical"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label",
          "type": "string"
        }
      }
    },
    "AlarmThresholdStatus": {
      "description": "Alarm status",
      "type": "object",
      "properties": {
        "value": {
          "enum": [
            "New",
            "Renew",
            "TakenInCharge",
            "Snoozed",
            "AckInProgress",
            "Acked"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label",
          "type": "string"
        }
      }
    },
    "AlarmCriticity": {
      "description": "Criticity of alarm",
      "type": "object",
      "properties": {
        "value": {
          "enum": [
            "NoImpact",
            "Low",
            "Medium",
            "High"
          ],
          "type": "string"
        },
        "label": {
          "description": "Translated label",
          "type": "string"
        }
      }
    },
    "RecorderSimple": {
      "description": "Device",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/DeviceType",
          "description": "Type"
        },
        "serial": {
          "description": "Serial number",
          "type": "string"
        },
        "link": {
          "description": "Link to get all information about this device",
          "type": "string"
        }
      }
    },
    "ProbeSimple": {
      "description": "Probe",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "serial": {
          "description": "Serial number",
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/ProbeType",
          "description": "Type"
        }
      }
    },
    "AlarmThresholdAck": {
      "description": "Acknowledgement of an alarm",
      "required": [
        "id",
        "reasonId",
        "criticity"
      ],
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Alarm id",
          "type": "integer"
        },
        "reasonId": {
          "format": "int32",
          "description": "Id of acknowledgement reason\r\n<br />If the id exists in the database, it is used in the acknowledgement.\r\n<br />If the id = -1 or if it doesn't exist in the database, a new reason will be added with the label of field 'NewReason'",
          "type": "integer"
        },
        "newReason": {
          "description": "New Reason label\r\n<br />If ReasonId = -1 or if it doesn't exist in the database, a new reason will be added with this label",
          "type": "string"
        },
        "criticity": {
          "description": "Criticity of the alarm",
          "enum": [
            "NoImpact",
            "Low",
            "Medium",
            "High"
          ],
          "type": "string"
        },
        "correctiveAction": {
          "description": "Corrective action<br />\r\nWarning, it's required if it's set to required in the customer preferences of MySirius.",
          "type": "string"
        }
      }
    },
    "MonitoredUnitLightConfig": {
      "description": "Model of MonitoredUnit configuration for light config API",
      "type": "object",
      "properties": {
        "name": {
          "description": "Name (Optional)",
          "type": "string"
        },
        "inventoryNumber": {
          "description": "Inventory number (Optional)",
          "type": "string"
        },
        "points": {
          "description": "Measuring point list",
          "type": "array",
          "items": {
            "$ref": "#/definitions/MeasuringPointLightConfig"
          }
        }
      }
    },
    "MeasuringPointLightConfig": {
      "description": "Measuring point configuration for light config API",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name (Optional)",
          "type": "string"
        },
        "dataLoggingPeriod": {
          "description": "Datalogging period (Optional and not managed for virtual measuring point)",
          "enum": [
            "_1m",
            "_2m",
            "_3m",
            "_5m",
            "_10m",
            "_15m",
            "_20m",
            "_30m",
            "_45m",
            "_1h",
            "_1h30m",
            "_2h",
            "_3h",
            "_4h",
            "_6h",
            "_8h",
            "_12h",
            "_24h"
          ],
          "type": "string"
        },
        "thresholds": {
          "description": "Threshold configuration (Optional)\r\n<ul><li>Null or not sent : Thresholds are not updated </li><li>Empty array : All thresholds are removed</li><li>Not empty array : All thresholds are replaced by the array</li></ul>\r\nConstraints : \r\n<ul><li>Nano SPY : 4 thresholds</li><li>LoRa® SPY : 1 High 'Continuous' and 1 Low 'Continuous' + 2 'Accumulate' ou 'MKT'</li></ul>",
          "type": "array",
          "items": {
            "$ref": "#/definitions/ThresholdLightConfig"
          }
        }
      }
    },
    "ThresholdLightConfig": {
      "description": "Threshold configuration for light config API",
      "type": "object",
      "properties": {
        "value": {
          "format": "double",
          "description": "Value of the threshold",
          "type": "number"
        },
        "type": {
          "description": "Type \r\n(\"Opening\" is only available for LoRa® SPY T1)",
          "enum": [
            "Continuous",
            "Accumulate",
            "Mkt",
            "Opening"
          ],
          "type": "string"
        },
        "isHigh": {
          "description": "true if it is a high threshold",
          "type": "boolean"
        },
        "isCritical": {
          "description": "true if the threshold is critical",
          "type": "boolean"
        },
        "tempo": {
          "description": "Allowed overrun duration\r\n(1, 2 and 3 minutes not available for LoRa® SPY)",
          "enum": [
            "_0m",
            "_1m",
            "_2m",
            "_3m",
            "_5m",
            "_10m",
            "_15m",
            "_20m",
            "_30m",
            "_45m",
            "_1h",
            "_1h30m",
            "_2h",
            "_2h30",
            "_3h",
            "_4h",
            "_6h"
          ],
          "type": "string"
        },
        "periodInHours": {
          "format": "int32",
          "description": "Period (in hours)\r\n(only for Type \"MKT\" and \"Accumulate\")",
          "type": "integer"
        }
      }
    },
    "LightConfigStatus": {
      "description": "State of light configuration API",
      "type": "object",
      "properties": {
        "commandAdded": {
          "format": "int32",
          "description": "Count of command added",
          "type": "integer"
        },
        "errorCount": {
          "format": "int32",
          "description": "Error count",
          "type": "integer"
        }
      }
    },
    "AlarmThresholdAcknowledgmentStatistics": {
      "description": "Threshold alarm acknowledgment statistics",
      "type": "object",
      "properties": {
        "alarms": {
          "description": "Threshold alarm list with acknowledgement time if available",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlarmThresholdAcknowledgment"
          }
        },
        "counter": {
          "$ref": "#/definitions/AlarmThresholdCounter",
          "description": "Acknowledgement duration counters"
        }
      }
    },
    "AlarmThresholdAcknowledgment": {
      "description": "Alarm start date and acknowledgement date, if any, as well as alarm duration",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id of the alarm",
          "type": "integer"
        },
        "alarmDate": {
          "format": "date-time",
          "description": "Date of the alarm",
          "type": "string"
        },
        "ackDate": {
          "format": "date-time",
          "description": "Acknowledgment date",
          "type": "string"
        },
        "durationSec": {
          "format": "int32",
          "description": "Duration before acknowledgment",
          "type": "integer"
        }
      }
    },
    "AlarmThresholdCounter": {
      "description": "Alarm-to-acknowledge duration counters",
      "type": "object",
      "properties": {
        "count": {
          "format": "int32",
          "description": "Total",
          "type": "integer"
        },
        "nbNotAcked": {
          "format": "int32",
          "description": "Number of unacknowledged alarms",
          "type": "integer"
        },
        "nbLessThan1H": {
          "format": "int32",
          "description": "Number of alarms acknowledged in less than 1 hour",
          "type": "integer"
        },
        "nbLessThan2H": {
          "format": "int32",
          "description": "Number of alarms acknowledged in less than 2 hours",
          "type": "integer"
        },
        "nbLessThan3H": {
          "format": "int32",
          "description": "Number of alarms acknowledged in less than 3 hours",
          "type": "integer"
        },
        "nbLessThan4H": {
          "format": "int32",
          "description": "Number of alarms acknowledged in less than 4 hours",
          "type": "integer"
        },
        "nbLessThan5H": {
          "format": "int32",
          "description": "Number of alarms acknowledged in less than 5 hours",
          "type": "integer"
        },
        "nbLessThan6H": {
          "format": "int32",
          "description": "Number of alarms acknowledged in less than 6 hours",
          "type": "integer"
        }
      }
    },
    "SupervisorForGet": {
      "description": "Supervisor",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "login": {
          "description": "Login",
          "type": "string"
        },
        "firstName": {
          "description": "FirstName",
          "type": "string"
        },
        "domain": {
          "description": "Domain",
          "type": "string"
        },
        "profile": {
          "$ref": "#/definitions/IdAndName",
          "description": "Profile"
        },
        "email": {
          "description": "Email",
          "type": "string"
        }
      }
    },
    "SupervisorForUpdate": {
      "description": "Supervisor data for update",
      "type": "object",
      "properties": {
        "name": {
          "description": "Name",
          "type": "string"
        },
        "firstName": {
          "description": "FirstName",
          "type": "string"
        },
        "profileId": {
          "format": "int32",
          "description": "Profile Id (optional - set ID or name)",
          "type": "integer"
        },
        "profileName": {
          "description": "Profile Name (optional - set ID or name)",
          "type": "string"
        },
        "email": {
          "description": "Email",
          "type": "string"
        }
      }
    },
    "SupervisorForCreate": {
      "description": "Supervisor data for create",
      "type": "object",
      "properties": {
        "login": {
          "description": "Login",
          "type": "string"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "firstName": {
          "description": "FirstName",
          "type": "string"
        },
        "profileId": {
          "format": "int32",
          "description": "Profile Id (optional - set ID or name)",
          "type": "integer"
        },
        "profileName": {
          "description": "Profile Name (optional - set ID or name)",
          "type": "string"
        },
        "email": {
          "description": "Email",
          "type": "string"
        }
      }
    },
    "SupervisorForAdd": {
      "description": "Supervisor data for add",
      "type": "object",
      "properties": {
        "login": {
          "description": "Login",
          "type": "string"
        },
        "domain": {
          "description": "Name",
          "type": "string"
        },
        "profileId": {
          "format": "int32",
          "description": "Profile Id (optional - set ID or name)",
          "type": "integer"
        },
        "profileName": {
          "description": "Profile Name (optional - set ID or name)",
          "type": "string"
        }
      }
    },
    "UserForGet": {
      "description": "User",
      "type": "object",
      "properties": {
        "id": {
          "format": "int32",
          "description": "Id",
          "type": "integer"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "login": {
          "description": "Login",
          "type": "string"
        },
        "firstName": {
          "description": "FirstName",
          "type": "string"
        },
        "domain": {
          "description": "Domain",
          "type": "string"
        },
        "profile": {
          "$ref": "#/definitions/IdAndName",
          "description": "Profile"
        },
        "email": {
          "description": "Email",
          "type": "string"
        }
      }
    },
    "UserForUpdate": {
      "description": "User data for update",
      "type": "object",
      "properties": {
        "name": {
          "description": "Name",
          "type": "string"
        },
        "firstName": {
          "description": "FirstName",
          "type": "string"
        },
        "profileId": {
          "format": "int32",
          "description": "Profile Id (optional - set ID or name)",
          "type": "integer"
        },
        "profileName": {
          "description": "Profile Name (optional - set ID or name)",
          "type": "string"
        },
        "email": {
          "description": "Email",
          "type": "string"
        }
      }
    },
    "UserForCreate": {
      "description": "User data for create",
      "type": "object",
      "properties": {
        "login": {
          "description": "Login",
          "type": "string"
        },
        "name": {
          "description": "Name",
          "type": "string"
        },
        "firstName": {
          "description": "FirstName",
          "type": "string"
        },
        "profileId": {
          "format": "int32",
          "description": "Profile Id (optional - set ID or name)",
          "type": "integer"
        },
        "profileName": {
          "description": "Profile Name (optional - set ID or name)",
          "type": "string"
        },
        "email": {
          "description": "Email",
          "type": "string"
        }
      }
    },
    "WebHooksConfigData": {
      "description": "Webhooks configuration",
      "type": "object",
      "properties": {
        "authenticationMode": {
          "description": "API authentication mode",
          "enum": [
            "None",
            "HeaderApiKey",
            "AuthBearer"
          ],
          "type": "string"
        },
        "token": {
          "description": "Authentication token (if authentication is \"HeaderApiKey\" or \"AuthBearer\")",
          "type": "string"
        },
        "appToken": {
          "description": "Application token - customer data send in each webhooks (optional)",
          "type": "string"
        },
        "urlAlarmThresholdBegin": {
          "description": "URL for alarm threshold webhook (optional, if empty -&gt; set none)",
          "type": "string"
        },
        "urlAlarmThresholdEnd": {
          "description": "URL for alarm threshold end webhook (optional, if empty -&gt; set none)",
          "type": "string"
        },
        "urlAlarmTechnicalBegin": {
          "description": "URL for alarm technical webhook (optional, if empty -&gt; set none)",
          "type": "string"
        },
        "urlMeasures": {
          "description": "URL for new measure webhook (optional, if empty -&gt; set none)",
          "type": "string"
        },
        "urlConfiguration": {
          "description": "URL for monitored unit configuration updated webhook (optional, if empty -&gt; set none)",
          "type": "string"
        }
      }
    }
  },
  "tags": [
    {
      "name": "Authentication",
      "description": "<h2>Authentication method</h2>The authentication is made by an API Key sent in the header of the http request.<br/>The name of the header is <b>apiKey</b> and must contain you api key<br/><br/><h2>Find your API Key</h2><br/>To get an API Key, you have to subscribe to the connectivity module on MySirius.<br/>If you did it, please login on MySirius with an admin account and open the tile 'Licence' in the administration menu.<br/>You can then display your Api Key",
      "externalDocs": {
        "description": "Open MySirius",
        "url": "http://www.jri-mysirius.com"
      }
    },
    {
      "name": "Conventions",
      "description": "<h2>DateTime</h2>The API uses RFC3339 (ex : 2016-05-04T16:01:26Z).<br/>All datetimes sent by the API will be in UTC<br/>The datetimes in request can be in UTC or in local datetime<br/><br/><h2>HTTP Error codes</h2>Standard HTTP error codes can be returned by the API :<ul><li> 400 (Bad Request) : the request is invalid (no need to retry)</li><li> 401 (Unauthorized) : no apikey was found in the request or the key is invalid (no need to retry)</li><li> 404 (Not found) : no ressource can be found (no need to retry)</li><li> 500 (Internal Server Error): an error has occured on the server while processing the request (you should retry later or contact the support)</li></ul><br/><br/><h2>Content type</h2>Api consumes JSON and produces JSON.<br/>For POST requests with a body, add the header 'Content-Type' with the value 'application/json'."
    },
    {
      "name": "Configuration",
      "description": "<h2>Token configuration</h2>WebHooks can be secured with a private token, according to three different mechanisms inside headers :<ul><li>Within headers, throught the attribute <i>apiKey</i></li><li>Bearer auth: <i>Autorization: Bearer &lt;token&gt;</i></li></ul><h2>Application Token <span class=\"min-version\">MySirius 2.2+</span></h2>An application token can be defined on MySirius. This token will be present in all webhooks. It will be useful if you want to identify MySirius or send custom data to your application."
    },
    {
      "name": "Contracts"
    },
    {
      "name": "Graph",
      "description": "It's possible to embed a graph of measurements of a monitored unit in your application.It includes the features available on MySirius: statistics (average, min & max value), event display, scrolling through time, zooming/unzooming and displaying measurements in table mode.<br /><br />The graph is not updated in real time, but a manual refresh button is available.<br /><br />Authentication on this page is managed by a one-time token, generated from the API key.<br /><br />The URL for the graph is : <b>/Graph/</b><br /><br />It takes the following parameters :<ul><li><i>token</i> : one-time token generated from the API key</li><li><i>monitoredUnitId</i> : ID of the monitored unit to display</li><li><i>startDate</i>: (optional) start date of the period to display, in ISO-8601 format</li><li><i>endDate</i>: (optional) end date of the period to display, in ISO-8601 format</li></ul>By default, the period displayed is the last 24 hours. The maximum period when calling the page is 1 week."
    },
    {
      "name": "Token generation",
      "description": "The one-time token is generated using this url of MySirius : <b>www.jri-mysirius.com/api/Token/Request</b><br /><br />The API key must be passed through the header named <b>apiKey</b>.<br /><br />A token is valid for 1 hour. As long as the graph page is active, the token is renewed and kept alive."
    },
    {
      "name": "AckReasons",
      "description": "The reasons of acknowledgement are used to acknowledge the threshold alarms of monitored units."
    },
    {
      "name": "Devices",
      "description": "The devices are recorders, gateways, relay and/or alarm modules."
    },
    {
      "name": "FoodCheck",
      "description": "FoodCheck is a module used to control the food with checklist that occurs every day. Each checklist have many controls in that you can perform."
    },
    {
      "name": "MeasuringPoints",
      "description": "Measuring points are the areas of the monitored unit where the measurements of a physical quantity are performed"
    },
    {
      "name": "MonitoredUnits",
      "description": "A monitored unit is an equipment, an enclosed space monitored by one or several measurement point(s) (ex.: cold room, incubator, refrigerator, freezer, building…)"
    },
    {
      "name": "Profiles",
      "description": "The profiles are used to allow rights to user."
    },
    {
      "name": "Statistics"
    },
    {
      "name": "Supervisor",
      "description": "The supervisors are used to supervise other customers."
    },
    {
      "name": "User",
      "description": "The users are used to login and use MySirius."
    },
    {
      "name": "WebHooks",
      "description": "<span class=\"min-version\">MySirius 2.2+</span> WebHooks configuration"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Introduction",
      "tags": [
        "Authentication",
        "Conventions"
      ]
    },
    {
      "name": "WebHooks",
      "tags": [
        "Configuration",
        "Contracts"
      ]
    },
    {
      "name": "Standalone graph",
      "tags": [
        "Graph",
        "Token generation"
      ]
    },
    {
      "name": "REST API",
      "tags": [
        "AckReasons",
        "Devices",
        "FoodCheck",
        "MeasuringPoints",
        "MonitoredUnits",
        "Profiles",
        "Statistics",
        "Supervisor",
        "User",
        "WebHooks"
      ]
    }
  ]
}